diff mbox series

[RFC,18/19] drm/panel: simple: Add support for Toshiba LTA089AC29000 panel

Message ID 20190808151150.16336-19-boris.brezillon@collabora.com (mailing list archive)
State New, archived
Headers show
Series drm: Add support for bus-format negotiation | expand

Commit Message

Boris Brezillon Aug. 8, 2019, 3:11 p.m. UTC
Add a new entry for the Toshiba LTA089AC29000 panel.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
---
 .../display/panel/toshiba,lt089ac29000.txt    |  5 ++-
 drivers/gpu/drm/panel/panel-simple.c          | 36 +++++++++++++++++++
 2 files changed, 40 insertions(+), 1 deletion(-)

Comments

Laurent Pinchart Aug. 22, 2019, 12:36 a.m. UTC | #1
Hi Boris,

Thank you for the patch.

On Thu, Aug 08, 2019 at 05:11:49PM +0200, Boris Brezillon wrote:
> Add a new entry for the Toshiba LTA089AC29000 panel.
> 
> Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
> ---
>  .../display/panel/toshiba,lt089ac29000.txt    |  5 ++-
>  drivers/gpu/drm/panel/panel-simple.c          | 36 +++++++++++++++++++
>  2 files changed, 40 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/display/panel/toshiba,lt089ac29000.txt b/Documentation/devicetree/bindings/display/panel/toshiba,lt089ac29000.txt
> index 89826116628c..26ebfa098966 100644
> --- a/Documentation/devicetree/bindings/display/panel/toshiba,lt089ac29000.txt
> +++ b/Documentation/devicetree/bindings/display/panel/toshiba,lt089ac29000.txt
> @@ -1,7 +1,10 @@
>  Toshiba 8.9" WXGA (1280x768) TFT LCD panel
>  
>  Required properties:
> -- compatible: should be "toshiba,lt089ac29000"
> +- compatible: should be one of the following
> +	      "toshiba,lt089ac29000"
> +	      "toshiba,lta089ac29000"
> +
>  - power-supply: as specified in the base binding
>  
>  This binding is compatible with the simple-panel binding, which is specified

While at it, any change to convert this binding to .yaml ? For panels
it's fairly easy.

> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index bff7578f84dd..4c1deed44ce2 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -2857,6 +2857,39 @@ static const struct panel_desc toshiba_lt089ac29000 = {
>  	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
>  };
>  
> +static const struct drm_display_mode toshiba_lta089ac29000_mode = {
> +	.clock = 79500,
> +	.hdisplay = 1280,
> +	.hsync_start = 1280 + 192,
> +	.hsync_end = 1280 + 192 + 128,
> +	.htotal = 1280 + 192 + 128 + 64,
> +	.vdisplay = 768,
> +	.vsync_start = 768 + 20,
> +	.vsync_end = 768 + 20 + 7,
> +	.vtotal = 768 + 20 + 7 + 3,
> +	.vrefresh = 60,
> +};
> +
> +static const struct panel_desc toshiba_lta089ac29000 = {
> +	.modes = &toshiba_lta089ac29000_mode,
> +	.num_modes = 1,
> +	.size = {
> +		.width = 194,
> +		.height = 116,
> +	},
> +	/*
> +	 * FIXME:
> +	 * The panel supports 2 bus formats: jeida-24 and jeida-18. The
> +	 * mode is selected through the 8b6b_SEL pin. If anyone ever needs
> +	 * support for jeida-18 we should probably parse the 'data-mapping'
> +	 * property.
> +	 * In the unlikely event where 8b6b_SEL is connected to a GPIO, we'd
> +	 * need a new infra to allow bus format negotiation at the panel level.

I would also leave the GPIO case for later, but it would be nice to already
implement reading the data-mapping property, in order to validate the DT
(you should add the data-mapping property to the bindings by the way).
Bonus points if it can be done in a way that is also usable by other
panels.

> +	 */
> +	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA,
> +	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
> +};
> +
>  static const struct drm_display_mode tpk_f07a_0102_mode = {
>  	.clock = 33260,
>  	.hdisplay = 800,
> @@ -3305,6 +3338,9 @@ static const struct of_device_id platform_of_match[] = {
>  	}, {
>  		.compatible = "toshiba,lt089ac29000",
>  		.data = &toshiba_lt089ac29000,
> +	}, {
> +		.compatible = "toshiba,lta089ac29000",
> +		.data = &toshiba_lta089ac29000,
>  	}, {
>  		.compatible = "tpk,f07a-0102",
>  		.data = &tpk_f07a_0102,
Boris Brezillon Aug. 22, 2019, 8:15 a.m. UTC | #2
On Thu, 22 Aug 2019 03:36:32 +0300
Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote:

> Hi Boris,
> 
> Thank you for the patch.
> 
> On Thu, Aug 08, 2019 at 05:11:49PM +0200, Boris Brezillon wrote:
> > Add a new entry for the Toshiba LTA089AC29000 panel.
> > 
> > Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
> > ---
> >  .../display/panel/toshiba,lt089ac29000.txt    |  5 ++-
> >  drivers/gpu/drm/panel/panel-simple.c          | 36 +++++++++++++++++++
> >  2 files changed, 40 insertions(+), 1 deletion(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/display/panel/toshiba,lt089ac29000.txt b/Documentation/devicetree/bindings/display/panel/toshiba,lt089ac29000.txt
> > index 89826116628c..26ebfa098966 100644
> > --- a/Documentation/devicetree/bindings/display/panel/toshiba,lt089ac29000.txt
> > +++ b/Documentation/devicetree/bindings/display/panel/toshiba,lt089ac29000.txt
> > @@ -1,7 +1,10 @@
> >  Toshiba 8.9" WXGA (1280x768) TFT LCD panel
> >  
> >  Required properties:
> > -- compatible: should be "toshiba,lt089ac29000"
> > +- compatible: should be one of the following
> > +	      "toshiba,lt089ac29000"
> > +	      "toshiba,lta089ac29000"
> > +
> >  - power-supply: as specified in the base binding
> >  
> >  This binding is compatible with the simple-panel binding, which is specified  
> 
> While at it, any change to convert this binding to .yaml ? For panels
> it's fairly easy.

I'll add a patch doing that.

> 
> > diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> > index bff7578f84dd..4c1deed44ce2 100644
> > --- a/drivers/gpu/drm/panel/panel-simple.c
> > +++ b/drivers/gpu/drm/panel/panel-simple.c
> > @@ -2857,6 +2857,39 @@ static const struct panel_desc toshiba_lt089ac29000 = {
> >  	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
> >  };
> >  
> > +static const struct drm_display_mode toshiba_lta089ac29000_mode = {
> > +	.clock = 79500,
> > +	.hdisplay = 1280,
> > +	.hsync_start = 1280 + 192,
> > +	.hsync_end = 1280 + 192 + 128,
> > +	.htotal = 1280 + 192 + 128 + 64,
> > +	.vdisplay = 768,
> > +	.vsync_start = 768 + 20,
> > +	.vsync_end = 768 + 20 + 7,
> > +	.vtotal = 768 + 20 + 7 + 3,
> > +	.vrefresh = 60,
> > +};
> > +
> > +static const struct panel_desc toshiba_lta089ac29000 = {
> > +	.modes = &toshiba_lta089ac29000_mode,
> > +	.num_modes = 1,
> > +	.size = {
> > +		.width = 194,
> > +		.height = 116,
> > +	},
> > +	/*
> > +	 * FIXME:
> > +	 * The panel supports 2 bus formats: jeida-24 and jeida-18. The
> > +	 * mode is selected through the 8b6b_SEL pin. If anyone ever needs
> > +	 * support for jeida-18 we should probably parse the 'data-mapping'
> > +	 * property.
> > +	 * In the unlikely event where 8b6b_SEL is connected to a GPIO, we'd
> > +	 * need a new infra to allow bus format negotiation at the panel level.  
> 
> I would also leave the GPIO case for later, but it would be nice to already
> implement reading the data-mapping property, in order to validate the DT
> (you should add the data-mapping property to the bindings by the way).

I'll do that.

> Bonus points if it can be done in a way that is also usable by other
> panels.

Sure, I'll make that code generic.

> 
> > +	 */
> > +	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA,
> > +	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
> > +};
> > +
> >  static const struct drm_display_mode tpk_f07a_0102_mode = {
> >  	.clock = 33260,
> >  	.hdisplay = 800,
> > @@ -3305,6 +3338,9 @@ static const struct of_device_id platform_of_match[] = {
> >  	}, {
> >  		.compatible = "toshiba,lt089ac29000",
> >  		.data = &toshiba_lt089ac29000,
> > +	}, {
> > +		.compatible = "toshiba,lta089ac29000",
> > +		.data = &toshiba_lta089ac29000,
> >  	}, {
> >  		.compatible = "tpk,f07a-0102",
> >  		.data = &tpk_f07a_0102,  
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/display/panel/toshiba,lt089ac29000.txt b/Documentation/devicetree/bindings/display/panel/toshiba,lt089ac29000.txt
index 89826116628c..26ebfa098966 100644
--- a/Documentation/devicetree/bindings/display/panel/toshiba,lt089ac29000.txt
+++ b/Documentation/devicetree/bindings/display/panel/toshiba,lt089ac29000.txt
@@ -1,7 +1,10 @@ 
 Toshiba 8.9" WXGA (1280x768) TFT LCD panel
 
 Required properties:
-- compatible: should be "toshiba,lt089ac29000"
+- compatible: should be one of the following
+	      "toshiba,lt089ac29000"
+	      "toshiba,lta089ac29000"
+
 - power-supply: as specified in the base binding
 
 This binding is compatible with the simple-panel binding, which is specified
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index bff7578f84dd..4c1deed44ce2 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -2857,6 +2857,39 @@  static const struct panel_desc toshiba_lt089ac29000 = {
 	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 };
 
+static const struct drm_display_mode toshiba_lta089ac29000_mode = {
+	.clock = 79500,
+	.hdisplay = 1280,
+	.hsync_start = 1280 + 192,
+	.hsync_end = 1280 + 192 + 128,
+	.htotal = 1280 + 192 + 128 + 64,
+	.vdisplay = 768,
+	.vsync_start = 768 + 20,
+	.vsync_end = 768 + 20 + 7,
+	.vtotal = 768 + 20 + 7 + 3,
+	.vrefresh = 60,
+};
+
+static const struct panel_desc toshiba_lta089ac29000 = {
+	.modes = &toshiba_lta089ac29000_mode,
+	.num_modes = 1,
+	.size = {
+		.width = 194,
+		.height = 116,
+	},
+	/*
+	 * FIXME:
+	 * The panel supports 2 bus formats: jeida-24 and jeida-18. The
+	 * mode is selected through the 8b6b_SEL pin. If anyone ever needs
+	 * support for jeida-18 we should probably parse the 'data-mapping'
+	 * property.
+	 * In the unlikely event where 8b6b_SEL is connected to a GPIO, we'd
+	 * need a new infra to allow bus format negotiation at the panel level.
+	 */
+	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
+};
+
 static const struct drm_display_mode tpk_f07a_0102_mode = {
 	.clock = 33260,
 	.hdisplay = 800,
@@ -3305,6 +3338,9 @@  static const struct of_device_id platform_of_match[] = {
 	}, {
 		.compatible = "toshiba,lt089ac29000",
 		.data = &toshiba_lt089ac29000,
+	}, {
+		.compatible = "toshiba,lta089ac29000",
+		.data = &toshiba_lta089ac29000,
 	}, {
 		.compatible = "tpk,f07a-0102",
 		.data = &tpk_f07a_0102,