Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4a3d3abe authored by Guennadi Liakhovetski's avatar Guennadi Liakhovetski Committed by Eric Miao
Browse files

[ARM] pxa/pcm990: convert pcm990 to soc-camera as platform-device

parent ecc85e16
Loading
Loading
Loading
Loading
+44 −10
Original line number Diff line number Diff line
@@ -430,25 +430,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 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 */
@@ -504,6 +535,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");