Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>
---
 arch/arm/mach-shmobile/board-lager.c | 76 +++++++++++++++++++++++++-----------
 1 file changed, 53 insertions(+), 23 deletions(-)

diff --git a/arch/arm/mach-shmobile/board-lager.c 
b/arch/arm/mach-shmobile/board-lager.c
index 75a01bc..d61b892 100644
--- a/arch/arm/mach-shmobile/board-lager.c
+++ b/arch/arm/mach-shmobile/board-lager.c
@@ -33,6 +33,8 @@
 #include <linux/regulator/fixed.h>
 #include <linux/regulator/machine.h>
 #include <linux/sh_eth.h>
+#include <video/panel-dpi.h>
+#include <video/videomode.h>
 #include <mach/common.h>
 #include <mach/irqs.h>
 #include <mach/r8a7790.h>
@@ -40,35 +42,56 @@
 #include <asm/mach/arch.h>

 /* DU */
-static struct rcar_du_encoder_data lager_du_encoders[] = {
+static const struct videomode lager_panel_mode = {
+       .pixelclock = 65000000,
+       .hactive = 1024,
+       .hfront_porch = 24,
+       .hback_porch = 160,
+       .hsync_len = 136,
+       .vactive = 768,
+       .vfront_porch = 3,
+       .vback_porch = 29,
+       .vsync_len = 6,
+       .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
+};
+
+static const struct panel_dpi_platform_data lager_panel_data = {
+       .width = 210,
+       .height = 158,
+       .mode = &lager_panel_mode,
+};
+
+static const struct display_entity_graph_data lager_du_entities[] = {
        {
-               .type = RCAR_DU_ENCODER_VGA,
-               .output = RCAR_DU_OUTPUT_DPAD0,
+               .name = "adv7123",
+               .sources = (const struct display_entity_source_data[]) {
+                       {
+                               .name = "rcar-du",
+                               .port = 0,
+                       },
+               },
        }, {
-               .type = RCAR_DU_ENCODER_NONE,
-               .output = RCAR_DU_OUTPUT_LVDS1,
-               .connector.lvds.panel = {
-                       .width_mm = 210,
-                       .height_mm = 158,
-                       .mode = {
-                               .clock = 65000,
-                               .hdisplay = 1024,
-                               .hsync_start = 1048,
-                               .hsync_end = 1184,
-                               .htotal = 1344,
-                               .vdisplay = 768,
-                               .vsync_start = 771,
-                               .vsync_end = 777,
-                               .vtotal = 806,
-                               .flags = 0,
+               .name = "con-vga",
+               .sources = (const struct display_entity_source_data[]) {
+                       {
+                               .name = "adv7123",
+                               .port = 1,
                        },
                },
+       }, {
+               .name = "panel-dpi",
+               .sources = (const struct display_entity_source_data[]) {
+                       {
+                               .name = "rcar-du",
+                               .port = 2,
+                       },
+               },
+       }, {
        },
 };

 static const struct rcar_du_platform_data lager_du_pdata __initconst = {
-       .encoders = lager_du_encoders,
-       .num_encoders = ARRAY_SIZE(lager_du_encoders),
+       .graph = lager_du_entities,
 };

 static const struct resource du_resources[] __initconst = {
@@ -87,8 +110,8 @@ static void __init lager_add_du_device(void)
                .id = -1,
                .res = du_resources,
                .num_res = ARRAY_SIZE(du_resources),
-               .data = &du_resources,
-               .size_data = sizeof(du_resources),
+               .data = &lager_du_pdata,
+               .size_data = sizeof(lager_du_pdata),
                .dma_mask = DMA_BIT_MASK(32),
        };

@@ -202,6 +225,7 @@ static void __init lager_add_standard_devices(void)
        r8a7790_pinmux_init();

        r8a7790_add_standard_devices();
+
        platform_device_register_data(&platform_bus, "leds-gpio", -1,
                                      &lager_leds_pdata,
                                      sizeof(lager_leds_pdata));
@@ -220,6 +244,12 @@ static void __init lager_add_standard_devices(void)
                                          &ether_pdata, sizeof(ether_pdata));

        lager_add_du_device();
+
+       platform_device_register_simple("adv7123", -1, NULL, 0);
+       platform_device_register_simple("con-vga", -1, NULL, 0);
+       platform_device_register_data(&platform_bus, "panel-dpi", -1,
+                                     &lager_panel_data,
+                                     sizeof(lager_panel_data));
 }

 static const char * const lager_boards_compat_dt[] __initconst = {
-- 
1.8.1.5

Reply via email to