* [PATCH 0/2] drm/panel: simple: Add Tianma TM070JDHG34-00 DT bindings and driver support
@ 2024-12-10 17:28 Luca Ceresoli
2024-12-10 17:28 ` [PATCH 1/2] dt-bindings: display: simple: Add Tianma TM070JDHG34-00 panel Luca Ceresoli
2024-12-10 17:28 ` [PATCH 2/2] drm/panel: simple: Add Tianma TM070JDHG34-00 panel support Luca Ceresoli
0 siblings, 2 replies; 6+ messages in thread
From: Luca Ceresoli @ 2024-12-10 17:28 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg
Cc: Thomas Petazzoni, dri-devel, devicetree, linux-kernel,
Luca Ceresoli
This small series adds DT bindings and panel-simple implementation for the
Tianma TM070JDHG34-00 7" panel. Due to how the datasheet computes the
blanking time, a quirk is needed in the timing implementation. A comment
documents that in patch 2.
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
Luca Ceresoli (2):
dt-bindings: display: simple: Add Tianma TM070JDHG34-00 panel
drm/panel: simple: Add Tianma TM070JDHG34-00 panel support
.../bindings/display/panel/panel-simple.yaml | 2 ++
drivers/gpu/drm/panel/panel-simple.c | 42 ++++++++++++++++++++++
2 files changed, 44 insertions(+)
---
base-commit: 2ade8304e5fce7b972ef46011946186f1466c9bf
change-id: 20241210-tianma_tm070jdhg34-60cb8440b164
Best regards,
--
Luca Ceresoli <luca.ceresoli@bootlin.com>
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 1/2] dt-bindings: display: simple: Add Tianma TM070JDHG34-00 panel 2024-12-10 17:28 [PATCH 0/2] drm/panel: simple: Add Tianma TM070JDHG34-00 DT bindings and driver support Luca Ceresoli @ 2024-12-10 17:28 ` Luca Ceresoli 2024-12-16 10:09 ` Krzysztof Kozlowski 2024-12-10 17:28 ` [PATCH 2/2] drm/panel: simple: Add Tianma TM070JDHG34-00 panel support Luca Ceresoli 1 sibling, 1 reply; 6+ messages in thread From: Luca Ceresoli @ 2024-12-10 17:28 UTC (permalink / raw) To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg Cc: Thomas Petazzoni, dri-devel, devicetree, linux-kernel, Luca Ceresoli Add the Tianma Micro-electronics TM070JDHG34-00 7.0" LVDS LCD TFT panel. Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> --- Documentation/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 18b63f356bb4bbf6d2c8e58b13ebb14c5f4004ad..30f655e82666bb1aa227edd26bd8d3621a39e74f 100644 --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml @@ -281,6 +281,8 @@ properties: # Tianma Micro-electronics TM070JDHG30 7.0" WXGA TFT LCD panel - tianma,tm070jdhg30 # Tianma Micro-electronics TM070JVHG33 7.0" WXGA TFT LCD panel + - tianma,tm070jdhg34-00 + # Tianma Micro-electronics TM070JDHG34-00 7.0" WXGA (1280x800) LVDS TFT LCD panel - tianma,tm070jvhg33 # Tianma Micro-electronics TM070RVHG71 7.0" WXGA TFT LCD panel - tianma,tm070rvhg71 -- 2.34.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] dt-bindings: display: simple: Add Tianma TM070JDHG34-00 panel 2024-12-10 17:28 ` [PATCH 1/2] dt-bindings: display: simple: Add Tianma TM070JDHG34-00 panel Luca Ceresoli @ 2024-12-16 10:09 ` Krzysztof Kozlowski 2024-12-16 15:53 ` Luca Ceresoli 0 siblings, 1 reply; 6+ messages in thread From: Krzysztof Kozlowski @ 2024-12-16 10:09 UTC (permalink / raw) To: Luca Ceresoli Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg, Thomas Petazzoni, dri-devel, devicetree, linux-kernel On Tue, Dec 10, 2024 at 06:28:03PM +0100, Luca Ceresoli wrote: > Add the Tianma Micro-electronics TM070JDHG34-00 7.0" LVDS LCD TFT panel. > > Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> > --- > Documentation/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 18b63f356bb4bbf6d2c8e58b13ebb14c5f4004ad..30f655e82666bb1aa227edd26bd8d3621a39e74f 100644 > --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml > +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml > @@ -281,6 +281,8 @@ properties: > # Tianma Micro-electronics TM070JDHG30 7.0" WXGA TFT LCD panel > - tianma,tm070jdhg30 > # Tianma Micro-electronics TM070JVHG33 7.0" WXGA TFT LCD panel > + - tianma,tm070jdhg34-00 So tm070jdhg34 or tm070jvhg33? Comment says one, implementation different. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] dt-bindings: display: simple: Add Tianma TM070JDHG34-00 panel 2024-12-16 10:09 ` Krzysztof Kozlowski @ 2024-12-16 15:53 ` Luca Ceresoli 0 siblings, 0 replies; 6+ messages in thread From: Luca Ceresoli @ 2024-12-16 15:53 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg, Thomas Petazzoni, dri-devel, devicetree, linux-kernel Hello Krzysztof, On Mon, 16 Dec 2024 11:09:37 +0100 Krzysztof Kozlowski <krzk@kernel.org> wrote: > On Tue, Dec 10, 2024 at 06:28:03PM +0100, Luca Ceresoli wrote: > > Add the Tianma Micro-electronics TM070JDHG34-00 7.0" LVDS LCD TFT panel. > > > > Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> > > --- > > Documentation/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 18b63f356bb4bbf6d2c8e58b13ebb14c5f4004ad..30f655e82666bb1aa227edd26bd8d3621a39e74f 100644 > > --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml > > +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml > > @@ -281,6 +281,8 @@ properties: > > # Tianma Micro-electronics TM070JDHG30 7.0" WXGA TFT LCD panel > > - tianma,tm070jdhg30 > > # Tianma Micro-electronics TM070JVHG33 7.0" WXGA TFT LCD panel > > + - tianma,tm070jdhg34-00 > > So tm070jdhg34 or tm070jvhg33? Comment says one, implementation different. My bad, I swapped the two lines. Apologies, v2 on its way. Luca -- Luca Ceresoli, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] drm/panel: simple: Add Tianma TM070JDHG34-00 panel support 2024-12-10 17:28 [PATCH 0/2] drm/panel: simple: Add Tianma TM070JDHG34-00 DT bindings and driver support Luca Ceresoli 2024-12-10 17:28 ` [PATCH 1/2] dt-bindings: display: simple: Add Tianma TM070JDHG34-00 panel Luca Ceresoli @ 2024-12-10 17:28 ` Luca Ceresoli 2024-12-13 9:28 ` Neil Armstrong 1 sibling, 1 reply; 6+ messages in thread From: Luca Ceresoli @ 2024-12-10 17:28 UTC (permalink / raw) To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg Cc: Thomas Petazzoni, dri-devel, devicetree, linux-kernel, Luca Ceresoli Add Tianma TM070JDHG34-00 7.0" 1280x800 LVDS RGB TFT LCD panel. Panel info and datasheet: https://fortec.us/products/tm070jdhg34-00/ Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> --- drivers/gpu/drm/panel/panel-simple.c | 42 ++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 1562f122724137dec37eb11443eafc896ef2f2e8..b3c931a4e46a2568b3678d664f11b189873fa1e2 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -4286,6 +4286,45 @@ static const struct panel_desc tianma_tm070jvhg33 = { .bus_flags = DRM_BUS_FLAG_DE_HIGH, }; +/* + * The datasheet computes total blanking as back porch + front porch, not + * including sync pulse width. This is for both H and V. To make the total + * blanking and period correct, subtract the pulse width from the front + * porch. + * + * This works well for the Min and Typ values, but for Max values the sync + * pulse width is higher than back porch + front porch, so work around that + * by reducing the Max sync length value to 1 and then treating the Max + * porches as in the Min and Typ cases. + * + * Exact datasheet values are added as a comment where they differ from the + * ones implemented for the above reason. + */ +static const struct display_timing tianma_tm070jdhg34_00_timing = { + .pixelclock = { 68400000, 71900000, 78100000 }, + .hactive = { 1280, 1280, 1280 }, + .hfront_porch = { 130, 138, 158 }, /* 131, 139, 159 */ + .hback_porch = { 5, 5, 5 }, + .hsync_len = { 1, 1, 1 }, /* 1, 1, 256 */ + .vactive = { 800, 800, 800 }, + .vfront_porch = { 2, 39, 98 }, /* 3, 40, 99 */ + .vback_porch = { 2, 2, 2 }, + .vsync_len = { 1, 1, 1 }, /* 1, 1, 128 */ + .flags = DISPLAY_FLAGS_DE_HIGH, +}; + +static const struct panel_desc tianma_tm070jdhg34_00 = { + .timings = &tianma_tm070jdhg34_00_timing, + .num_timings = 1, + .bpc = 8, + .size = { + .width = 150, /* 149.76 */ + .height = 94, /* 93.60 */ + }, + .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .connector_type = DRM_MODE_CONNECTOR_LVDS, +}; + static const struct display_timing tianma_tm070rvhg71_timing = { .pixelclock = { 27700000, 29200000, 39600000 }, .hactive = { 800, 800, 800 }, @@ -5028,6 +5067,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "tianma,tm070jdhg30", .data = &tianma_tm070jdhg30, + }, { + .compatible = "tianma,tm070jdhg34-00", + .data = &tianma_tm070jdhg34_00, }, { .compatible = "tianma,tm070jvhg33", .data = &tianma_tm070jvhg33, -- 2.34.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] drm/panel: simple: Add Tianma TM070JDHG34-00 panel support 2024-12-10 17:28 ` [PATCH 2/2] drm/panel: simple: Add Tianma TM070JDHG34-00 panel support Luca Ceresoli @ 2024-12-13 9:28 ` Neil Armstrong 0 siblings, 0 replies; 6+ messages in thread From: Neil Armstrong @ 2024-12-13 9:28 UTC (permalink / raw) To: Luca Ceresoli, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg Cc: Thomas Petazzoni, dri-devel, devicetree, linux-kernel On 10/12/2024 18:28, Luca Ceresoli wrote: > Add Tianma TM070JDHG34-00 7.0" 1280x800 LVDS RGB TFT LCD panel. > > Panel info and datasheet: https://fortec.us/products/tm070jdhg34-00/ > > Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> > --- > drivers/gpu/drm/panel/panel-simple.c | 42 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 42 insertions(+) > > diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c > index 1562f122724137dec37eb11443eafc896ef2f2e8..b3c931a4e46a2568b3678d664f11b189873fa1e2 100644 > --- a/drivers/gpu/drm/panel/panel-simple.c > +++ b/drivers/gpu/drm/panel/panel-simple.c > @@ -4286,6 +4286,45 @@ static const struct panel_desc tianma_tm070jvhg33 = { > .bus_flags = DRM_BUS_FLAG_DE_HIGH, > }; > > +/* > + * The datasheet computes total blanking as back porch + front porch, not > + * including sync pulse width. This is for both H and V. To make the total > + * blanking and period correct, subtract the pulse width from the front > + * porch. > + * > + * This works well for the Min and Typ values, but for Max values the sync > + * pulse width is higher than back porch + front porch, so work around that > + * by reducing the Max sync length value to 1 and then treating the Max > + * porches as in the Min and Typ cases. > + * > + * Exact datasheet values are added as a comment where they differ from the > + * ones implemented for the above reason. > + */ > +static const struct display_timing tianma_tm070jdhg34_00_timing = { > + .pixelclock = { 68400000, 71900000, 78100000 }, > + .hactive = { 1280, 1280, 1280 }, > + .hfront_porch = { 130, 138, 158 }, /* 131, 139, 159 */ > + .hback_porch = { 5, 5, 5 }, > + .hsync_len = { 1, 1, 1 }, /* 1, 1, 256 */ > + .vactive = { 800, 800, 800 }, > + .vfront_porch = { 2, 39, 98 }, /* 3, 40, 99 */ > + .vback_porch = { 2, 2, 2 }, > + .vsync_len = { 1, 1, 1 }, /* 1, 1, 128 */ > + .flags = DISPLAY_FLAGS_DE_HIGH, > +}; > + > +static const struct panel_desc tianma_tm070jdhg34_00 = { > + .timings = &tianma_tm070jdhg34_00_timing, > + .num_timings = 1, > + .bpc = 8, > + .size = { > + .width = 150, /* 149.76 */ > + .height = 94, /* 93.60 */ > + }, > + .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, > + .connector_type = DRM_MODE_CONNECTOR_LVDS, > +}; > + > static const struct display_timing tianma_tm070rvhg71_timing = { > .pixelclock = { 27700000, 29200000, 39600000 }, > .hactive = { 800, 800, 800 }, > @@ -5028,6 +5067,9 @@ static const struct of_device_id platform_of_match[] = { > }, { > .compatible = "tianma,tm070jdhg30", > .data = &tianma_tm070jdhg30, > + }, { > + .compatible = "tianma,tm070jdhg34-00", > + .data = &tianma_tm070jdhg34_00, > }, { > .compatible = "tianma,tm070jvhg33", > .data = &tianma_tm070jvhg33, > Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-12-16 15:53 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-12-10 17:28 [PATCH 0/2] drm/panel: simple: Add Tianma TM070JDHG34-00 DT bindings and driver support Luca Ceresoli 2024-12-10 17:28 ` [PATCH 1/2] dt-bindings: display: simple: Add Tianma TM070JDHG34-00 panel Luca Ceresoli 2024-12-16 10:09 ` Krzysztof Kozlowski 2024-12-16 15:53 ` Luca Ceresoli 2024-12-10 17:28 ` [PATCH 2/2] drm/panel: simple: Add Tianma TM070JDHG34-00 panel support Luca Ceresoli 2024-12-13 9:28 ` Neil Armstrong
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox