Message ID | 35c081171a3d9a9401767601c02a12e266b37dd0.1400103181.git.stefan@agner.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, May 14, 2014 at 11:45:57PM +0200, stefan@agner.ch wrote: > From: Stefan Agner <stefan@agner.ch> > > This panels are sold by Toradex for Colibri T20/T30 and Apalis T30 > evaluation kits. > > Signed-off-by: Stefan Agner <stefan@agner.ch> Panel patches should go to the dri-devel mailing list as well. Also a patch was posted only yesterday for a panel that seems to be the exact same one as this, even though the name differs minimally, see: https://patchwork.kernel.org/patch/4175251/ Adding Philipp on Cc so you guys can work together whether this is indeed the same panel. The only differences seem to be in the vertical front and back porches, but I suspect that either settings will work on both Tegra and i.MX. Thierry
Hi Thierry, hi Philipp, Am 2014-05-15 09:51, schrieb Thierry Reding: > On Wed, May 14, 2014 at 11:45:57PM +0200, stefan@agner.ch wrote: >> From: Stefan Agner <stefan@agner.ch> >> >> This panels are sold by Toradex for Colibri T20/T30 and Apalis T30 >> evaluation kits. >> >> Signed-off-by: Stefan Agner <stefan@agner.ch> > > Panel patches should go to the dri-devel mailing list as well. > > Also a patch was posted only yesterday for a panel that seems to be the > exact same one as this, even though the name differs minimally, see: > > https://patchwork.kernel.org/patch/4175251/ > > Adding Philipp on Cc so you guys can work together whether this is > indeed the same panel. The only differences seem to be in the vertical > front and back porches, but I suspect that either settings will work on > both Tegra and i.MX. Its etm0700g0dh6 vs. et070080dh6, Philipp's panel is with captive multi touch, (hence the M I guess). The panel itself really looks the same. I found this overview of EDT displays: http://www.dmbtechnics.com/scripts/passthru.php?id=7 There seem to be quite a lot variants with the same panel... Regarding timings, I just checked the documentation, Philipp's timing really matches the documented ones, I miscalculated the vertical back porch. How do we resolve that? I would suggest that I split out that patch and remove the et070080dh6 panel and send the other as a single patch to the dri-devel mailing list as well. Philipp, could you add my display type (et070080dh6) to the compatible list of your mode/panel entry? Does this sound reasonable? -- Stefan
Am Donnerstag, den 15.05.2014, 09:51 +0200 schrieb Thierry Reding: > On Wed, May 14, 2014 at 11:45:57PM +0200, stefan@agner.ch wrote: > > From: Stefan Agner <stefan@agner.ch> > > > > This panels are sold by Toradex for Colibri T20/T30 and Apalis T30 > > evaluation kits. > > > > Signed-off-by: Stefan Agner <stefan@agner.ch> > > Panel patches should go to the dri-devel mailing list as well. > > Also a patch was posted only yesterday for a panel that seems to be the > exact same one as this, even though the name differs minimally, see: > > https://patchwork.kernel.org/patch/4175251/ > > Adding Philipp on Cc so you guys can work together whether this is > indeed the same panel. The only differences seem to be in the vertical > front and back porches, but I suspect that either settings will work on > both Tegra and i.MX. The ETM0700G0DH6 Datasheet lists 2 lines as the typical vsync pulse width, 525 lines as the vertical period, and 35 lines as the vsync -de time, which is vsync len + back porch. So vertical timings 480 + 10 + 2 + 33 = 525 should be valid for the ET0700G0DH6 panel: https://www.glynshop.com/erp/owweb/Daten/DSS/EDT/Products/Specifications/Active%20Displays/ET0700G0DH6.pdf et070080dh6 I have not seen the data sheet for ET070080DH6. regards Philipp
On Thu, May 15, 2014 at 10:27:29AM +0200, Philipp Zabel wrote: > Am Donnerstag, den 15.05.2014, 09:51 +0200 schrieb Thierry Reding: > > On Wed, May 14, 2014 at 11:45:57PM +0200, stefan@agner.ch wrote: > > > From: Stefan Agner <stefan@agner.ch> > > > > > > This panels are sold by Toradex for Colibri T20/T30 and Apalis T30 > > > evaluation kits. > > > > > > Signed-off-by: Stefan Agner <stefan@agner.ch> > > > > Panel patches should go to the dri-devel mailing list as well. > > > > Also a patch was posted only yesterday for a panel that seems to be the > > exact same one as this, even though the name differs minimally, see: > > > > https://patchwork.kernel.org/patch/4175251/ > > > > Adding Philipp on Cc so you guys can work together whether this is > > indeed the same panel. The only differences seem to be in the vertical > > front and back porches, but I suspect that either settings will work on > > both Tegra and i.MX. > > The ETM0700G0DH6 Datasheet lists 2 lines as the typical vsync pulse > width, 525 lines as the vertical period, and 35 lines as the vsync -de > time, which is vsync len + back porch. > So vertical timings 480 + 10 + 2 + 33 = 525 should be valid for the > ET0700G0DH6 panel: Shouldn't that work with 480 + 8 + 2 + 35 too? It seems to me that it should still be safe for that panel. Similarily I'd expect your timings to work on the ET070080DH6. Irrespective of that they both seem to have different capabilities so two compatible values should be fine. However for the purpose of the simple panel driver they could be made to share the same timings if it works for both panels and devices. As for the touch panel on the ETM0700G0DH6, do you happen to know how that's usually connected? I suspect it needs external hardware to capture the YU, XL, YD and XR pins and turn that into raw coordinates and pen down interrupts. Thierry
On Thu, May 15, 2014 at 10:24:39AM +0200, Stefan Agner wrote: > Hi Thierry, hi Philipp, > > Am 2014-05-15 09:51, schrieb Thierry Reding: > > On Wed, May 14, 2014 at 11:45:57PM +0200, stefan@agner.ch wrote: > >> From: Stefan Agner <stefan@agner.ch> > >> > >> This panels are sold by Toradex for Colibri T20/T30 and Apalis T30 > >> evaluation kits. > >> > >> Signed-off-by: Stefan Agner <stefan@agner.ch> > > > > Panel patches should go to the dri-devel mailing list as well. > > > > Also a patch was posted only yesterday for a panel that seems to be the > > exact same one as this, even though the name differs minimally, see: > > > > https://patchwork.kernel.org/patch/4175251/ > > > > Adding Philipp on Cc so you guys can work together whether this is > > indeed the same panel. The only differences seem to be in the vertical > > front and back porches, but I suspect that either settings will work on > > both Tegra and i.MX. > > Its etm0700g0dh6 vs. et070080dh6, Philipp's panel is with captive multi > touch, (hence the M I guess). The panel itself really looks the same. > > I found this overview of EDT displays: > http://www.dmbtechnics.com/scripts/passthru.php?id=7 > > There seem to be quite a lot variants with the same panel... > > Regarding timings, I just checked the documentation, Philipp's timing > really matches the documented ones, I miscalculated the vertical back > porch. Okay, so that means that the panel works for you with the same timings that Philipp has in the ETM0700G0DH6 patch? If so then I definitely think we should be sharing the timings in the driver by making the two compatible entries point to the same driver data. > How do we resolve that? > > I would suggest that I split out that patch and remove the et070080dh6 > panel and send the other as a single patch to the dri-devel mailing list > as well. Yes, that would work. > Philipp, could you add my display type (et070080dh6) to the compatible > list of your mode/panel entry? I also noticed that Philipp's patch doesn't actually introduce the device tree bindings, so that will have to be added as well. Thierry
Am Donnerstag, den 15.05.2014, 11:08 +0200 schrieb Thierry Reding: > On Thu, May 15, 2014 at 10:27:29AM +0200, Philipp Zabel wrote: > > Am Donnerstag, den 15.05.2014, 09:51 +0200 schrieb Thierry Reding: > > > On Wed, May 14, 2014 at 11:45:57PM +0200, stefan@agner.ch wrote: > > > > From: Stefan Agner <stefan@agner.ch> > > > > > > > > This panels are sold by Toradex for Colibri T20/T30 and Apalis T30 > > > > evaluation kits. > > > > > > > > Signed-off-by: Stefan Agner <stefan@agner.ch> > > > > > > Panel patches should go to the dri-devel mailing list as well. > > > > > > Also a patch was posted only yesterday for a panel that seems to be the > > > exact same one as this, even though the name differs minimally, see: > > > > > > https://patchwork.kernel.org/patch/4175251/ > > > > > > Adding Philipp on Cc so you guys can work together whether this is > > > indeed the same panel. The only differences seem to be in the vertical > > > front and back porches, but I suspect that either settings will work on > > > both Tegra and i.MX. > > > > The ETM0700G0DH6 Datasheet lists 2 lines as the typical vsync pulse > > width, 525 lines as the vertical period, and 35 lines as the vsync -de > > time, which is vsync len + back porch. > > So vertical timings 480 + 10 + 2 + 33 = 525 should be valid for the > > ET0700G0DH6 panel: > > Shouldn't that work with 480 + 8 + 2 + 35 too? It seems to me that it > should still be safe for that panel. Similarily I'd expect your timings > to work on the ET070080DH6. > > Irrespective of that they both seem to have different capabilities so > two compatible values should be fine. However for the purpose of the > simple panel driver they could be made to share the same timings if it > works for both panels and devices. Yes. As I understand, the 480 + 10 + 2 + 33 timing should be correct for both panels. > As for the touch panel on the ETM0700G0DH6, do you happen to know how > that's usually connected? I suspect it needs external hardware to > capture the YU, XL, YD and XR pins and turn that into raw coordinates > and pen down interrupts. The ETM0700G0DH6 has a capacitive touch screen with an EDT-FT5406 controller connected via I2C, at least on the panels that I have seen. regards Philipp
Am Donnerstag, den 15.05.2014, 11:12 +0200 schrieb Thierry Reding: > On Thu, May 15, 2014 at 10:24:39AM +0200, Stefan Agner wrote: > > Hi Thierry, hi Philipp, > > > > Am 2014-05-15 09:51, schrieb Thierry Reding: > > > On Wed, May 14, 2014 at 11:45:57PM +0200, stefan@agner.ch wrote: > > >> From: Stefan Agner <stefan@agner.ch> > > >> > > >> This panels are sold by Toradex for Colibri T20/T30 and Apalis T30 > > >> evaluation kits. > > >> > > >> Signed-off-by: Stefan Agner <stefan@agner.ch> > > > > > > Panel patches should go to the dri-devel mailing list as well. > > > > > > Also a patch was posted only yesterday for a panel that seems to be the > > > exact same one as this, even though the name differs minimally, see: > > > > > > https://patchwork.kernel.org/patch/4175251/ > > > > > > Adding Philipp on Cc so you guys can work together whether this is > > > indeed the same panel. The only differences seem to be in the vertical > > > front and back porches, but I suspect that either settings will work on > > > both Tegra and i.MX. > > > > Its etm0700g0dh6 vs. et070080dh6, Philipp's panel is with captive multi > > touch, (hence the M I guess). The panel itself really looks the same. > > > > I found this overview of EDT displays: > > http://www.dmbtechnics.com/scripts/passthru.php?id=7 > > > > There seem to be quite a lot variants with the same panel... > > > > Regarding timings, I just checked the documentation, Philipp's timing > > really matches the documented ones, I miscalculated the vertical back > > porch. > > Okay, so that means that the panel works for you with the same timings > that Philipp has in the ETM0700G0DH6 patch? If so then I definitely > think we should be sharing the timings in the driver by making the two > compatible entries point to the same driver data. > > > How do we resolve that? > > > > I would suggest that I split out that patch and remove the et070080dh6 > > panel and send the other as a single patch to the dri-devel mailing list > > as well. > > Yes, that would work. > > > Philipp, could you add my display type (et070080dh6) to the compatible > > list of your mode/panel entry? > > I also noticed that Philipp's patch doesn't actually introduce the > device tree bindings, so that will have to be added as well. Hmm, yes. Should I take over the edt,et070080dh6.txt from Stefan's series and repost all, or can I just hand in the missing edt,etm0700g0dh6.txt separately? regards Philipp
Am 2014-05-15 11:08, schrieb Thierry Reding: > On Thu, May 15, 2014 at 10:27:29AM +0200, Philipp Zabel wrote: >> The ETM0700G0DH6 Datasheet lists 2 lines as the typical vsync pulse >> width, 525 lines as the vertical period, and 35 lines as the vsync -de >> time, which is vsync len + back porch. >> So vertical timings 480 + 10 + 2 + 33 = 525 should be valid for the >> ET0700G0DH6 panel: > > Shouldn't that work with 480 + 8 + 2 + 35 too? It seems to me that it > should still be safe for that panel. Similarily I'd expect your timings > to work on the ET070080DH6. Am 2014-05-15 11:12, schrieb Thierry Reding: > Okay, so that means that the panel works for you with the same timings > that Philipp has in the ETM0700G0DH6 patch? If so then I definitely > think we should be sharing the timings in the driver by making the two > compatible entries point to the same driver data. FWIW, I checked and it works with both timings. And I bet it is really the same panel its just a different touch on top. > Irrespective of that they both seem to have different capabilities so > two compatible values should be fine. However for the purpose of the > simple panel driver they could be made to share the same timings if it > works for both panels and devices. > > As for the touch panel on the ETM0700G0DH6, do you happen to know how > that's usually connected? I suspect it needs external hardware to > capture the YU, XL, YD and XR pins and turn that into raw coordinates > and pen down interrupts. For Colibri Evaluation Board, those pins are routed to the generic 4-wire pins of the Colibri SO-DIMM. On the Colibri T30 module, those pins are connected to a STMPE811. I also added that to the device tree once, however it does not work properly atm, I need to debug this and will send a patch at a later time. -- Stefan
Am 2014-05-15 11:35, schrieb Philipp Zabel: > Am Donnerstag, den 15.05.2014, 11:12 +0200 schrieb Thierry Reding: <snip> >> I also noticed that Philipp's patch doesn't actually introduce the >> device tree bindings, so that will have to be added as well. > > Hmm, yes. Should I take over the edt,et070080dh6.txt from Stefan's > series and repost all, or can I just hand in the missing > edt,etm0700g0dh6.txt separately? Just sent a revision of my patch which doesn't contain that text file anymore, hence for me it would be preferable if you can add both files... -- Stefan
diff --git a/Documentation/devicetree/bindings/panel/edt,et057090dhu.txt b/Documentation/devicetree/bindings/panel/edt,et057090dhu.txt new file mode 100644 index 0000000..4903d7b --- /dev/null +++ b/Documentation/devicetree/bindings/panel/edt,et057090dhu.txt @@ -0,0 +1,7 @@ +Emerging Display Technology Corp. 5.7" VGA TFT LCD panel + +Required properties: +- compatible: should be "edt,et057090dhu" + +This binding is compatible with the simple-panel binding, which is specified +in simple-panel.txt in this directory. diff --git a/Documentation/devicetree/bindings/panel/edt,et070080dh6.txt b/Documentation/devicetree/bindings/panel/edt,et070080dh6.txt new file mode 100644 index 0000000..64986b1 --- /dev/null +++ b/Documentation/devicetree/bindings/panel/edt,et070080dh6.txt @@ -0,0 +1,7 @@ +Emerging Display Technology Corp. 7.0" WVGA TFT LCD panel + +Required properties: +- compatible: should be "edt,et070080dh6" + +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 309f29e..7e4103f 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -306,6 +306,52 @@ static const struct panel_desc chunghwa_claa101wa01a = { }, }; +static const struct drm_display_mode edt_et057090dhu_mode = { + .clock = 25175, + .hdisplay = 640, + .hsync_start = 640 + 16, + .hsync_end = 640 + 16 + 30, + .htotal = 640 + 16 + 30 + 114, + .vdisplay = 480, + .vsync_start = 480 + 10, + .vsync_end = 480 + 10 + 3, + .vtotal = 480 + 10 + 3 + 32, + .vrefresh = 60, + .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, +}; + +static const struct panel_desc edt_et057090dhu = { + .modes = &edt_et057090dhu_mode, + .num_modes = 1, + .size = { + .width = 115, + .height = 86, + }, +}; + +static const struct drm_display_mode edt_et070080dh6_mode = { + .clock = 33260, + .hdisplay = 800, + .hsync_start = 800 + 40, + .hsync_end = 800 + 40 + 128, + .htotal = 800 + 40 + 128 + 88, + .vdisplay = 480, + .vsync_start = 480 + 8, + .vsync_end = 480 + 8 + 2, + .vtotal = 480 + 8 + 2 + 35, + .vrefresh = 60, + .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, +}; + +static const struct panel_desc edt_et070080dh6 = { + .modes = &edt_et070080dh6_mode, + .num_modes = 1, + .size = { + .width = 152, + .height = 91, + }, +}; + static const struct drm_display_mode chunghwa_claa101wb01_mode = { .clock = 69300, .hdisplay = 1366, @@ -383,6 +429,12 @@ static const struct of_device_id platform_of_match[] = { .compatible = "chunghwa,claa101wb01", .data = &chunghwa_claa101wb01 }, { + .compatible = "edt,et057090dhu", + .data = &edt_et057090dhu, + }, { + .compatible = "edt,et070080dh6", + .data = &edt_et070080dh6, + }, { .compatible = "lg,lp129qe", .data = &lg_lp129qe, }, {