2014-06-12 15:09:46

by Alban Bedel

[permalink] [raw]
Subject: [PATCH] drm/panel: add support for Innolux N156BGE-L21 panel

This panel is used by the Medcom Wide and supported by the
simple-panel driver.

Signed-off-by: Alban Bedel <[email protected]>
---
drivers/gpu/drm/panel/panel-simple.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 309f29e..6a361bb 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -372,6 +372,28 @@ static const struct panel_desc samsung_ltn101nt05 = {
},
};

+static const struct drm_display_mode innolux_n156bge_l21_mode = {
+ .clock = 69300,
+ .hdisplay = 1366,
+ .hsync_start = 1366,
+ .hsync_end = 1366,
+ .htotal = 1366 + 100,
+ .vdisplay = 768,
+ .vsync_start = 768,
+ .vsync_end = 768,
+ .vtotal = 768 + 20,
+ .vrefresh = 60,
+};
+
+static const struct panel_desc innolux_n156bge_l21 = {
+ .modes = &innolux_n156bge_l21_mode,
+ .num_modes = 1,
+ .size = {
+ .width = 1366,
+ .height = 768,
+ },
+};
+
static const struct of_device_id platform_of_match[] = {
{
.compatible = "auo,b101aw03",
@@ -389,6 +411,9 @@ static const struct of_device_id platform_of_match[] = {
.compatible = "samsung,ltn101nt05",
.data = &samsung_ltn101nt05,
}, {
+ .compatible = "innolux,n156bge-l21",
+ .data = &innolux_n156bge_l21,
+ }, {
.compatible = "simple-panel",
}, {
/* sentinel */
--
2.0.0


2014-06-20 20:15:05

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH] drm/panel: add support for Innolux N156BGE-L21 panel

On Thu, Jun 12, 2014 at 05:09:05PM +0200, Alban Bedel wrote:
> This panel is used by the Medcom Wide and supported by the
> simple-panel driver.
>
> Signed-off-by: Alban Bedel <[email protected]>
> ---
> drivers/gpu/drm/panel/panel-simple.c | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index 309f29e..6a361bb 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -372,6 +372,28 @@ static const struct panel_desc samsung_ltn101nt05 = {
> },
> };
>
> +static const struct drm_display_mode innolux_n156bge_l21_mode = {
> + .clock = 69300,
> + .hdisplay = 1366,
> + .hsync_start = 1366,
> + .hsync_end = 1366,
> + .htotal = 1366 + 100,
> + .vdisplay = 768,
> + .vsync_start = 768,
> + .vsync_end = 768,
> + .vtotal = 768 + 20,

The timings here look slightly strange. Typically

.{h,v}display < .{h,v}sync_start < .{h,v}hsync_end < .{h,v}total

Given your timings above essentially means that the vsync pulse starts
immediately after the last active pixel or line and is of length zero.

> + .vrefresh = 60,
> +};
> +
> +static const struct panel_desc innolux_n156bge_l21 = {
> + .modes = &innolux_n156bge_l21_mode,
> + .num_modes = 1,
> + .size = {
> + .width = 1366,
> + .height = 768,

This size is the physical size (in mm) of the active area of the panel.

> + },
> +};
> +
> static const struct of_device_id platform_of_match[] = {
> {
> .compatible = "auo,b101aw03",
> @@ -389,6 +411,9 @@ static const struct of_device_id platform_of_match[] = {
> .compatible = "samsung,ltn101nt05",
> .data = &samsung_ltn101nt05,
> }, {
> + .compatible = "innolux,n156bge-l21",
> + .data = &innolux_n156bge_l21,
> + }, {

This patch should also be adding a device tree binding document for this
panel.

Thierry


Attachments:
(No filename) (1.86 kB)
(No filename) (836.00 B)
Download all attachments

2014-07-22 06:39:15

by Alban Bedel

[permalink] [raw]
Subject: [PATCH v2] drm/panel: add support for InnoLux N156BGE-L21 panel

This panel is used by the Medcom Wide and supported by the
simple-panel driver.

Signed-off-by: Alban Bedel <[email protected]>
---
v2: * Added the v/hsync pulses for correctness (the panel doesn't
really needs them)
* Fixed the size to report the physical size in mm
---
.../bindings/panel/innolux,n156bge-l21.txt | 7 ++++++
drivers/gpu/drm/panel/panel-simple.c | 25 ++++++++++++++++++++++
2 files changed, 32 insertions(+)
create mode 100644 Documentation/devicetree/bindings/panel/innolux,n156bge-l21.txt

diff --git a/Documentation/devicetree/bindings/panel/innolux,n156bge-l21.txt b/Documentation/devicetree/bindings/panel/innolux,n156bge-l21.txt
new file mode 100644
index 0000000..7825844
--- /dev/null
+++ b/Documentation/devicetree/bindings/panel/innolux,n156bge-l21.txt
@@ -0,0 +1,7 @@
+InnoLux 15.6" WXGA TFT LCD panel
+
+Required properties:
+- compatible: should be "innolux,n156bge-l21"
+
+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 a251361..ce9fffc 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -447,6 +447,28 @@ static const struct panel_desc samsung_ltn101nt05 = {
},
};

+static const struct drm_display_mode innolux_n156bge_l21_mode = {
+ .clock = 69300,
+ .hdisplay = 1366,
+ .hsync_start = 1366 + 16,
+ .hsync_end = 1366 + 16 + 34,
+ .htotal = 1366 + 16 + 34 + 50,
+ .vdisplay = 768,
+ .vsync_start = 768 + 2,
+ .vsync_end = 768 + 2 + 6,
+ .vtotal = 768 + 2 + 6 + 12,
+ .vrefresh = 60,
+};
+
+static const struct panel_desc innolux_n156bge_l21 = {
+ .modes = &innolux_n156bge_l21_mode,
+ .num_modes = 1,
+ .size = {
+ .width = 344,
+ .height = 193,
+ },
+};
+
static const struct of_device_id platform_of_match[] = {
{
.compatible = "auo,b101aw03",
@@ -476,6 +498,9 @@ static const struct of_device_id platform_of_match[] = {
.compatible = "samsung,ltn101nt05",
.data = &samsung_ltn101nt05,
}, {
+ .compatible = "innolux,n156bge-l21",
+ .data = &innolux_n156bge_l21,
+ }, {
.compatible = "simple-panel",
}, {
/* sentinel */
--
2.0.2

2014-07-22 08:15:23

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH v2] drm/panel: add support for InnoLux N156BGE-L21 panel

On Tue, Jul 22, 2014 at 08:38:55AM +0200, Alban Bedel wrote:
> This panel is used by the Medcom Wide and supported by the
> simple-panel driver.
>
> Signed-off-by: Alban Bedel <[email protected]>
> ---
> v2: * Added the v/hsync pulses for correctness (the panel doesn't
> really needs them)
> * Fixed the size to report the physical size in mm
> ---
> .../bindings/panel/innolux,n156bge-l21.txt | 7 ++++++
> drivers/gpu/drm/panel/panel-simple.c | 25 ++++++++++++++++++++++
> 2 files changed, 32 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/panel/innolux,n156bge-l21.txt

Applied, thanks.

I slightly reordered where the new panel was added, since they're sorted
alphabetically by vendor, then device.

Thierry


Attachments:
(No filename) (784.00 B)
(No filename) (819.00 B)
Download all attachments