From: Sam Ravnborg sam@ravnborg.org
The Multi Innotechnology is a 10.1" 1280x800 panel.
The datasheet did not specify specific values for sync, back, front porch. The values are a best guess based on values for similar panels.
Co-Developed-by: Sam Ravnborg sam@ravnborg.org Co-Developed-by: Ulrich Ölmann u.oelmann@pengutronix.de Signed-off-by: Sam Ravnborg sam@ravnborg.org Signed-off-by: Ulrich Ölmann u.oelmann@pengutronix.de Signed-off-by: Oleksij Rempel o.rempel@pengutronix.de --- drivers/gpu/drm/panel/panel-simple.c | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 21939d4352cf..fda79a986d12 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -3033,6 +3033,37 @@ static const struct panel_desc mitsubishi_aa070mc01 = { .bus_flags = DRM_BUS_FLAG_DE_HIGH, };
+static const struct display_timing multi_inno_mi1010ait_1cp_timing = { + .pixelclock = { 68900000, 70000000, 73400000 }, + .hactive = { 1280, 1280, 1280 }, + .hfront_porch = { 30, 60, 71 }, + .hback_porch = { 30, 60, 71 }, + .hsync_len = { 10, 10, 48 }, + .vactive = { 800, 800, 800 }, + .vfront_porch = { 5, 10, 10 }, + .vback_porch = { 5, 10, 10 }, + .vsync_len = { 5, 6, 13 }, + .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW | + DISPLAY_FLAGS_DE_HIGH, +}; + +static const struct panel_desc multi_inno_mi1010ait_1cp = { + .timings = &multi_inno_mi1010ait_1cp_timing, + .num_timings = 1, + .bpc = 8, + .size = { + .width = 217, + .height = 136, + }, + .delay = { + .enable = 50, + .disable = 50, + }, + .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .bus_flags = DRM_BUS_FLAG_DE_HIGH, + .connector_type = DRM_MODE_CONNECTOR_LVDS, +}; + static const struct display_timing nec_nl12880bc20_05_timing = { .pixelclock = { 67000000, 71000000, 75000000 }, .hactive = { 1280, 1280, 1280 }, @@ -4464,6 +4495,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "mitsubishi,aa070mc01-ca1", .data = &mitsubishi_aa070mc01, + }, { + .compatible = "multi-inno,mi1010ait-1cp", + .data = &multi_inno_mi1010ait_1cp, }, { .compatible = "nec,nl12880bc20-05", .data = &nec_nl12880bc20_05,
From: Søren Andersen san@skov.dk
Add support for the LOGIC Technologies, Inc LTTD800480070-L6WH-RT
Co-Developed-by: Søren Andersen san@skov.dk Co-Developed-by: Sam Ravnborg sam@ravnborg.org Signed-off-by: Søren Andersen san@skov.dk Signed-off-by: Sam Ravnborg sam@ravnborg.org Signed-off-by: Oleksij Rempel o.rempel@pengutronix.de --- drivers/gpu/drm/panel/panel-simple.c | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index fda79a986d12..e5213a610ae9 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -2967,6 +2967,37 @@ static const struct panel_desc logictechno_lt170410_2whc = { .connector_type = DRM_MODE_CONNECTOR_LVDS, };
+static const struct drm_display_mode logictechno_lttd800480070_l6wh_rt_mode = { + .clock = 33000, + .hdisplay = 800, + .hsync_start = 800 + 154, + .hsync_end = 800 + 154 + 3, + .htotal = 800 + 154 + 3 + 43, + .vdisplay = 480, + .vsync_start = 480 + 47, + .vsync_end = 480 + 47 + 3, + .vtotal = 480 + 47 + 3 + 20, + .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, +}; + +static const struct panel_desc logictechno_lttd800480070_l6wh_rt = { + .modes = &logictechno_lttd800480070_l6wh_rt_mode, + .num_modes = 1, + .bpc = 8, + .size = { + .width = 154, + .height = 86, + }, + .delay = { + .prepare = 45, + .enable = 100, + .disable = 100, + .unprepare = 45 + }, + .bus_format = MEDIA_BUS_FMT_RGB888_1X24, + .bus_flags = DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE, +}; + static const struct drm_display_mode mitsubishi_aa070mc01_mode = { .clock = 30400, .hdisplay = 800, @@ -4492,6 +4523,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "logictechno,lt170410-2whc", .data = &logictechno_lt170410_2whc, + }, { + .compatible = "logictechno,lttd800480070-l6wh-rt", + .data = &logictechno_lttd800480070_l6wh_rt, }, { .compatible = "mitsubishi,aa070mc01-ca1", .data = &mitsubishi_aa070mc01,
Hello Oleksi,
On 05.08.21 06:37, Oleksij Rempel wrote:
From: Søren Andersen san@skov.dk
Add support for the LOGIC Technologies, Inc LTTD800480070-L6WH-RT
Co-Developed-by: Søren Andersen san@skov.dk Co-Developed-by: Sam Ravnborg sam@ravnborg.org Signed-off-by: Søren Andersen san@skov.dk Signed-off-by: Sam Ravnborg sam@ravnborg.org Signed-off-by: Oleksij Rempel o.rempel@pengutronix.de
drivers/gpu/drm/panel/panel-simple.c | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index fda79a986d12..e5213a610ae9 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -2967,6 +2967,37 @@ static const struct panel_desc logictechno_lt170410_2whc = { .connector_type = DRM_MODE_CONNECTOR_LVDS, };
+static const struct drm_display_mode logictechno_lttd800480070_l6wh_rt_mode = {
- .clock = 33000,
- .hdisplay = 800,
- .hsync_start = 800 + 154,
- .hsync_end = 800 + 154 + 3,
- .htotal = 800 + 154 + 3 + 43,
- .vdisplay = 480,
- .vsync_start = 480 + 47,
- .vsync_end = 480 + 47 + 3,
- .vtotal = 480 + 47 + 3 + 20,
- .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
+};
+static const struct panel_desc logictechno_lttd800480070_l6wh_rt = {
- .modes = &logictechno_lttd800480070_l6wh_rt_mode,
- .num_modes = 1,
- .bpc = 8,
- .size = {
.width = 154,
.height = 86,
- },
- .delay = {
.prepare = 45,
.enable = 100,
.disable = 100,
.unprepare = 45
- },
- .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
- .bus_flags = DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
This lacks a .connector_type. I think recent kernels warn about that?
Cheers, Ahmad
+};
static const struct drm_display_mode mitsubishi_aa070mc01_mode = { .clock = 30400, .hdisplay = 800, @@ -4492,6 +4523,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "logictechno,lt170410-2whc", .data = &logictechno_lt170410_2whc,
- }, {
.compatible = "logictechno,lttd800480070-l6wh-rt",
}, { .compatible = "mitsubishi,aa070mc01-ca1", .data = &mitsubishi_aa070mc01,.data = &logictechno_lttd800480070_l6wh_rt,
Hello Oleksij,
On 05.08.21 06:37, Oleksij Rempel wrote:
From: Sam Ravnborg sam@ravnborg.org
The Multi Innotechnology is a 10.1" 1280x800 panel.
The datasheet did not specify specific values for sync, back, front porch. The values are a best guess based on values for similar panels.
Co-Developed-by: Sam Ravnborg sam@ravnborg.org Co-Developed-by: Ulrich Ölmann u.oelmann@pengutronix.de Signed-off-by: Sam Ravnborg sam@ravnborg.org Signed-off-by: Ulrich Ölmann u.oelmann@pengutronix.de Signed-off-by: Oleksij Rempel o.rempel@pengutronix.de
drivers/gpu/drm/panel/panel-simple.c | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 21939d4352cf..fda79a986d12 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -3033,6 +3033,37 @@ static const struct panel_desc mitsubishi_aa070mc01 = { .bus_flags = DRM_BUS_FLAG_DE_HIGH, };
+static const struct display_timing multi_inno_mi1010ait_1cp_timing = {
- .pixelclock = { 68900000, 70000000, 73400000 },
- .hactive = { 1280, 1280, 1280 },
- .hfront_porch = { 30, 60, 71 },
- .hback_porch = { 30, 60, 71 },
- .hsync_len = { 10, 10, 48 },
- .vactive = { 800, 800, 800 },
- .vfront_porch = { 5, 10, 10 },
- .vback_porch = { 5, 10, 10 },
- .vsync_len = { 5, 6, 13 },
- .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
DISPLAY_FLAGS_DE_HIGH,
+};
Here you specify DISPLAY_FLAGS_DE_HIGH.
+static const struct panel_desc multi_inno_mi1010ait_1cp = {
- .timings = &multi_inno_mi1010ait_1cp_timing,
- .num_timings = 1,
- .bpc = 8,
- .size = {
.width = 217,
.height = 136,
- },
- .delay = {
.enable = 50,
.disable = 50,
- },
- .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
- .bus_flags = DRM_BUS_FLAG_DE_HIGH,
And here DRM_BUS_FLAG_DE_HIGH. I see that some other panels do this too and some only specify one of them. Do you know if they are redundant or one of them is ignored?
Cheers, Ahmad
- .connector_type = DRM_MODE_CONNECTOR_LVDS,
+};
static const struct display_timing nec_nl12880bc20_05_timing = { .pixelclock = { 67000000, 71000000, 75000000 }, .hactive = { 1280, 1280, 1280 }, @@ -4464,6 +4495,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "mitsubishi,aa070mc01-ca1", .data = &mitsubishi_aa070mc01,
- }, {
.compatible = "multi-inno,mi1010ait-1cp",
}, { .compatible = "nec,nl12880bc20-05", .data = &nec_nl12880bc20_05,.data = &multi_inno_mi1010ait_1cp,
On Thu, Aug 05, 2021 at 07:52:24AM +0200, Ahmad Fatoum wrote:
Hello Oleksij,
On 05.08.21 06:37, Oleksij Rempel wrote:
From: Sam Ravnborg sam@ravnborg.org
The Multi Innotechnology is a 10.1" 1280x800 panel.
The datasheet did not specify specific values for sync, back, front porch. The values are a best guess based on values for similar panels.
Co-Developed-by: Sam Ravnborg sam@ravnborg.org Co-Developed-by: Ulrich Ölmann u.oelmann@pengutronix.de Signed-off-by: Sam Ravnborg sam@ravnborg.org Signed-off-by: Ulrich Ölmann u.oelmann@pengutronix.de Signed-off-by: Oleksij Rempel o.rempel@pengutronix.de
drivers/gpu/drm/panel/panel-simple.c | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 21939d4352cf..fda79a986d12 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -3033,6 +3033,37 @@ static const struct panel_desc mitsubishi_aa070mc01 = { .bus_flags = DRM_BUS_FLAG_DE_HIGH, };
+static const struct display_timing multi_inno_mi1010ait_1cp_timing = {
- .pixelclock = { 68900000, 70000000, 73400000 },
- .hactive = { 1280, 1280, 1280 },
- .hfront_porch = { 30, 60, 71 },
- .hback_porch = { 30, 60, 71 },
- .hsync_len = { 10, 10, 48 },
- .vactive = { 800, 800, 800 },
- .vfront_porch = { 5, 10, 10 },
- .vback_porch = { 5, 10, 10 },
- .vsync_len = { 5, 6, 13 },
- .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
DISPLAY_FLAGS_DE_HIGH,
+};
Here you specify DISPLAY_FLAGS_DE_HIGH.
+static const struct panel_desc multi_inno_mi1010ait_1cp = {
- .timings = &multi_inno_mi1010ait_1cp_timing,
- .num_timings = 1,
- .bpc = 8,
- .size = {
.width = 217,
.height = 136,
- },
- .delay = {
.enable = 50,
.disable = 50,
- },
- .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
- .bus_flags = DRM_BUS_FLAG_DE_HIGH,
And here DRM_BUS_FLAG_DE_HIGH. I see that some other panels do this too and some only specify one of them. Do you know if they are redundant or one of them is ignored?
Hmm... there is a drm_bus_flags_from_videomode(): if (vm->flags & DISPLAY_FLAGS_DE_HIGH) *bus_flags |= DRM_BUS_FLAG_DE_HIGH;
It looks like for DPI panel it would be set automatically. This function is not execute in case of LVDS panel.
Regards, Oleksij
dri-devel@lists.freedesktop.org