linux-renesas-soc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/13] R-Car DU: Add support for LVDS mode selection
@ 2016-11-19  3:28 Laurent Pinchart
  2016-11-19  3:28 ` [PATCH v2 01/13] devicetree/bindings: display: Document common panel properties Laurent Pinchart
                   ` (12 more replies)
  0 siblings, 13 replies; 57+ messages in thread
From: Laurent Pinchart @ 2016-11-19  3:28 UTC (permalink / raw)
  To: dri-devel; +Cc: linux-renesas-soc, Tomi Valkeinen, devicetree

Hello,

This patch series adds support for LVDS mode selection in the R-Car DU driver.

Compared to v1, the LVDS panel DT bindings (02/13) have been reworked to
document common panel properties in a common file (01/13), with Mitsubishi
panels bindings now properly documented (03/13). Compared to the existing DPI
panel bindings that are currently abused by the R-Car DU driver for LVDS
panel, these new bindings specify the LVDS more explicitly.

The bindings are based on the relevant standards I have been able to find, as
well as on existing LVDS-related code and DT bindings available in the
mainline kernel. Those include

- the LVDS formats MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
  MEDIA_BUS_FMT_RGB888_1X7X4_SPWG and MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA
  (Documentation/media/uapi/v4l/subdev-formats.rst)
- iMX display DT bindings available in
  (Documentation/devicetree/bindings/display/imx/ldb.txt)
- the drivers/gpu/drm/imx/ driver

In addition to the three modes specified in the LVDS panel DT bindings, the
Renesas R-Car DU also supports the following two modes.

Slot       0       1       2       3       4       5       6
       ________________                         _________________
Clock                  \_______________________/
         ______  ______  ______  ______  ______  ______  ______
DATA0  ><_CTL0_><__R7__><__R6__><__R5__><__R4__><__R3__><__R2__><
DATA1  ><_CTL1_><__G7__><__G6__><__G5__><__G4__><__G3__><__G2__><
DATA2  ><_CTL2_><__B7__><__B6__><__B5__><__B4__><__B3__><__B2__><
DATA3  ><_CTL3_><__B1__><__B0__><__G1__><__G0__><__R1__><__R0__><
         ______  ______  ______  ______  ______  ______  ______
DATA0  ><_CTL0_><__R5__><__R4__><__R3__><__R2__><__R1__><__R0__><
DATA1  ><_CTL1_><__G5__><__G4__><__G3__><__G2__><__G1__><__G0__><
DATA2  ><_CTL2_><__B5__><__B4__><__B3__><__B2__><__B1__><__B0__><
DATA3  ><_CTL3_><__B7__><__B6__><__G7__><__G6__><__R7__><__R6__><

and their mirrored version.

I haven't been able to find any standard defining those data mappings, nor any
panel using them. The control signals positions correspond to DC-balanced LVDS
(see figure 18 on page 19 of http://www.ti.com/lit/ds/symlink/ds90cf388.pdf),
but the R-Car DU doesn't support DC-balanced LVDS as far as I can tell, so
it's not a match. If anyone knows of other devices supporting these data
mappings or of standards defining them I would appreciate the information and
will update the bindings accordingly.

Patches 04/13 to 06/13 add a new DRM panel driver for LVDS panels compatible
with the DT bindings. Patches 07/13 to 09/13 update the device tree of the
R-Car H3 Salvator-X board to add panel backlight support, and patch 10/13
switches two Mitsubishi panels to use the new bindings. This series doesn't
strictly depend on them so they can be merged separately at a later point if
needed.

Patches 11/13 to 13/13 finally move the R-Car DU driver to use the DRM panel
API, and add support for LVDS mode selection.

Laurent Pinchart (13):
  devicetree/bindings: display: Document common panel properties
  devicetree/bindings: display: Add bindings for LVDS panels
  devicetree/bindings: display: Add bindings for two Mitsubishi panels
  drm: Add data mirror bus flag
  drm: panels: Constify device node argument to of_drm_find_panel()
  drm: panels: Add LVDS panel driver
  arm64: dts: r8a7795: Add PWM support
  arm64: dts: r8a7795: salvator-x: Add DU LVDS output endpoint
  arm64: dts: r8a7795: salvator-x: Add panel backlight support
  ARM: shmobile: dts: Switch to panel-lvds bindings for Mitsubishi
    panels
  drm: rcar-du: Switch to encoder .atomic_mode_set() helper function
  drm: rcar-du: Use the DRM panel API
  drm: rcar-du: Add support for LVDS mode selection

 .../display/panel/mitsubishi,aa104xd12.txt         |  47 ++++
 .../display/panel/mitsubishi,aa121td01.txt         |  47 ++++
 .../bindings/display/panel/panel-common.txt        |  91 +++++++
 .../bindings/display/panel/panel-lvds.txt          | 120 +++++++++
 arch/arm/boot/dts/r8a77xx-aa104xd12-panel.dtsi     |   3 +-
 arch/arm/boot/dts/r8a77xx-aa121td01-panel.dtsi     |   3 +-
 arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts |  26 ++
 arch/arm64/boot/dts/renesas/r8a7795.dtsi           |  63 +++++
 drivers/gpu/drm/drm_panel.c                        |   2 +-
 drivers/gpu/drm/panel/Kconfig                      |  10 +
 drivers/gpu/drm/panel/Makefile                     |   1 +
 drivers/gpu/drm/panel/panel-lvds.c                 | 284 +++++++++++++++++++++
 drivers/gpu/drm/rcar-du/Kconfig                    |   1 +
 drivers/gpu/drm/rcar-du/rcar_du_encoder.c          |  50 +++-
 drivers/gpu/drm/rcar-du/rcar_du_encoder.h          |   3 +
 drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c          |   8 +-
 drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c          |  68 ++---
 drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.c          |  11 +-
 drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.h          |  13 +
 include/drm/drm_connector.h                        |   2 +
 include/drm/drm_panel.h                            |   4 +-
 21 files changed, 798 insertions(+), 59 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/display/panel/mitsubishi,aa104xd12.txt
 create mode 100644 Documentation/devicetree/bindings/display/panel/mitsubishi,aa121td01.txt
 create mode 100644 Documentation/devicetree/bindings/display/panel/panel-common.txt
 create mode 100644 Documentation/devicetree/bindings/display/panel/panel-lvds.txt
 create mode 100644 drivers/gpu/drm/panel/panel-lvds.c

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 57+ messages in thread

end of thread, other threads:[~2017-04-11  5:11 UTC | newest]

Thread overview: 57+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-19  3:28 [PATCH v2 00/13] R-Car DU: Add support for LVDS mode selection Laurent Pinchart
2016-11-19  3:28 ` [PATCH v2 01/13] devicetree/bindings: display: Document common panel properties Laurent Pinchart
2016-11-21 16:48   ` Rob Herring
2016-11-22  9:36     ` Laurent Pinchart
2016-11-29  8:27       ` Laurent Pinchart
2016-11-29 15:14         ` Rob Herring
2016-11-29 18:23           ` Laurent Pinchart
2016-12-18 20:54             ` Laurent Pinchart
2016-12-19 15:38               ` Rob Herring
2016-12-19 16:54                 ` Laurent Pinchart
2017-01-03 22:33                   ` Rob Herring
2016-11-22 11:05   ` Thierry Reding
2016-11-22 13:14     ` Laurent Pinchart
2016-11-22 21:10     ` Rob Herring
2017-04-09 11:47   ` Emil Velikov
2017-04-11  5:12     ` Laurent Pinchart
2016-11-19  3:28 ` [PATCH v2 02/13] devicetree/bindings: display: Add bindings for LVDS panels Laurent Pinchart
2016-11-21 16:48   ` Rob Herring
2016-11-22 11:02   ` Thierry Reding
2016-11-22 13:21     ` Laurent Pinchart
2016-11-19  3:28 ` [PATCH v2 03/13] devicetree/bindings: display: Add bindings for two Mitsubishi panels Laurent Pinchart
2016-11-21 16:49   ` Rob Herring
2016-11-19  3:28 ` [PATCH v2 04/13] drm: Add data mirror bus flag Laurent Pinchart
2016-12-18 20:31   ` Laurent Pinchart
2016-12-20 13:01     ` Stefan Agner
2016-12-20 13:21       ` Laurent Pinchart
2016-12-20 13:31         ` Stefan Agner
2017-01-04  0:39           ` [PATCH v2.1 04/13] drm: Add data transmission order " Laurent Pinchart
2017-01-04  7:06             ` Thierry Reding
2017-01-04 11:58               ` Laurent Pinchart
2016-11-19  3:28 ` [PATCH v2 05/13] drm: panels: Constify device node argument to of_drm_find_panel() Laurent Pinchart
2016-12-18 20:57   ` Laurent Pinchart
2017-01-04  7:09   ` Thierry Reding
2016-11-19  3:28 ` [PATCH v2 06/13] drm: panels: Add LVDS panel driver Laurent Pinchart
2016-11-22 11:14   ` Thierry Reding
2016-11-22 13:17     ` Laurent Pinchart
2017-01-11 22:46       ` Laurent Pinchart
2016-11-19  3:28 ` [PATCH v2 07/13] arm64: dts: r8a7795: Add PWM support Laurent Pinchart
2016-11-21  8:27   ` Geert Uytterhoeven
2016-11-21  9:18     ` Laurent Pinchart
2017-01-04  1:06       ` Laurent Pinchart
2017-01-04  9:01         ` Simon Horman
2016-11-19  3:28 ` [PATCH v2 08/13] arm64: dts: r8a7795: salvator-x: Add DU LVDS output endpoint Laurent Pinchart
2017-01-04  1:07   ` Laurent Pinchart
2017-01-04  9:08     ` Simon Horman
2016-11-19  3:28 ` [PATCH v2 09/13] arm64: dts: r8a7795: salvator-x: Add panel backlight support Laurent Pinchart
2016-11-21  8:36   ` Geert Uytterhoeven
2016-11-21  9:19     ` Laurent Pinchart
2016-11-21  9:23       ` Geert Uytterhoeven
2016-11-21  9:59         ` Laurent Pinchart
2017-04-05  8:45           ` Laurent Pinchart
2017-04-05  8:55             ` Geert Uytterhoeven
2017-04-05 18:21               ` Simon Horman
2016-11-19  3:28 ` [PATCH v2 10/13] ARM: shmobile: dts: Switch to panel-lvds bindings for Mitsubishi panels Laurent Pinchart
2016-11-19  3:28 ` [PATCH v2 11/13] drm: rcar-du: Switch to encoder .atomic_mode_set() helper function Laurent Pinchart
2016-11-19  3:28 ` [PATCH v2 12/13] drm: rcar-du: Use the DRM panel API Laurent Pinchart
2016-11-19  3:28 ` [PATCH v2 13/13] drm: rcar-du: Add support for LVDS mode selection Laurent Pinchart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).