drm: rcar-du: Add R8A7796 support
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Mon, 5 Sep 2016 23:11:43 +0000 (02:11 +0300)
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Mon, 14 Nov 2016 23:44:48 +0000 (01:44 +0200)
Document the R8A7796-specific DT bindings and support them in the
driver. The HDMI output is currently not supported.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Documentation/devicetree/bindings/display/renesas,du.txt
drivers/gpu/drm/rcar-du/rcar_du_drv.c

index 13535b2a17065ddf9790b981b821ab29ed7a7130..1a02f099a0ff0a3ac459c752ea8031ef8d88b9f0 100644 (file)
@@ -10,6 +10,7 @@ Required Properties:
     - "renesas,du-r8a7793" for R8A7793 (R-Car M2-N) compatible DU
     - "renesas,du-r8a7794" for R8A7794 (R-Car E2) compatible DU
     - "renesas,du-r8a7795" for R8A7795 (R-Car H3) compatible DU
+    - "renesas,du-r8a7796" for R8A7796 (R-Car M3-W) compatible DU
 
   - reg: A list of base address and length of each memory resource, one for
     each entry in the reg-names property.
@@ -26,10 +27,10 @@ Required Properties:
   - clock-names: Name of the clocks. This property is model-dependent.
     - R8A7779 uses a single functional clock. The clock doesn't need to be
       named.
-    - R8A779[012345] use one functional clock per channel and one clock per LVDS
-      encoder (if available). The functional clocks must be named "du.x" with
-      "x" being the channel numerical index. The LVDS clocks must be named
-      "lvds.x" with "x" being the LVDS encoder numerical index.
+    - R8A779[0123456] use one functional clock per channel and one clock per
+      LVDS encoder (if available). The functional clocks must be named "du.x"
+      with "x" being the channel numerical index. The LVDS clocks must be
+      named "lvds.x" with "x" being the LVDS encoder numerical index.
     - In addition to the functional and encoder clocks, all DU versions also
       support externally supplied pixel clocks. Those clocks are optional.
       When supplied they must be named "dclkin.x" with "x" being the input
@@ -52,6 +53,7 @@ corresponding to each DU output.
  R8A7793 (M2-N)        DPAD            LVDS 0          -               -
  R8A7794 (E2)  DPAD 0          DPAD 1          -               -
  R8A7795 (H3)  DPAD            HDMI 0          HDMI 1          LVDS
+ R8A7796 (M3-W)        DPAD            HDMI            LVDS            -
 
 
 Example: R8A7790 (R-Car H2) DU
index 0f62b6499c9fd0260858f6c56165d8b2ee75c5e6..6fe8b3abd08c9239705c3b90dfef2a9a64d142b6 100644 (file)
@@ -178,6 +178,30 @@ static const struct rcar_du_device_info rcar_du_r8a7795_info = {
        .num_lvds = 1,
 };
 
+static const struct rcar_du_device_info rcar_du_r8a7796_info = {
+       .gen = 3,
+       .features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK
+                 | RCAR_DU_FEATURE_EXT_CTRL_REGS
+                 | RCAR_DU_FEATURE_VSP1_SOURCE,
+       .num_crtcs = 3,
+       .routes = {
+               /* R8A7796 has one RGB output, one LVDS output and one
+                * (currently unsupported) HDMI output.
+                */
+               [RCAR_DU_OUTPUT_DPAD0] = {
+                       .possible_crtcs = BIT(2),
+                       .encoder_type = DRM_MODE_ENCODER_NONE,
+                       .port = 0,
+               },
+               [RCAR_DU_OUTPUT_LVDS0] = {
+                       .possible_crtcs = BIT(0),
+                       .encoder_type = DRM_MODE_ENCODER_LVDS,
+                       .port = 2,
+               },
+       },
+       .num_lvds = 1,
+};
+
 static const struct of_device_id rcar_du_of_table[] = {
        { .compatible = "renesas,du-r8a7779", .data = &rcar_du_r8a7779_info },
        { .compatible = "renesas,du-r8a7790", .data = &rcar_du_r8a7790_info },
@@ -186,6 +210,7 @@ static const struct of_device_id rcar_du_of_table[] = {
        { .compatible = "renesas,du-r8a7793", .data = &rcar_du_r8a7791_info },
        { .compatible = "renesas,du-r8a7794", .data = &rcar_du_r8a7794_info },
        { .compatible = "renesas,du-r8a7795", .data = &rcar_du_r8a7795_info },
+       { .compatible = "renesas,du-r8a7796", .data = &rcar_du_r8a7796_info },
        { }
 };