[PATCH] drm/panel: Add driver for Seiko 43WVF1G panel
Thierry Reding
thierry.reding at gmail.com
Wed Jun 14 17:49:52 UTC 2017
On Tue, Apr 25, 2017 at 01:18:35PM -0300, Marco Franchi wrote:
> Add driver for Seiko Instruments Inc. 4.3" WVGA (800 x RGB x 480)
> TFT with Touch-Panel.
>
> Datasheet available at:
> http://www.glyn.de/data/glyn/media/doc/43wvf1g-0.pdf
>
> Seiko 43WVF1G panel has two power supplies: AVDD and DVDD and they
> require a specific power on/down sequence.
> For this reason the simple panel driver cannot be used to drive this
> panel, so create a new one heavily based on simple panel.
>
> Based on initial patch submission from Breno Lima.
>
> Signed-off-by: Marco Franchi <marco.franchi at nxp.com>
> ---
> .../bindings/display/panel/seiko,43wvf1g.txt | 23 ++
> drivers/gpu/drm/panel/Kconfig | 9 +
> drivers/gpu/drm/panel/Makefile | 1 +
> drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 372 +++++++++++++++++++++
> 4 files changed, 405 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/panel/seiko,43wvf1g.txt
> create mode 100644 drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
>
> diff --git a/Documentation/devicetree/bindings/display/panel/seiko,43wvf1g.txt b/Documentation/devicetree/bindings/display/panel/seiko,43wvf1g.txt
> new file mode 100644
> index 0000000..cd1eeda
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/seiko,43wvf1g.txt
> @@ -0,0 +1,23 @@
> +Seiko Instruments Inc. 4.3" WVGA (800 x RGB x 480) TFT with Touch-Panel
> +
> +Required properties:
> +- compatible: should be "sii,43wvf1g".
> +- "DVDD-supply": 3v3 digital regulator.
> +- "AVDD-supply": 5v analog regulator.
I don't think we should be using all-uppercase for supply names. So the
above should be "dvdd-supply" and "avdd-supply". No need to resend only
for that change, I can fix it up when applying.
Rob, can I have your Acked-by with the above change?
Just two minor comments below.
> diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
[...]
> +struct seiko_panel_desc {
> + const struct drm_display_mode *modes;
> + unsigned int num_modes;
> + const struct display_timing *timings;
> + unsigned int num_timings;
> +
> + unsigned int bpc;
> +
> + /**
> + * @width: width (in millimeters) of the panel's active display area
> + * @height: height (in millimeters) of the panel's active display area
> + */
> + struct {
> + unsigned int width;
> + unsigned int height;
> + } size;
> +
> + u32 bus_format;
> + u32 bus_flags;
> +};
It's somewhat unfortunate how this has to duplicate a lot of the
panel-simple driver just because it uses two regulators. However, with
some of the work going on to make panel-simple code more reusable this
might improve in the future. For now I think this doesn't hurt.
> +struct seiko_panel {
> + struct drm_panel base;
> + bool prepared;
> + bool enabled;
> + const struct seiko_panel_desc *desc;
> + struct backlight_device *backlight;
> + struct regulator *DVDD;
> + struct regulator *AVDD;
> +};
Same as for the binding: we don't use all-uppercase names for variables,
so I'll fix those up to be lowercase when applying.
Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20170614/6efd8005/attachment-0001.sig>
More information about the dri-devel
mailing list