It looks to me the change to the platform code is to move the I2C board
info registration into 'struct soc_camera_link'. Are there any specific
reason 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.liakhovet...@gmx.de> wrote:
> Signed-off-by: Guennadi Liakhovetski <g.liakhovet...@gmx.de>
> ---
>
> 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�����r��y����b�X��ǧv�^�)޺{.n�+����{���bj)����w*jg��������ݢj/���z�ޖ��2�ޙ����&�)ߡ�a�����G���h��j:+v���w��٥

Reply via email to