| From 7c559c430c0ba225e259b90f7e2ca332d367d75c Mon Sep 17 00:00:00 2001 |
| From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> |
| Date: Thu, 4 Aug 2016 15:01:02 -0700 |
| Subject: [PATCH 050/299] drm: rcar-du: Add R8A7792 support |
| |
| Add support for the R8A7792 DU; it has 2 DPAD (RGB) outputs. |
| |
| Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> |
| Acked-by: Rob Herring <robh@kernel.org> |
| Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| (cherry picked from commit 73323ddbbddf2c8aeb1b57c75bcb537142ec9599) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| Documentation/devicetree/bindings/display/renesas,du.txt | 4 ++ |
| drivers/gpu/drm/rcar-du/rcar_du_drv.c | 22 +++++++++++++++ |
| 2 files changed, 25 insertions(+), 1 deletion(-) |
| |
| --- a/Documentation/devicetree/bindings/display/renesas,du.txt |
| +++ b/Documentation/devicetree/bindings/display/renesas,du.txt |
| @@ -6,6 +6,7 @@ Required Properties: |
| - "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU |
| - "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU |
| - "renesas,du-r8a7791" for R8A7791 (R-Car M2-W) compatible DU |
| + - "renesas,du-r8a7792" for R8A7792 (R-Car V2H) compatible DU |
| - "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 |
| @@ -25,7 +26,7 @@ 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[01345] use one functional clock per channel and one clock per LVDS |
| + - 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. |
| @@ -47,6 +48,7 @@ corresponding to each DU output. |
| R8A7779 (H1) DPAD 0 DPAD 1 - - |
| R8A7790 (H2) DPAD LVDS 0 LVDS 1 - |
| R8A7791 (M2-W) DPAD LVDS 0 - - |
| + R8A7792 (V2H) DPAD 0 DPAD 1 - - |
| R8A7793 (M2-N) DPAD LVDS 0 - - |
| R8A7794 (E2) DPAD 0 DPAD 1 - - |
| R8A7795 (H3) DPAD HDMI 0 HDMI 1 LVDS |
| --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c |
| +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c |
| @@ -110,6 +110,27 @@ static const struct rcar_du_device_info |
| .num_lvds = 1, |
| }; |
| |
| +static const struct rcar_du_device_info rcar_du_r8a7792_info = { |
| + .gen = 2, |
| + .features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK |
| + | RCAR_DU_FEATURE_EXT_CTRL_REGS, |
| + .num_crtcs = 2, |
| + .routes = { |
| + /* R8A7792 has two RGB outputs. */ |
| + [RCAR_DU_OUTPUT_DPAD0] = { |
| + .possible_crtcs = BIT(0), |
| + .encoder_type = DRM_MODE_ENCODER_NONE, |
| + .port = 0, |
| + }, |
| + [RCAR_DU_OUTPUT_DPAD1] = { |
| + .possible_crtcs = BIT(1), |
| + .encoder_type = DRM_MODE_ENCODER_NONE, |
| + .port = 1, |
| + }, |
| + }, |
| + .num_lvds = 0, |
| +}; |
| + |
| static const struct rcar_du_device_info rcar_du_r8a7794_info = { |
| .gen = 2, |
| .features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK |
| @@ -161,6 +182,7 @@ static const struct of_device_id rcar_du |
| { .compatible = "renesas,du-r8a7779", .data = &rcar_du_r8a7779_info }, |
| { .compatible = "renesas,du-r8a7790", .data = &rcar_du_r8a7790_info }, |
| { .compatible = "renesas,du-r8a7791", .data = &rcar_du_r8a7791_info }, |
| + { .compatible = "renesas,du-r8a7792", .data = &rcar_du_r8a7792_info }, |
| { .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 }, |