Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Sergei Shtylyov and committed by
Laurent Pinchart
73323ddb 4f7b0d26

+25 -1
+3 -1
Documentation/devicetree/bindings/display/renesas,du.txt
··· 6 6 - "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU 7 7 - "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU 8 8 - "renesas,du-r8a7791" for R8A7791 (R-Car M2-W) compatible DU 9 + - "renesas,du-r8a7792" for R8A7792 (R-Car V2H) compatible DU 9 10 - "renesas,du-r8a7793" for R8A7793 (R-Car M2-N) compatible DU 10 11 - "renesas,du-r8a7794" for R8A7794 (R-Car E2) compatible DU 11 12 - "renesas,du-r8a7795" for R8A7795 (R-Car H3) compatible DU ··· 26 25 - clock-names: Name of the clocks. This property is model-dependent. 27 26 - R8A7779 uses a single functional clock. The clock doesn't need to be 28 27 named. 29 - - R8A779[01345] use one functional clock per channel and one clock per LVDS 28 + - R8A779[012345] use one functional clock per channel and one clock per LVDS 30 29 encoder (if available). The functional clocks must be named "du.x" with 31 30 "x" being the channel numerical index. The LVDS clocks must be named 32 31 "lvds.x" with "x" being the LVDS encoder numerical index. ··· 48 47 R8A7779 (H1) DPAD 0 DPAD 1 - - 49 48 R8A7790 (H2) DPAD LVDS 0 LVDS 1 - 50 49 R8A7791 (M2-W) DPAD LVDS 0 - - 50 + R8A7792 (V2H) DPAD 0 DPAD 1 - - 51 51 R8A7793 (M2-N) DPAD LVDS 0 - - 52 52 R8A7794 (E2) DPAD 0 DPAD 1 - - 53 53 R8A7795 (H3) DPAD HDMI 0 HDMI 1 LVDS
+22
drivers/gpu/drm/rcar-du/rcar_du_drv.c
··· 110 110 .num_lvds = 1, 111 111 }; 112 112 113 + static const struct rcar_du_device_info rcar_du_r8a7792_info = { 114 + .gen = 2, 115 + .features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK 116 + | RCAR_DU_FEATURE_EXT_CTRL_REGS, 117 + .num_crtcs = 2, 118 + .routes = { 119 + /* R8A7792 has two RGB outputs. */ 120 + [RCAR_DU_OUTPUT_DPAD0] = { 121 + .possible_crtcs = BIT(0), 122 + .encoder_type = DRM_MODE_ENCODER_NONE, 123 + .port = 0, 124 + }, 125 + [RCAR_DU_OUTPUT_DPAD1] = { 126 + .possible_crtcs = BIT(1), 127 + .encoder_type = DRM_MODE_ENCODER_NONE, 128 + .port = 1, 129 + }, 130 + }, 131 + .num_lvds = 0, 132 + }; 133 + 113 134 static const struct rcar_du_device_info rcar_du_r8a7794_info = { 114 135 .gen = 2, 115 136 .features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK ··· 182 161 { .compatible = "renesas,du-r8a7779", .data = &rcar_du_r8a7779_info }, 183 162 { .compatible = "renesas,du-r8a7790", .data = &rcar_du_r8a7790_info }, 184 163 { .compatible = "renesas,du-r8a7791", .data = &rcar_du_r8a7791_info }, 164 + { .compatible = "renesas,du-r8a7792", .data = &rcar_du_r8a7792_info }, 185 165 { .compatible = "renesas,du-r8a7793", .data = &rcar_du_r8a7791_info }, 186 166 { .compatible = "renesas,du-r8a7794", .data = &rcar_du_r8a7794_info }, 187 167 { .compatible = "renesas,du-r8a7795", .data = &rcar_du_r8a7795_info },