diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2009-05-13 05:33:43 -0400 |
---|---|---|
committer | Eric Miao <eric.y.miao@gmail.com> | 2009-09-10 06:49:31 -0400 |
commit | 4a3d3abe91963d7b3e562e70fc6c5c9d3f76fb30 (patch) | |
tree | 87c616149c2e42372012f788b9e2eedab1edf5a3 | |
parent | ecc85e166fbec0378215aab13925b0e980a48d1e (diff) |
[ARM] pxa/pcm990: convert pcm990 to soc-camera as platform-device
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
-rw-r--r-- | 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 e211633471f7..bbda57078e0f 100644 --- a/arch/arm/mach-pxa/pcm990-baseboard.c +++ b/arch/arm/mach-pxa/pcm990-baseboard.c | |||
@@ -430,25 +430,56 @@ static void pcm990_camera_free_bus(struct soc_camera_link *link) | |||
430 | gpio_bus_switch = -EINVAL; | 430 | gpio_bus_switch = -EINVAL; |
431 | } | 431 | } |
432 | 432 | ||
433 | static struct soc_camera_link iclink = { | ||
434 | .bus_id = 0, /* Must match with the camera ID above */ | ||
435 | .query_bus_param = pcm990_camera_query_bus_param, | ||
436 | .set_bus_param = pcm990_camera_set_bus_param, | ||
437 | .free_bus = pcm990_camera_free_bus, | ||
438 | }; | ||
439 | |||
440 | /* Board I2C devices. */ | 433 | /* Board I2C devices. */ |
441 | static struct i2c_board_info __initdata pcm990_i2c_devices[] = { | 434 | static struct i2c_board_info __initdata pcm990_i2c_devices[] = { |
442 | { | 435 | { |
443 | /* Must initialize before the camera(s) */ | 436 | /* Must initialize before the camera(s) */ |
444 | I2C_BOARD_INFO("pca9536", 0x41), | 437 | I2C_BOARD_INFO("pca9536", 0x41), |
445 | .platform_data = &pca9536_data, | 438 | .platform_data = &pca9536_data, |
446 | }, { | 439 | }, |
440 | }; | ||
441 | |||
442 | static struct i2c_board_info pcm990_camera_i2c[] = { | ||
443 | { | ||
447 | I2C_BOARD_INFO("mt9v022", 0x48), | 444 | I2C_BOARD_INFO("mt9v022", 0x48), |
448 | .platform_data = &iclink, /* With extender */ | ||
449 | }, { | 445 | }, { |
450 | I2C_BOARD_INFO("mt9m001", 0x5d), | 446 | I2C_BOARD_INFO("mt9m001", 0x5d), |
451 | .platform_data = &iclink, /* With extender */ | 447 | }, |
448 | }; | ||
449 | |||
450 | static struct soc_camera_link iclink[] = { | ||
451 | { | ||
452 | .bus_id = 0, /* Must match with the camera ID */ | ||
453 | .board_info = &pcm990_camera_i2c[0], | ||
454 | .i2c_adapter_id = 0, | ||
455 | .query_bus_param = pcm990_camera_query_bus_param, | ||
456 | .set_bus_param = pcm990_camera_set_bus_param, | ||
457 | .free_bus = pcm990_camera_free_bus, | ||
458 | .module_name = "mt9v022", | ||
459 | }, { | ||
460 | .bus_id = 0, /* Must match with the camera ID */ | ||
461 | .board_info = &pcm990_camera_i2c[1], | ||
462 | .i2c_adapter_id = 0, | ||
463 | .query_bus_param = pcm990_camera_query_bus_param, | ||
464 | .set_bus_param = pcm990_camera_set_bus_param, | ||
465 | .free_bus = pcm990_camera_free_bus, | ||
466 | .module_name = "mt9m001", | ||
467 | }, | ||
468 | }; | ||
469 | |||
470 | static struct platform_device pcm990_camera[] = { | ||
471 | { | ||
472 | .name = "soc-camera-pdrv", | ||
473 | .id = 0, | ||
474 | .dev = { | ||
475 | .platform_data = &iclink[0], | ||
476 | }, | ||
477 | }, { | ||
478 | .name = "soc-camera-pdrv", | ||
479 | .id = 1, | ||
480 | .dev = { | ||
481 | .platform_data = &iclink[1], | ||
482 | }, | ||
452 | }, | 483 | }, |
453 | }; | 484 | }; |
454 | #endif /* CONFIG_VIDEO_PXA27x ||CONFIG_VIDEO_PXA27x_MODULE */ | 485 | #endif /* CONFIG_VIDEO_PXA27x ||CONFIG_VIDEO_PXA27x_MODULE */ |
@@ -504,6 +535,9 @@ void __init pcm990_baseboard_init(void) | |||
504 | pxa_set_camera_info(&pcm990_pxacamera_platform_data); | 535 | pxa_set_camera_info(&pcm990_pxacamera_platform_data); |
505 | 536 | ||
506 | i2c_register_board_info(0, ARRAY_AND_SIZE(pcm990_i2c_devices)); | 537 | i2c_register_board_info(0, ARRAY_AND_SIZE(pcm990_i2c_devices)); |
538 | |||
539 | platform_device_register(&pcm990_camera[0]); | ||
540 | platform_device_register(&pcm990_camera[1]); | ||
507 | #endif | 541 | #endif |
508 | 542 | ||
509 | printk(KERN_INFO "PCM-990 Evaluation baseboard initialized\n"); | 543 | printk(KERN_INFO "PCM-990 Evaluation baseboard initialized\n"); |