Re: [PATCH 1/2] drm/panel: simple: Add FriendlyELEC HD702E 800x1280 LCD panel

Sam Ravnborg
2019-05-01T19:34:29Z

Hi Jagan

On Wed, May 01, 2019 at 05:44:47PM +0530, Jagan Teki wrote:
> HD702E lcd is FriendlyELEC developed eDP LCD panel with 800x1280
> resolution. It has built in Goodix, GT9271 captive touchscreen
> with backlight adjustable via PWM.
>
> Add support for it.
>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: dri-devel@lists.freedesktop.org
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>

Please submit the binding in a separate patch as per
Documentation/devicetree/bindings/submitting-patches.txt

The binding looks like it is compatible with common-panel and
simple-panel - please say so in the bindings.
See for example the last few binding documents added to the kernel tree.

> ---
> .../display/panel/friendlyarm,hd702e.txt | 29 +++++++++++++++++++
> drivers/gpu/drm/panel/panel-simple.c | 26 +++++++++++++++++
> 2 files changed, 55 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/panel/friendlyarm,hd702e.txt
>
> diff --git a/Documentation/devicetree/bindings/display/panel/friendlyarm,hd702e.txt b/Documentation/devicetree/bindings/display/panel/friendlyarm,hd702e.txt
> new file mode 100644
> index 000000000000..67349d7f79be
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/friendlyarm,hd702e.txt
> @@ -0,0 +1,29 @@
> +FriendlyELEC HD702E 800x1280 LCD panel
> +
> +HD702E lcd is FriendlyELEC developed eDP LCD panel with 800x1280
> +resolution. It has built in Goodix, GT9271 captive touchscreen
> +with backlight adjustable via PWM.
> +
> +Required properties:
> +- compatible: should be "friendlyarm,hd702e"
> +- power-supply: regulator to provide the supply voltage
> +
> +Optional properties:
> +- backlight: phandle of the backlight device attached to the panel
> +
> +Optional nodes:
> +- Video port for LCD panel input.
> +
> +Example:
> +
> + panel {
> + compatible ="friendlyarm,hd702e";
> + backlight = <&backlight>;
> + power-supply = <&vcc3v3_sys>;
> +
> + port {
> + panel_in_edp: endpoint {
> + remote-endpoint = <&edp_out_panel>;
> + };
> + };
> + };
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index 9e8218f6a3f2..9db3c0c65ef2 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -1184,6 +1184,29 @@ static const struct panel_desc foxlink_fl500wvr00_a0t = {
> .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
> };
>
> +static const struct drm_display_mode friendlyarm_hd702e_mode = {
> + .clock = 67185,
> + .hdisplay = 800,
> + .hsync_start = 800 + 20,
> + .hsync_end = 800 + 20 + 24,
> + .htotal = 800 + 20 + 24 + 20,
> + .vdisplay = 1280,
> + .vsync_start = 1280 + 4,
> + .vsync_end = 1280 + 4 + 8,
> + .vtotal = 1280 + 4 + 8 + 4,
> + .vrefresh = 60,
> + .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
> +};
> +
> +static const struct panel_desc friendlyarm_hd702e = {
> + .modes = &friendlyarm_hd702e_mode,
> + .num_modes = 1,
> + .size = {
> + .width = 94,
> + .height = 151,
> + },
> +};
As I read the datasheet then this panel needs at least a prepare delay
of 10 ms (it says > 10 ms from VGH until Data).
And then we also know that VGH shall be valid at least 10 ms after DVDD
so prepare is likely 20 ms.

Based on datasheet found here:
https://pan.baidu.com/s/1geEfBLh/

Please evaluate all delays.

> +
> static const struct drm_display_mode giantplus_gpg482739qs5_mode = {
> .clock = 9000,
> .hdisplay = 480,
> @@ -2634,6 +2657,9 @@ static const struct of_device_id platform_of_match[] = {
> }, {
> .compatible = "edt,etm0700g0edh6",
> .data = &edt_etm0700g0bdh6,
> + }, {
> + .compatible = "friendlyarm,hd702e",
> + .data = &friendlyarm_hd702e,
> }, {
> .compatible = "foxlink,fl500wvr00-a0t",
> .data = &foxlink_fl500wvr00_a0t,

Add these in sorted order.
"fox" is before "fri"

Sam