Re: [PATCH 3/8] ARM: convert pcm990 to the new platform-device soc-camera interface

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux