diff mbox

drm/panel: simple: Add support for Seiko 43WVF1G

Message ID 1486065840-13575-1-git-send-email-breno.lima@nxp.com (mailing list archive)
State New, archived
Headers show

Commit Message

Breno Lima Feb. 2, 2017, 8:04 p.m. UTC
Add support for Seiko Instruments Inc. 4.3" WVGA (800 x RGB x 480)
TFT with Touch-Panel, which can be supported by the simple panel driver.

Data-sheet available at:
http://www.glyn.de/data/glyn/media/doc/43wvf1g-0.pdf

Signed-off-by: Breno Lima <breno.lima@nxp.com>
---
 .../bindings/display/panel/sii,43wvf1g.txt         |  7 ++++++
 drivers/gpu/drm/panel/panel-simple.c               | 28 ++++++++++++++++++++++
 2 files changed, 35 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/panel/sii,43wvf1g.txt

Comments

Rob Herring Feb. 7, 2017, 6:49 p.m. UTC | #1
On Thu, Feb 02, 2017 at 06:04:00PM -0200, Breno Lima wrote:
> Add support for Seiko Instruments Inc. 4.3" WVGA (800 x RGB x 480)
> TFT with Touch-Panel, which can be supported by the simple panel driver.
> 
> Data-sheet available at:
> http://www.glyn.de/data/glyn/media/doc/43wvf1g-0.pdf
> 
> Signed-off-by: Breno Lima <breno.lima@nxp.com>
> ---
>  .../bindings/display/panel/sii,43wvf1g.txt         |  7 ++++++
>  drivers/gpu/drm/panel/panel-simple.c               | 28 ++++++++++++++++++++++
>  2 files changed, 35 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/display/panel/sii,43wvf1g.txt
> 
> diff --git a/Documentation/devicetree/bindings/display/panel/sii,43wvf1g.txt b/Documentation/devicetree/bindings/display/panel/sii,43wvf1g.txt
> new file mode 100644
> index 0000000..bbbc49f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/sii,43wvf1g.txt
> @@ -0,0 +1,7 @@
> +Seiko Instruments Inc. 4.3" WVGA (800 x RGB x 480) TFT with Touch-Panel
> +
> +Required properties:
> +- compatible: should be "sii,43wvf1g"
> +

No power supply(ies) for this panel?

> +This binding is compatible with the simple-panel binding, which is specified
> +in simple-panel.txt in this directory.
Fabio Estevam Feb. 7, 2017, 6:55 p.m. UTC | #2
Hi Rob,

On Tue, Feb 7, 2017 at 4:49 PM, Rob Herring <robh@kernel.org> wrote:

> No power supply(ies) for this panel?

power-supply is mentioned in  simple-panel.txt.

>> +This binding is compatible with the simple-panel binding, which is specified
>> +in simple-panel.txt in this directory.

and this doc refers to simple-panel.txt. Isn't that enough?

Seems like a common pattern for the other simple panel binding doc.

Thanks
Rob Herring Feb. 7, 2017, 11:36 p.m. UTC | #3
On Tue, Feb 7, 2017 at 12:55 PM, Fabio Estevam <festevam@gmail.com> wrote:
> Hi Rob,
>
> On Tue, Feb 7, 2017 at 4:49 PM, Rob Herring <robh@kernel.org> wrote:
>
>> No power supply(ies) for this panel?
>
> power-supply is mentioned in  simple-panel.txt.
>
>>> +This binding is compatible with the simple-panel binding, which is specified
>>> +in simple-panel.txt in this directory.
>
> and this doc refers to simple-panel.txt. Isn't that enough?

Except I have no way of knowing whether: a) you omitted a supply
because you don't (yet) care, b) the panel has a single supply and you
are using power-supply or c) the panel has multiple supplies and your
binding is wrong.

I can only eliminate A if you list the supplies. Just need something
like "power-supply : see simple-panel.txt". I've still got to go read
the panel spec if I really want to check the binding.

> Seems like a common pattern for the other simple panel binding doc.

We've gotten stricter about this.

Rob
Fabio Estevam Feb. 8, 2017, 12:48 a.m. UTC | #4
On Tue, Feb 7, 2017 at 9:36 PM, Rob Herring <robh@kernel.org> wrote:

> Except I have no way of knowing whether: a) you omitted a supply
> because you don't (yet) care, b) the panel has a single supply and you
> are using power-supply or c) the panel has multiple supplies and your
> binding is wrong.
>
> I can only eliminate A if you list the supplies. Just need something
> like "power-supply : see simple-panel.txt". I've still got to go read
> the panel spec if I really want to check the binding.

Just checked the panel datasheet at
http://www.glyn.de/data/glyn/media/doc/43wvf1g-0.pdf and it lists two
supplies:
DVDD (Digital power supply) and AVDD (Analog power supply).

Our dts was just providing a single 'power-supply' which referred to a
GPIO enabled regulator that drives DVDD.

So it seems we missed to pass AVDD (not software controlled in our
case, but we need to describe it in dts anyway).

Does this mean we cannot use simple-panel for this particular panel
and we should add a separate driver for it?

Thanks
Fabio Estevam April 8, 2017, 8:45 p.m. UTC | #5
Thierry/Rob,

On Tue, Feb 7, 2017 at 10:48 PM, Fabio Estevam <festevam@gmail.com> wrote:
> On Tue, Feb 7, 2017 at 9:36 PM, Rob Herring <robh@kernel.org> wrote:
>
>> Except I have no way of knowing whether: a) you omitted a supply
>> because you don't (yet) care, b) the panel has a single supply and you
>> are using power-supply or c) the panel has multiple supplies and your
>> binding is wrong.
>>
>> I can only eliminate A if you list the supplies. Just need something
>> like "power-supply : see simple-panel.txt". I've still got to go read
>> the panel spec if I really want to check the binding.
>
> Just checked the panel datasheet at
> http://www.glyn.de/data/glyn/media/doc/43wvf1g-0.pdf and it lists two
> supplies:
> DVDD (Digital power supply) and AVDD (Analog power supply).
>
> Our dts was just providing a single 'power-supply' which referred to a
> GPIO enabled regulator that drives DVDD.
>
> So it seems we missed to pass AVDD (not software controlled in our
> case, but we need to describe it in dts anyway).
>
> Does this mean we cannot use simple-panel for this particular panel
> and we should add a separate driver for it?

Please confirm if we need to create a separate driver for this panel, thanks.
Rob Herring April 11, 2017, 4:36 p.m. UTC | #6
On Sat, Apr 8, 2017 at 3:45 PM, Fabio Estevam <festevam@gmail.com> wrote:
> Thierry/Rob,
>
> On Tue, Feb 7, 2017 at 10:48 PM, Fabio Estevam <festevam@gmail.com> wrote:
>> On Tue, Feb 7, 2017 at 9:36 PM, Rob Herring <robh@kernel.org> wrote:
>>
>>> Except I have no way of knowing whether: a) you omitted a supply
>>> because you don't (yet) care, b) the panel has a single supply and you
>>> are using power-supply or c) the panel has multiple supplies and your
>>> binding is wrong.
>>>
>>> I can only eliminate A if you list the supplies. Just need something
>>> like "power-supply : see simple-panel.txt". I've still got to go read
>>> the panel spec if I really want to check the binding.
>>
>> Just checked the panel datasheet at
>> http://www.glyn.de/data/glyn/media/doc/43wvf1g-0.pdf and it lists two
>> supplies:
>> DVDD (Digital power supply) and AVDD (Analog power supply).
>>
>> Our dts was just providing a single 'power-supply' which referred to a
>> GPIO enabled regulator that drives DVDD.
>>
>> So it seems we missed to pass AVDD (not software controlled in our
>> case, but we need to describe it in dts anyway).
>>
>> Does this mean we cannot use simple-panel for this particular panel
>> and we should add a separate driver for it?
>
> Please confirm if we need to create a separate driver for this panel, thanks.

The binding should list both. They can be optional though. Maybe you
can parameterize the supply name in the driver for the single
(controlled) supply case. Or provide power on/off hooks.

Rob
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/display/panel/sii,43wvf1g.txt b/Documentation/devicetree/bindings/display/panel/sii,43wvf1g.txt
new file mode 100644
index 0000000..bbbc49f
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/sii,43wvf1g.txt
@@ -0,0 +1,7 @@ 
+Seiko Instruments Inc. 4.3" WVGA (800 x RGB x 480) TFT with Touch-Panel
+
+Required properties:
+- compatible: should be "sii,43wvf1g"
+
+This binding is compatible with the simple-panel binding, which is specified
+in simple-panel.txt in this directory.
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 06aaf79..0e08c56 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -863,6 +863,31 @@  static const struct panel_desc hannstar_hsd070pww1 = {
 	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
 };
 
+static const struct display_timing sii_43wvf1g_timing = {
+	.pixelclock = { 33500000, 33500000, 33500000 },
+	.hactive = { 800, 800, 800 },
+	.hfront_porch = {  164, 164, 164 },
+	.hback_porch = { 89, 89, 89 },
+	.hsync_len = { 10, 10, 10 },
+	.vactive = { 480, 480, 480 },
+	.vfront_porch = { 10, 10, 10 },
+	.vback_porch = { 23, 23, 23 },
+	.vsync_len = { 10, 10, 10 },
+	.flags = DISPLAY_FLAGS_DE_LOW,
+};
+
+static const struct panel_desc sii_43wvf1g = {
+	.timings = &sii_43wvf1g_timing,
+	.num_timings = 1,
+	.bpc = 8,
+	.size = {
+		.width = 93,
+		.height = 57,
+	},
+	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_NEGEDGE,
+};
+
 static const struct display_timing hannstar_hsd100pxn1_timing = {
 	.pixelclock = { 55000000, 65000000, 75000000 },
 	.hactive = { 1024, 1024, 1024 },
@@ -1853,6 +1878,9 @@  static const struct of_device_id platform_of_match[] = {
 		.compatible = "samsung,ltn140at29-301",
 		.data = &samsung_ltn140at29_301,
 	}, {
+		.compatible = "sii,43wvf1g",
+		.data = &sii_43wvf1g,
+	}, {
 		.compatible = "sharp,lq101k1ly04",
 		.data = &sharp_lq101k1ly04,
 	}, {