| From 1219a94a13e065ee56bd0c6c863225a00c5c7409 Mon Sep 17 00:00:00 2001 |
| From: Vladimir Barinov <vladimir.barinov@cogentembedded.com> |
| Date: Thu, 22 Aug 2013 17:25:25 -0300 |
| Subject: [media] ARM: shmobile: Marzen: add VIN and ADV7180 support |
| |
| Add ADV7180 platform devices on the Marzen board, configure VIN1/3 pins, and |
| register VIN1/3 devices with the ADV7180 specific platform data. |
| [Sergei: removed superfluous tabulation and inserted empty lines in the macro |
| definition, updated the copyrights, annotated VIN platform data as '__initdata'] |
| |
| Signed-off-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com> |
| Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> |
| Acked-by: Simon Horman <horms+renesas@verge.net.au> |
| Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com> |
| (cherry picked from commit 7cef5e7fd1ab891bc59c269a1a55b8e8d8ca5bc8) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| |
| Conflicts: |
| arch/arm/mach-shmobile/board-marzen.c |
| --- |
| arch/arm/mach-shmobile/board-marzen.c | 44 ++++++++++++++++++++++++++++++++++- |
| 1 file changed, 43 insertions(+), 1 deletion(-) |
| |
| diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c |
| index 3551b548..3f5044fd 100644 |
| --- a/arch/arm/mach-shmobile/board-marzen.c |
| +++ b/arch/arm/mach-shmobile/board-marzen.c |
| @@ -1,8 +1,9 @@ |
| /* |
| * marzen board support |
| * |
| - * Copyright (C) 2011 Renesas Solutions Corp. |
| + * Copyright (C) 2011, 2013 Renesas Solutions Corp. |
| * Copyright (C) 2011 Magnus Damm |
| + * Copyright (C) 2013 Cogent Embedded, Inc. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| @@ -38,6 +39,7 @@ |
| #include <linux/mmc/host.h> |
| #include <linux/mmc/sh_mobile_sdhi.h> |
| #include <linux/mfd/tmio.h> |
| +#include <media/soc_camera.h> |
| #include <mach/r8a7779.h> |
| #include <mach/common.h> |
| #include <mach/irqs.h> |
| @@ -197,6 +199,32 @@ static struct platform_device leds_device = { |
| }, |
| }; |
| |
| +static struct rcar_vin_platform_data vin_platform_data __initdata = { |
| + .flags = RCAR_VIN_BT656, |
| +}; |
| + |
| +#define MARZEN_CAMERA(idx) \ |
| +static struct i2c_board_info camera##idx##_info = { \ |
| + I2C_BOARD_INFO("adv7180", 0x20 + (idx)), \ |
| +}; \ |
| + \ |
| +static struct soc_camera_link iclink##idx##_adv7180 = { \ |
| + .bus_id = 1 + 2 * (idx), \ |
| + .i2c_adapter_id = 0, \ |
| + .board_info = &camera##idx##_info, \ |
| +}; \ |
| + \ |
| +static struct platform_device camera##idx##_device = { \ |
| + .name = "soc-camera-pdrv", \ |
| + .id = idx, \ |
| + .dev = { \ |
| + .platform_data = &iclink##idx##_adv7180, \ |
| + }, \ |
| +}; |
| + |
| +MARZEN_CAMERA(0); |
| +MARZEN_CAMERA(1); |
| + |
| static struct platform_device *marzen_devices[] __initdata = { |
| ð_device, |
| &sdhi0_device, |
| @@ -204,6 +232,8 @@ static struct platform_device *marzen_devices[] __initdata = { |
| &hspi_device, |
| &leds_device, |
| &usb_phy, |
| + &camera0_device, |
| + &camera1_device, |
| }; |
| |
| static const struct pinctrl_map marzen_pinctrl_map[] = { |
| @@ -239,6 +269,16 @@ static const struct pinctrl_map marzen_pinctrl_map[] = { |
| /* USB2 */ |
| PIN_MAP_MUX_GROUP_DEFAULT("ehci-platform.1", "pfc-r8a7779", |
| "usb2", "usb2"), |
| + /* VIN1 */ |
| + PIN_MAP_MUX_GROUP_DEFAULT("r8a7779-vin.1", "pfc-r8a7779", |
| + "vin1_clk", "vin1"), |
| + PIN_MAP_MUX_GROUP_DEFAULT("r8a7779-vin.1", "pfc-r8a7779", |
| + "vin1_data8", "vin1"), |
| + /* VIN3 */ |
| + PIN_MAP_MUX_GROUP_DEFAULT("r8a7779-vin.3", "pfc-r8a7779", |
| + "vin3_clk", "vin3"), |
| + PIN_MAP_MUX_GROUP_DEFAULT("r8a7779-vin.3", "pfc-r8a7779", |
| + "vin3_data8", "vin3"), |
| }; |
| |
| static void __init marzen_init(void) |
| @@ -254,6 +294,8 @@ static void __init marzen_init(void) |
| r8a7779_init_irq_extpin(1); /* IRQ1 as individual interrupt */ |
| |
| r8a7779_add_standard_devices(); |
| + r8a7779_add_vin_device(1, &vin_platform_data); |
| + r8a7779_add_vin_device(3, &vin_platform_data); |
| platform_add_devices(marzen_devices, ARRAY_SIZE(marzen_devices)); |
| } |
| |
| -- |
| 1.8.4.3.gca3854a |
| |