|
@@ -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
|
|
@@ -28,6 +29,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>
|
|
@@ -143,6 +145,25 @@ static struct sh_mmcif_plat_data sh_mmcif_plat = {
|
|
|
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",
|
|
@@ -168,6 +189,16 @@ static const struct pinctrl_map bockw_pinctrl_map[] = {
|
|
|
/* SDHI0 */
|
|
|
PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7778",
|
|
|
"sdhi0", "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
|
|
@@ -186,6 +217,16 @@ static void __init bockw_init(void)
|
|
|
r8a7778_add_i2c_device(0);
|
|
|
r8a7778_add_hspi_device(0);
|
|
|
r8a7778_add_mmc_device(&sh_mmcif_plat);
|
|
|
+ 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));
|