2020-01-09 21:02:11

by Miquel Raynal

[permalink] [raw]
Subject: [PATCH v5 1/2] dt-bindings: display: simple: Add Satoz panel

Satoz is a Chinese TFT manufacturer.
Website: http://www.sat-sz.com/English/index.html

Add the compatible for its SAT050AT40H12R2 5.0 inch LCD panel.

Signed-off-by: Miquel Raynal <[email protected]>
---

Changes since v4:
* Drop the satoz,sat050at40h12r2.yaml file in favor of the very new
panel-simple.yaml common file. Just add the compatible there.

Changes since v3:
* Added the missing ".yaml" suffix in the $id.
* Removed the unnecessary "contains" assertion about the compatible.
* Added a precision : there is no public specification for this panel
(known for the moment).
* Bindings checked with "make dt_binding_check"

Changes since v2:
* None.

Changes since v1:
* New patch

.../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 090866260f4f..8a9c37640dc0 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
@@ -33,6 +33,8 @@ properties:
- ampire,am-480272h3tmqw-t01h
# Ampire AM-800480R3TMQW-A1H 7.0" WVGA TFT LCD panel
- ampire,am800480r3tmqwa1h
+ # Satoz SAT050AT40H12R2 5.0" WVGA TFT LCD panel
+ - satoz,sat050at40h12r2

backlight: true
enable-gpios: true
--
2.20.1


2020-01-09 21:02:11

by Miquel Raynal

[permalink] [raw]
Subject: [PATCH v5 2/2] drm/panel: simple: Add Satoz SAT050AT40H12R2 panel support

Add support for the Satoz SAT050AT40H12R2 panel.

Signed-off-by: Miquel Raynal <[email protected]>
---

Changes since v4:
* None.

Changes since v3:
* Added connector type.

Changes since v2:
* Dropped two uneeded lines which would fail the build.

Changes since v1:
* Switched to display_timing's instead of display_mode.

drivers/gpu/drm/panel/panel-simple.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index aaa08beac13c..1aa6622abc49 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -2577,6 +2577,30 @@ static const struct panel_desc samsung_ltn140at29_301 = {
},
};

+static const struct display_timing satoz_sat050at40h12r2_timing = {
+ .pixelclock = {33300000, 33300000, 50000000},
+ .hactive = {800, 800, 800},
+ .hfront_porch = {16, 210, 354},
+ .hback_porch = {46, 46, 46},
+ .hsync_len = {1, 1, 40},
+ .vactive = {480, 480, 480},
+ .vfront_porch = {7, 22, 147},
+ .vback_porch = {23, 23, 23},
+ .vsync_len = {1, 1, 20},
+};
+
+static const struct panel_desc satoz_sat050at40h12r2 = {
+ .timings = &satoz_sat050at40h12r2_timing,
+ .num_timings = 1,
+ .bpc = 8,
+ .size = {
+ .width = 108,
+ .height = 65,
+ },
+ .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+ .connector_type = DRM_MODE_CONNECTOR_LVDS,
+};
+
static const struct drm_display_mode sharp_ld_d5116z01b_mode = {
.clock = 168480,
.hdisplay = 1920,
@@ -3377,6 +3401,9 @@ static const struct of_device_id platform_of_match[] = {
}, {
.compatible = "samsung,ltn140at29-301",
.data = &samsung_ltn140at29_301,
+ }, {
+ .compatible = "satoz,sat050at40h12r2",
+ .data = &satoz_sat050at40h12r2,
}, {
.compatible = "sharp,ld-d5116z01b",
.data = &sharp_ld_d5116z01b,
--
2.20.1

2020-06-28 07:26:03

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH v5 2/2] drm/panel: simple: Add Satoz SAT050AT40H12R2 panel support

Hi Miquel,

On Thu, Jan 09, 2020 at 07:40:37PM +0100, Miquel Raynal wrote:
> Add support for the Satoz SAT050AT40H12R2 panel.
>
> Signed-off-by: Miquel Raynal <[email protected]>
> ---
>
> Changes since v4:
> * None.
>
> Changes since v3:
> * Added connector type.
>
> Changes since v2:
> * Dropped two uneeded lines which would fail the build.
>
> Changes since v1:
> * Switched to display_timing's instead of display_mode.
>
> drivers/gpu/drm/panel/panel-simple.c | 27 +++++++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index aaa08beac13c..1aa6622abc49 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -2577,6 +2577,30 @@ static const struct panel_desc samsung_ltn140at29_301 = {
> },
> };
>
> +static const struct display_timing satoz_sat050at40h12r2_timing = {
> + .pixelclock = {33300000, 33300000, 50000000},
> + .hactive = {800, 800, 800},
> + .hfront_porch = {16, 210, 354},
> + .hback_porch = {46, 46, 46},
> + .hsync_len = {1, 1, 40},
> + .vactive = {480, 480, 480},
> + .vfront_porch = {7, 22, 147},
> + .vback_porch = {23, 23, 23},
> + .vsync_len = {1, 1, 20},
> +};
> +
> +static const struct panel_desc satoz_sat050at40h12r2 = {
> + .timings = &satoz_sat050at40h12r2_timing,
> + .num_timings = 1,
> + .bpc = 8,
> + .size = {
> + .width = 108,
> + .height = 65,
> + },
> + .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
> + .connector_type = DRM_MODE_CONNECTOR_LVDS,

I'm trying to fix inconsistencies in the panel-simple driver, and this
caught my eyes. MEDIA_BUS_FMT_RGB888_1X24 isn't a correct format for
LVDS panels. MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
MEDIA_BUS_FMT_RGB888_1X7X4_SPWG or MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA
should be used instead. As I couldn't find documentation for the panel,
I can't tell which format is correct. Could you please help ?

> +};
> +
> static const struct drm_display_mode sharp_ld_d5116z01b_mode = {
> .clock = 168480,
> .hdisplay = 1920,
> @@ -3377,6 +3401,9 @@ static const struct of_device_id platform_of_match[] = {
> }, {
> .compatible = "samsung,ltn140at29-301",
> .data = &samsung_ltn140at29_301,
> + }, {
> + .compatible = "satoz,sat050at40h12r2",
> + .data = &satoz_sat050at40h12r2,
> }, {
> .compatible = "sharp,ld-d5116z01b",
> .data = &sharp_ld_d5116z01b,

--
Regards,

Laurent Pinchart

2020-06-29 19:47:26

by Miquel Raynal

[permalink] [raw]
Subject: Re: [PATCH v5 2/2] drm/panel: simple: Add Satoz SAT050AT40H12R2 panel support

Hi Laurent,

[...]

> >
> > +static const struct display_timing satoz_sat050at40h12r2_timing = {
> > + .pixelclock = {33300000, 33300000, 50000000},
> > + .hactive = {800, 800, 800},
> > + .hfront_porch = {16, 210, 354},
> > + .hback_porch = {46, 46, 46},
> > + .hsync_len = {1, 1, 40},
> > + .vactive = {480, 480, 480},
> > + .vfront_porch = {7, 22, 147},
> > + .vback_porch = {23, 23, 23},
> > + .vsync_len = {1, 1, 20},
> > +};
> > +
> > +static const struct panel_desc satoz_sat050at40h12r2 = {
> > + .timings = &satoz_sat050at40h12r2_timing,
> > + .num_timings = 1,
> > + .bpc = 8,
> > + .size = {
> > + .width = 108,
> > + .height = 65,
> > + },
> > + .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
> > + .connector_type = DRM_MODE_CONNECTOR_LVDS,
>
> I'm trying to fix inconsistencies in the panel-simple driver, and this
> caught my eyes. MEDIA_BUS_FMT_RGB888_1X24 isn't a correct format for
> LVDS panels. MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
> MEDIA_BUS_FMT_RGB888_1X7X4_SPWG or MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA
> should be used instead. As I couldn't find documentation for the panel,
> I can't tell which format is correct. Could you please help ?

Indeed, I got this datasheet under NDA.

We checked with Paul, we think the right format is:
MEDIA_BUS_FMT_RGB888_1X7X4_SPWG.

Thanks,
Miquèl