]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00161766 [MX6] change ov5640_mipi to a module
authorEven Xu <Feng.Xu@freescale.com>
Wed, 9 Nov 2011 08:06:28 +0000 (16:06 +0800)
committerOliver Wendt <ow@karo-electronics.de>
Mon, 30 Sep 2013 12:09:59 +0000 (14:09 +0200)
1. Config MIPI CSI2 driver as a default build in driver
2. Change ov5640 mipi sensor as a module

Signed-off-by: Even Xu <b21019@freescale.com>
arch/arm/configs/imx6_defconfig
arch/arm/mach-mx6/board-mx6q_arm2.c

index 66919896cd6f593aaad9979c3502c5fdc508b789..cc21f4500af099b4333e767da64b3990b8410d70 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux/arm 2.6.38 Kernel Configuration
-# Fri Nov  4 16:16:41 2011
+# Wed Nov  9 15:44:43 2011
 #
 CONFIG_ARM=y
 CONFIG_HAVE_PWM=y
@@ -287,6 +287,7 @@ CONFIG_IMX_HAVE_PLATFORM_FSL_USB_WAKEUP=y
 CONFIG_IMX_HAVE_PLATFORM_IMX_PM=y
 CONFIG_IMX_HAVE_PLATFORM_IMX_ASRC=y
 CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_DSI=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_CSI2=y
 
 #
 # Freescale MXC Implementations
@@ -1270,6 +1271,8 @@ CONFIG_MEDIA_TUNER_XC2028=y
 CONFIG_MEDIA_TUNER_XC5000=y
 CONFIG_MEDIA_TUNER_MC44S803=y
 CONFIG_VIDEO_V4L2=y
+CONFIG_VIDEOBUF_GEN=y
+CONFIG_VIDEOBUF_DMA_CONTIG=y
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
@@ -1359,6 +1362,7 @@ CONFIG_VIDEO_MXC_IPU_CAMERA=y
 # CONFIG_MXC_CAMERA_OV2640 is not set
 CONFIG_MXC_CAMERA_OV3640=m
 CONFIG_MXC_CAMERA_OV5640=m
+CONFIG_MXC_CAMERA_OV5640_MIPI=m
 CONFIG_MXC_CAMERA_OV5642=m
 CONFIG_MXC_IPU_PRP_VF_SDC=m
 CONFIG_MXC_IPU_PRP_ENC=m
@@ -1692,7 +1696,6 @@ CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_VBUS_DRAW=2
 CONFIG_USB_GADGET_SELECTED=y
 CONFIG_USB_GADGET_ARC=y
-# CONFIG_USB_STATIC_IRAM_PPH is not set
 CONFIG_USB_ARC=y
 # CONFIG_USB_GADGET_FSL_USB2 is not set
 # CONFIG_USB_GADGET_R8A66597 is not set
@@ -1983,6 +1986,11 @@ CONFIG_MXC_GPU_VIV=y
 #
 # CONFIG_ANATOP_THERMAL is not set
 
+#
+# MXC MIPI Support
+#
+CONFIG_MXC_MIPI_CSI2=y
+
 #
 # File systems
 #
index c90ce0b0200df1eff42ecb3eff4b985e2ab5eae4..553e55e1a9fade2c19f3f04a583cc41de2ae0db5 100644 (file)
@@ -108,6 +108,7 @@ void __init early_console_setup(unsigned long base, struct clk *clk);
 static struct clk *sata_clk;
 static int esai_record;
 static int spdif_en;
+static int mipi_sensor;
 
 extern struct regulator *(*get_cpu_regulator)(void);
 extern void (*put_cpu_regulator)(void);
@@ -270,10 +271,6 @@ static iomux_v3_cfg_t mx6q_arm2_pads[] = {
        /* camera powerdown */
        MX6Q_PAD_CSI0_DAT5__GPIO_5_23,
 
-#ifdef CONFIG_MXC_CAMERA_OV5640_MIPI
-       MX6Q_PAD_CSI0_MCLK__CCM_CLKO,
-#endif
-
        MX6Q_PAD_EIM_D24__GPIO_3_24,
 
        /* PWM1 */
@@ -327,6 +324,10 @@ static iomux_v3_cfg_t mx6q_arm2_esai_record_pads[] = {
        MX6Q_PAD_ENET_REF_CLK__ESAI1_FSR,
 };
 
+static iomux_v3_cfg_t mx6q_arm2_mipi_sensor_pads[] = {
+       MX6Q_PAD_CSI0_MCLK__CCM_CLKO,
+};
+
 #define MX6Q_USDHC_PAD_SETTING(id, speed)      \
 mx6q_sd##id##_##speed##mhz[] = {               \
        MX6Q_PAD_SD##id##_CLK__USDHC##id##_CLK_##speed##MHZ,    \
@@ -1318,6 +1319,13 @@ static void __init fixup_mxc_board(struct machine_desc *desc, struct tag *tags,
        set_cpu_voltage = mx6_arm2_set_cpu_voltage;
 }
 
+static int __init early_enable_mipi_sensor(char *p)
+{
+       mipi_sensor = 1;
+       return 0;
+}
+early_param("mipi_sensor", early_enable_mipi_sensor);
+
 static inline void __init mx6q_csi0_io_init(void)
 {
        /* Camera reset */
@@ -1399,6 +1407,10 @@ static void __init mx6_board_init(void)
                        ARRAY_SIZE(mx6q_arm2_can_pads));
        }
 
+       if (mipi_sensor)
+               mxc_iomux_v3_setup_multiple_pads(mx6q_arm2_mipi_sensor_pads,
+                       ARRAY_SIZE(mx6q_arm2_mipi_sensor_pads));
+
        gp_reg_id = arm2_dvfscore_data.reg_id;
        mx6q_arm2_init_uart();
        imx6q_add_mipi_csi2(&mipi_csi2_pdata);
@@ -1454,9 +1466,9 @@ static void __init mx6_board_init(void)
        imx_asrc_data.asrc_audio_clk = clk_get(NULL, "asrc_serial_clk");
        imx6q_add_asrc(&imx_asrc_data);
 
-#ifndef CONFIG_MXC_CAMERA_OV5640_MIPI
-       mx6q_csi0_io_init();
-#endif
+       if (!mipi_sensor)
+               mx6q_csi0_io_init();
+
        /* DISP0 Detect */
        gpio_request(MX6Q_ARM2_DISP0_DET_INT, "disp0-detect");
        gpio_direction_input(MX6Q_ARM2_DISP0_DET_INT);