It looks to me the change to the platform code is to move the I2C boardinfo registration into 'struct soc_camera_link'. Are there any specificreason to do so? I'm assuming the original code works equally well,and lists all the i2c devices in a central place is straight forward. On Sat, Apr 25, 2009 at 12:40 AM, Guennadi Liakhovetski<g.liakhovetski@xxxxxx> wrote:> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>> --->> For review __ONLY__ for now - will re-submit after I have pushed 1/8>> arch/arm/mach-pxa/pcm990-baseboard.c | 54 +++++++++++++++++++++++++++------> 1 files changed, 44 insertions(+), 10 deletions(-)>> diff --git a/arch/arm/mach-pxa/pcm990-baseboard.c b/arch/arm/mach-pxa/pcm990-baseboard.c> index 9ce1ef2..a1ae436 100644> --- a/arch/arm/mach-pxa/pcm990-baseboard.c> +++ b/arch/arm/mach-pxa/pcm990-baseboard.c> @@ -427,25 +427,56 @@ static void pcm990_camera_free_bus(struct soc_camera_link *link)> gpio_bus_switch = -EINVAL;> }>> -static struct soc_camera_link iclink = {> - .bus_id = 0, /* Must match with the camera ID above */> - .query_bus_param = pcm990_camera_query_bus_param,> - .set_bus_param = pcm990_camera_set_bus_param,> - .free_bus = pcm990_camera_free_bus,> -};> -> /* Board I2C devices. */> static struct i2c_board_info __initdata pcm990_i2c_devices[] = {> {> /* Must initialize before the camera(s) */> I2C_BOARD_INFO("pca9536", 0x41),> .platform_data = &pca9536_data,> - }, {> + },> +};> +> +static struct i2c_board_info __initdata pcm990_camera_i2c[] = {> + {> I2C_BOARD_INFO("mt9v022", 0x48),> - .platform_data = &iclink, /* With extender */> }, {> I2C_BOARD_INFO("mt9m001", 0x5d),> - .platform_data = &iclink, /* With extender */> + },> +};> +> +static struct soc_camera_link iclink[] = {> + {> + .bus_id = 0, /* Must match with the camera ID */> + .board_info = &pcm990_camera_i2c[0],> + .i2c_adapter_id = 0,> + .query_bus_param = pcm990_camera_query_bus_param,> + .set_bus_param = pcm990_camera_set_bus_param,> + .free_bus = pcm990_camera_free_bus,> + .module_name = "mt9v022",> + }, {> + .bus_id = 0, /* Must match with the camera ID */> + .board_info = &pcm990_camera_i2c[1],> + .i2c_adapter_id = 0,> + .query_bus_param = pcm990_camera_query_bus_param,> + .set_bus_param = pcm990_camera_set_bus_param,> + .free_bus = pcm990_camera_free_bus,> + .module_name = "mt9m001",> + },> +};> +> +static struct platform_device pcm990_camera[] = {> + {> + .name = "soc-camera-pdrv",> + .id = 0,> + .dev = {> + .platform_data = &iclink[0],> + },> + }, {> + .name = "soc-camera-pdrv",> + .id = 1,> + .dev = {> + .platform_data = &iclink[1],> + },> },> };> #endif /* CONFIG_VIDEO_PXA27x ||CONFIG_VIDEO_PXA27x_MODULE */> @@ -501,6 +532,9 @@ void __init pcm990_baseboard_init(void)> pxa_set_camera_info(&pcm990_pxacamera_platform_data);>> i2c_register_board_info(0, ARRAY_AND_SIZE(pcm990_i2c_devices));> +> + platform_device_register(&pcm990_camera[0]);> + platform_device_register(&pcm990_camera[1]);> #endif>> printk(KERN_INFO "PCM-990 Evaluation baseboard initialized\n");> --> 1.6.2.4>> -- Cheers- eric��.n��������+%������w��{.n�����{��g����^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�m