| From d69d49c0a90afb735d10dd4a4b3ce9105f075517 Mon Sep 17 00:00:00 2001 |
| From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Date: Tue, 6 Sep 2016 02:11:43 +0300 |
| Subject: [PATCH 051/299] drm: rcar-du: Add R8A7796 support |
| |
| 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> |
| (cherry picked from commit 63b5053e53a052355bbc74e814561e5e586fd866) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| Documentation/devicetree/bindings/display/renesas,du.txt | 10 +++--- |
| drivers/gpu/drm/rcar-du/rcar_du_drv.c | 25 +++++++++++++++ |
| 2 files changed, 31 insertions(+), 4 deletions(-) |
| |
| --- a/Documentation/devicetree/bindings/display/renesas,du.txt |
| +++ b/Documentation/devicetree/bindings/display/renesas,du.txt |
| @@ -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 |
| --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c |
| +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c |
| @@ -178,6 +178,30 @@ static const struct rcar_du_device_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 |
| { .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 }, |
| { } |
| }; |
| |