| From 9cc7aa635dc2095543a2dcc9570477164cf07477 Mon Sep 17 00:00:00 2001 |
| From: Vladimir Barinov <vladimir.barinov@cogentembedded.com> |
| Date: Thu, 22 Aug 2013 17:38:50 -0300 |
| Subject: [media] ARM: shmobile: BOCK-W: add VIN and ML86V7667 support |
| |
| Add ML86V7667 platform devices on BOCK-W board, configure VIN0/1 pins, and |
| register VIN0/1 devices with the ML86V7667 specific platform data. |
| [Sergei: some macro/comment cleanup; updated the copyrights, removed duplicate |
| 'sh_eth' driver being enabled before registering VIN1 due to a pin conflict, |
| removed superfluous semicolon after iclink[01]_ml86v7667' initializer.] |
| |
| 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 9c43952d0f1e7da943cb697f902e5a0e62abfc63) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| |
| Conflicts: |
| arch/arm/mach-shmobile/board-bockw.c |
| --- |
| arch/arm/mach-shmobile/board-bockw.c | 41 ++++++++++++++++++++++++++++++++++++ |
| 1 file changed, 41 insertions(+) |
| |
| diff --git a/arch/arm/mach-shmobile/board-bockw.c b/arch/arm/mach-shmobile/board-bockw.c |
| index 255e97e5..127ad3a0 100644 |
| --- a/arch/arm/mach-shmobile/board-bockw.c |
| +++ b/arch/arm/mach-shmobile/board-bockw.c |
| @@ -3,6 +3,7 @@ |
| * |
| * Copyright (C) 2013 Renesas Solutions Corp. |
| * Copyright (C) 2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
| + * 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 |
| @@ -31,6 +32,7 @@ |
| #include <linux/smsc911x.h> |
| #include <linux/spi/spi.h> |
| #include <linux/spi/flash.h> |
| +#include <media/soc_camera.h> |
| #include <mach/common.h> |
| #include <mach/irqs.h> |
| #include <mach/r8a7778.h> |
| @@ -161,6 +163,25 @@ static struct sh_mmcif_plat_data sh_mmcif_plat __initdata = { |
| MMC_CAP_NEEDS_POLL, |
| }; |
| |
| +static struct rcar_vin_platform_data vin_platform_data __initdata = { |
| + .flags = RCAR_VIN_BT656, |
| +}; |
| + |
| +/* In the default configuration both decoders reside on I2C bus 0 */ |
| +#define BOCKW_CAMERA(idx) \ |
| +static struct i2c_board_info camera##idx##_info = { \ |
| + I2C_BOARD_INFO("ml86v7667", 0x41 + 2 * (idx)), \ |
| +}; \ |
| + \ |
| +static struct soc_camera_link iclink##idx##_ml86v7667 __initdata = { \ |
| + .bus_id = idx, \ |
| + .i2c_adapter_id = 0, \ |
| + .board_info = &camera##idx##_info, \ |
| +} |
| + |
| +BOCKW_CAMERA(0); |
| +BOCKW_CAMERA(1); |
| + |
| static const struct pinctrl_map bockw_pinctrl_map[] = { |
| /* Ether */ |
| PIN_MAP_MUX_GROUP_DEFAULT("r8a777x-ether", "pfc-r8a7778", |
| @@ -192,6 +213,16 @@ static const struct pinctrl_map bockw_pinctrl_map[] = { |
| "sdhi0_cd", "sdhi0"), |
| PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7778", |
| "sdhi0_wp", "sdhi0"), |
| + /* VIN0 */ |
| + PIN_MAP_MUX_GROUP_DEFAULT("r8a7778-vin.0", "pfc-r8a7778", |
| + "vin0_clk", "vin0"), |
| + PIN_MAP_MUX_GROUP_DEFAULT("r8a7778-vin.0", "pfc-r8a7778", |
| + "vin0_data8", "vin0"), |
| + /* VIN1 */ |
| + PIN_MAP_MUX_GROUP_DEFAULT("r8a7778-vin.1", "pfc-r8a7778", |
| + "vin1_clk", "vin1"), |
| + PIN_MAP_MUX_GROUP_DEFAULT("r8a7778-vin.1", "pfc-r8a7778", |
| + "vin1_data8", "vin1"), |
| }; |
| |
| #define FPGA 0x18200000 |
| @@ -206,6 +237,16 @@ static void __init bockw_init(void) |
| r8a7778_init_irq_extpin(1); |
| r8a7778_add_standard_devices(); |
| r8a7778_add_ether_device(ðer_platform_data); |
| + r8a7778_add_vin_device(0, &vin_platform_data); |
| + /* VIN1 has a pin conflict with Ether */ |
| + if (!IS_ENABLED(CONFIG_SH_ETH)) |
| + r8a7778_add_vin_device(1, &vin_platform_data); |
| + platform_device_register_data(&platform_bus, "soc-camera-pdrv", 0, |
| + &iclink0_ml86v7667, |
| + sizeof(iclink0_ml86v7667)); |
| + platform_device_register_data(&platform_bus, "soc-camera-pdrv", 1, |
| + &iclink1_ml86v7667, |
| + sizeof(iclink1_ml86v7667)); |
| |
| i2c_register_board_info(0, i2c0_devices, |
| ARRAY_SIZE(i2c0_devices)); |
| -- |
| 1.8.4.3.gca3854a |
| |