dt-bindings: display: simple: Document support for Innolux G121XCE-L01
Subsystems (4)
PATCH 1/4 dt-bindings: display: simple: Document support for Innolux G121XCE-L01
Document support for Innolux CheMei 12" G121XCE-L01 XGA LVDS display.
G121XCE-L01 is a Color Active Matrix Liquid Crystal Display composed of a TFT LCD panel, a driver circuit, and LED backlight system. The screen format is intended to support the 4:3, 1024(H) x 768(V) screen and either 262k/16.7M colors (RGB 6-bits or 8-bits) with LED backlight driver circuit. All input signals are LVDS interface compatible.
Documentation [1] and [2] indicate that G121X1-L03 and G121XCE-L01 are effectively identical panels, use the former as RGB 6-bits variant and document the later as RGB 8-bits variant.
[1] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G121X1-L03_Datasheet.pdf
[2] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G121XCE-L01_Datasheet.pdf
---
Cc: Conor Dooley <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Jessica Zhang <[email protected]>
Cc: Krzysztof Kozlowski <[email protected]>
Cc: Maarten Lankhorst <[email protected]>
Cc: Maxime Ripard <[email protected]>
Cc: Neil Armstrong <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: Thomas Zimmermann <[email protected]>
Cc: [email protected]
Cc: [email protected]
--- .../devicetree/bindings/display/panel/panel-simple.yaml | 2 ++ 1 file changed, 2 insertions(+)
Documentation/devicetree/bindings/display/panel/panel-simple.yaml +2 -0
@@ -190,6 +190,8 @@ properties: - innolux,g121i1-l01 # Innolux Corporation 12.1" G121X1-L03 XGA (1024x768) TFT LCD panel - innolux,g121x1-l03 + # Innolux Corporation 12.1" G121XCE-L01 XGA (1024x768) TFT LCD panel + - innolux,g121xce-l01 # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel - innolux,n116bca-ea1 # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel
Signature · 1 line
2.43.0
PATCH 2/4 drm/panel: simple: Add missing Innolux G121X1-L03 format, flags, connector
The .bpc = 6 implies .bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG , add the missing bus_format. Add missing connector type and bus_flags as well.
Documentation [1] 1.4 GENERAL SPECIFICATI0NS indicates this panel is capable of both RGB 18bit/24bit panel, the current configuration uses 18bit mode, .bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG , .bpc = 6.
Support for the 24bit mode would require another entry in panel-simple with .bus_format = MEDIA_BUS_FMT_RGB666_1X7X4_SPWG and .bpc = 8, which is out of scope of this fix.
[1] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G121X1-L03_Datasheet.pdf
---
Cc: Conor Dooley <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Jessica Zhang <[email protected]>
Cc: Krzysztof Kozlowski <[email protected]>
Cc: Maarten Lankhorst <[email protected]>
Cc: Maxime Ripard <[email protected]>
Cc: Neil Armstrong <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: Thomas Zimmermann <[email protected]>
Cc: [email protected]
Cc: [email protected]
--- drivers/gpu/drm/panel/panel-simple.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/gpu/drm/panel/panel-simple.c +3 -0
@@ -2618,6 +2618,9 @@ static const struct panel_desc innolux_g121x1_l03 = { .unprepare = 200, .disable = 400, }, + .bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG, + .bus_flags = DRM_BUS_FLAG_DE_HIGH, + .connector_type = DRM_MODE_CONNECTOR_LVDS, }; static const struct display_timing innolux_g156hce_l01_timings = {
Signature · 1 line
2.43.0
Re: [PATCH 2/4] drm/panel: simple: Add missing Innolux G121X1-L03 format, flags, connector
Quoted 8 lines · Marek Vasut
The .bpc = 6 implies .bus_format =
MEDIA_BUS_FMT_RGB666_1X7X3_SPWG, add the missingbus_format. Add missing connector type andbus_flagsas well.Documentation [1] 1.4 GENERAL SPECIFICATI0NS indicates this panel is capable of both RGB 18bit/24bit panel, the current configuration uses 18bit mode, .bus_format =
MEDIA_BUS_FMT_RGB666_1X7X3_SPWG, .bpc = 6.
Quoted 5 lines
Support for the 24bit mode would require another entry in panel-simple with .bus_format =
MEDIA_BUS_FMT_RGB666_1X7X4_SPWGand .bpc = 8, which is out of scope of this fix.[1] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G121X1-L03_Datasheet.pdf
Hi Marek,
Thanks,
Jessica Zhang
Quoted 39 lines
Fixes f8fa17ba812b ("drm/panel: simple: Add support for Innolux G121X1-L03")Signed-off-by Marek Vasut <[email protected]>---
Cc: Conor Dooley <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Jessica Zhang <[email protected]>
Cc: Krzysztof Kozlowski <[email protected]>
Cc: Maarten Lankhorst <[email protected]>
Cc: Maxime Ripard <[email protected]>
Cc: Neil Armstrong <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: Thomas Zimmermann <[email protected]>
Cc: [email protected]
Cc: [email protected]--- drivers/gpu/drm/panel/panel-simple.c | 3 +++ 1 file changed, 3 insertions(+)drivers/gpu/drm/panel/panel-simple.c +3
-0@@ -2618,6 +2618,9 @@ static const struct panel_desc innolux_g121x1_l03 = { .unprepare = 200, .disable =400 , }, + .bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG, + .bus_flags = DRM_BUS_FLAG_DE_HIGH, + .connector_type = DRM_MODE_CONNECTOR_LVDS, }; static const struct display_timing innolux_g156hce_l01_timings = {Signature · 1 line
2.43.0
PATCH 3/4 drm/panel: simple: Convert Innolux G121X1-L03 to display_timing
In reply to Marek VasutUse display_timing instead of drm_display_mode to define a range of possible display timings supported by this panel. This makes the panel support more flexible and improves compatibility. No functional change is expected.
The settings are picked from documentation [1] section 6.1 INPUT SIGNAL TIMING SPECIFICATIONS.
[1] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G121X1-L03_Datasheet.pdf
---
Cc: Conor Dooley <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Jessica Zhang <[email protected]>
Cc: Krzysztof Kozlowski <[email protected]>
Cc: Maarten Lankhorst <[email protected]>
Cc: Maxime Ripard <[email protected]>
Cc: Neil Armstrong <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: Thomas Zimmermann <[email protected]>
Cc: [email protected]
Cc: [email protected]
--- drivers/gpu/drm/panel/panel-simple.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-)
drivers/gpu/drm/panel/panel-simple.c +13 -13
@@ -2592,22 +2592,22 @@ static const struct panel_desc innolux_g121i1_l01 = { .connector_type = DRM_MODE_CONNECTOR_LVDS, }; -static const struct drm_display_mode innolux_g121x1_l03_mode = { - .clock =65000 , - .hdisplay =1024 , - .hsync_start =1024 +0 , - .hsync_end =1024 +1 , - .htotal =1024 +0 +1 +320 , - .vdisplay =768 , - .vsync_start =768 +38 , - .vsync_end =768 +38 +1 , - .vtotal =768 +38 +1 +0 , - .flags =DRM_MODE_FLAG_NHSYNC |DRM_MODE_FLAG_NVSYNC , +static const struct display_timing innolux_g121x1_l03_timings = { + .pixelclock = {57500000 ,64900000 ,74400000 }, + .hactive = {1024 ,1024 ,1024 }, + .hfront_porch = {90 ,140 ,190 }, + .hback_porch = {90 ,140 ,190 }, + .hsync_len = {36 ,40 ,60 }, + .vactive = {768 ,768 ,768 }, + .vfront_porch = {2 ,15 ,30 }, + .vback_porch = {2 ,15 ,30 }, + .vsync_len = {2 ,8 ,20 }, + .flags =DISPLAY_FLAGS_HSYNC_LOW |DISPLAY_FLAGS_VSYNC_LOW , };static const struct panel_desc innolux_g121x1_l03 = { - .modes = &innolux_g121x1_l03_mode, - .num_modes =1 , + .timings = &innolux_g121x1_l03_timings, + .num_timings =1 , .bpc =6 , .size = { .width =246 ,
Signature · 1 line
2.43.0
Re: [PATCH 3/4] drm/panel: simple: Convert Innolux G121X1-L03 to display_timing
Quoted 9 lines · Marek Vasut
Use
display_timinginstead ofdrm_display_modeto define a range of possible display timings supported by this panel. This makes the panel support more flexible and improves compatibility. No functional change is expected.The settings are picked from documentation [1] section 6.1 INPUT SIGNAL TIMING SPECIFICATIONS.
[1] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G121X1-L03_Datasheet.pdf
Hi Marek,
Thanks,
Jessica Zhang
Quoted 64 lines
Signed-off-by Marek Vasut <[email protected]>---
Cc: Conor Dooley <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Jessica Zhang <[email protected]>
Cc: Krzysztof Kozlowski <[email protected]>
Cc: Maarten Lankhorst <[email protected]>
Cc: Maxime Ripard <[email protected]>
Cc: Neil Armstrong <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: Thomas Zimmermann <[email protected]>
Cc: [email protected]
Cc: [email protected]--- drivers/gpu/drm/panel/panel-simple.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-)drivers/gpu/drm/panel/panel-simple.c +13
-13@@ -2592,22 +2592,22 @@ static const struct panel_desc innolux_g121i1_l01 = { .connector_type = DRM_MODE_CONNECTOR_LVDS, }; -static const struct drm_display_mode innolux_g121x1_l03_mode = { - .clock =65000 , - .hdisplay =1024 , - .hsync_start =1024 +0 , - .hsync_end =1024 +1 , - .htotal =1024 +0 +1 +320 , - .vdisplay =768 , - .vsync_start =768 +38 , - .vsync_end =768 +38 +1 , - .vtotal =768 +38 +1 +0 , - .flags =DRM_MODE_FLAG_NHSYNC |DRM_MODE_FLAG_NVSYNC , +static const struct display_timing innolux_g121x1_l03_timings = { + .pixelclock = {57500000 ,64900000 ,74400000 }, + .hactive = {1024 ,1024 ,1024 }, + .hfront_porch = {90 ,140 ,190 }, + .hback_porch = {90 ,140 ,190 }, + .hsync_len = {36 ,40 ,60 }, + .vactive = {768 ,768 ,768 }, + .vfront_porch = {2 ,15 ,30 }, + .vback_porch = {2 ,15 ,30 }, + .vsync_len = {2 ,8 ,20 }, + .flags =DISPLAY_FLAGS_HSYNC_LOW |DISPLAY_FLAGS_VSYNC_LOW , };static const struct panel_desc innolux_g121x1_l03 = { - .modes = &innolux_g121x1_l03_mode, - .num_modes =1 , + .timings = &innolux_g121x1_l03_timings, + .num_timings =1 , .bpc =6 , .size = { .width =246 ,Signature · 1 line
2.43.0
PATCH 4/4 drm/panel: simple: Add Innolux G121XCE-L01 LVDS display support
In reply to Marek VasutG121XCE-L01 is a Color Active Matrix Liquid Crystal Display composed of a TFT LCD panel, a driver circuit, and LED backlight system. The screen format is intended to support the 4:3, 1024(H) x 768(V) screen and either 262k/16.7M colors (RGB 6-bits or 8-bits) with LED backlight driver circuit. All input signals are LVDS interface compatible.
Documentation [1] and [2] indicate that G121X1-L03 and G121XCE-L01 are effectively identical panels, use the former as RGB 6-bits variant and add the later as RGB 8-bits variant.
[1] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G121X1-L03_Datasheet.pdf
[2] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G121XCE-L01_Datasheet.pdf
---
Cc: Conor Dooley <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Jessica Zhang <[email protected]>
Cc: Krzysztof Kozlowski <[email protected]>
Cc: Maarten Lankhorst <[email protected]>
Cc: Maxime Ripard <[email protected]>
Cc: Neil Armstrong <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: Thomas Zimmermann <[email protected]>
Cc: [email protected]
Cc: [email protected]
--- drivers/gpu/drm/panel/panel-simple.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)
drivers/gpu/drm/panel/panel-simple.c +21 -0
@@ -2623,6 +2623,24 @@ static const struct panel_desc innolux_g121x1_l03 = { .connector_type = DRM_MODE_CONNECTOR_LVDS, }; +static const struct panel_desc innolux_g121xce_l01 = { + .timings = &innolux_g121x1_l03_timings, + .num_timings =1 , + .bpc =8 , + .size = { + .width =246 , + .height =185 , + }, + .delay = { + .enable =200 , + .unprepare =200 , + .disable =400 , + }, + .bus_format =MEDIA_BUS_FMT_RGB888_1X7X4_SPWG , + .bus_flags =DRM_BUS_FLAG_DE_HIGH , + .connector_type =DRM_MODE_CONNECTOR_LVDS , +}; +static const struct display_timing innolux_g156hce_l01_timings = { .pixelclock = {120000000 ,141860000 ,150000000 }, .hactive = {1920 ,1920 ,1920 },
@@ -4596,6 +4614,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "innolux,g121x1-l03", .data = &innolux_g121x1_l03, + }, { + .compatible = "innolux,g121xce-l01", + .data = &innolux_g121xce_l01, }, { .compatible = "innolux,g156hce-l01", .data = &innolux_g156hce_l01,
Signature · 1 line
2.43.0
Re: [PATCH 4/4] drm/panel: simple: Add Innolux G121XCE-L01 LVDS display support
Quoted 6 lines · Marek Vasut
G121XCE-L01 is a Color Active Matrix Liquid Crystal Display composed of a TFT LCD panel, a driver circuit, and LED backlight system. The screen format is intended to support the 4:3, 1024(H) x 768(V) screen and either 262k/16.7M colors (RGB 6-bits or 8-bits) with LED backlight driver circuit. All input signals are LVDS interface compatible.
Quoted 6 lines
Documentation [1] and [2] indicate that G121X1-L03 and G121XCE-L01 are effectively identical panels, use the former as RGB 6-bits variant and add the later as RGB 8-bits variant.
[1] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G121X1-L03_Datasheet.pdf
[2] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G121XCE-L01_Datasheet.pdf
Hi Marek,
Thanks,
Jessica Zhang
Quoted 63 lines
Signed-off-by Marek Vasut <[email protected]>---
Cc: Conor Dooley <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Jessica Zhang <[email protected]>
Cc: Krzysztof Kozlowski <[email protected]>
Cc: Maarten Lankhorst <[email protected]>
Cc: Maxime Ripard <[email protected]>
Cc: Neil Armstrong <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: Thomas Zimmermann <[email protected]>
Cc: [email protected]
Cc: [email protected]--- drivers/gpu/drm/panel/panel-simple.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)drivers/gpu/drm/panel/panel-simple.c +21
-0@@ -2623,6 +2623,24 @@ static const struct panel_desc innolux_g121x1_l03 = { .connector_type = DRM_MODE_CONNECTOR_LVDS, }; +static const struct panel_desc innolux_g121xce_l01 = { + .timings = &innolux_g121x1_l03_timings, + .num_timings =1 , + .bpc =8 , + .size = { + .width =246 , + .height =185 , + }, + .delay = { + .enable =200 , + .unprepare =200 , + .disable =400 , + }, + .bus_format =MEDIA_BUS_FMT_RGB888_1X7X4_SPWG , + .bus_flags =DRM_BUS_FLAG_DE_HIGH , + .connector_type =DRM_MODE_CONNECTOR_LVDS , +}; +static const struct display_timing innolux_g156hce_l01_timings = { .pixelclock = {120000000 ,141860000 ,150000000 }, .hactive = {1920 ,1920 ,1920 },@@ -4596,6 +4614,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "innolux,g121x1-l03", .data = &innolux_g121x1_l03, + }, { + .compatible = "innolux,g121xce-l01", + .data = &innolux_g121xce_l01, }, { .compatible = "innolux,g156hce-l01", .data = &innolux_g156hce_l01,Signature · 1 line
2.43.0
Quoted 12 lines · Marek Vasut
Document support for Innolux CheMei 12" G121XCE-L01 XGA LVDS display.
G121XCE-L01 is a Color Active Matrix Liquid Crystal Display composed of a TFT LCD panel, a driver circuit, and LED backlight system. The screen format is intended to support the 4:3, 1024(H) x 768(V) screen and either 262k/16.7M colors (RGB 6-bits or 8-bits) with LED backlight driver circuit. All input signals are LVDS interface compatible.
Documentation [1] and [2] indicate that G121X1-L03 and G121XCE-L01 are effectively identical panels, use the former as RGB 6-bits variant and document the later as RGB 8-bits variant.
Quoted 6 lines
[1] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G121X1-L03_Datasheet.pdf
[2] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G121XCE-L01_Datasheet.pdfSigned-off-by Marek Vasut <[email protected]>---
Cc: Conor Dooley <[email protected]>
Thanks,
Conor.
Quoted 33 lines
Cc Daniel Vetter <[email protected]>Cc David Airlie <[email protected]>Cc Jessica Zhang <[email protected]>Cc Krzysztof Kozlowski <[email protected]>Cc Maarten Lankhorst <[email protected]>Cc Maxime Ripard <[email protected]>Cc Neil Armstrong <[email protected]>Cc Rob Herring <[email protected]>Cc Sam Ravnborg <[email protected]>Cc Thierry Reding <[email protected]>Cc Thomas Zimmermann <[email protected]>--- .../devicetree/bindings/display/panel/panel-simple.yaml | 2 ++ 1 file changed, 2 insertions(+)Documentation/devicetree/bindings/display/panel/panel-simple.yaml +2
-0@@ -190,6 +190,8 @@ properties: - innolux,g121i1-l01 # Innolux Corporation 12.1" G121X1-L03 XGA (1024x768) TFT LCD panel - innolux,g121x1-l03 + # Innolux Corporation 12.1" G121XCE-L01 XGA (1024x768) TFT LCD panel + - innolux,g121xce-l01 # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel - innolux,n116bca-ea1 # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panelSignature · 1 line
2.43.0