Dear Jamesbone:
So appreciated your answer! question 1 & 2 are gracefully resolved.
In your answer to question 3, you mention DTS configuration, but since SDK_3.0.35 not introduced DTS yet, I believe you want me to check if I configure my board file in kernel/arch/arm/mach-mx6/ correctly or not. I do have more question when I examine the board file between "board-mx6q_sabresd.c" & "board-mx6q_sabreauto.c":
in kernel/arch/arm/mach-mx6/board-mx6q_sabresd.c, it attach i2c device "ov5640_mipi" on its IPU0, CSI1, virtural channel 0:
static struct mipi_csi2_platform_data mipi_csi2_pdata = {
.ipu_id = 0,
.csi_id = 1,
.v_channel = 0,
.lanes = 2,
.dphy_clk = "mipi_pllref_clk",
.pixel_clk = "emi_clk",
};
but callback func ".io_init" in sabresd fsl_mxc_camera_platform_data mipi_csi2_data tell me it will using virtual channel 1:
static void mx6q_mipi_sensor_io_init(void)
{
......
/*for mx6dl, mipi virtual channel 1 connect to csi 1*/
if (cpu_is_mx6dl())
mxc_iomux_set_gpr_register(13, 3, 3, 1);
}
I have another question about comparing "kernel/drivers/media/video/mxc/capture/ov5640_mipi.c" and "kernel/drivers/media/video/mxc/capture/adv7280_mipi_tvin.c" -- why ov5640_mipi.c would call mipi_csi2_enable() and adv7280_mipi_tvin.c not? as I dig the adv7280_mipi driver source code, find out it simply doing 15 times i2c write commands, and why it never calling mipi_csi2_get_info() for mipi D-phy configuration? Since I reference lots initialization codes from adv7280_mipi_tvin.c; I want to check is this codes take action correctly first.
I also wonder I lost something should be turn-on in kernel config file. in kernel/arch/arm/configs/imx6_defconfig, it also turn on following configs, should I also turn them on in my custom kernel?
CONFIG_VIDEO_MXC_CAMERA=m
CONFIG_VIDEO_MXC_IPU_CAMERA=y
CONFIG_MXC_CAMERA_SENSOR_CLK=m
CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
CONFIG_MXC_IPU_PRP_ENC=m
CONFIG_MXC_IPU_CSI_ENC=m
and CONFIG_MXC_MIPI_CSI2_TVIN_ADV7280 is not defined, does this mean no one had been successfully tried adv7280 on imx6 mipi interface?