예제 #1
0
void s3c_fimc_register_camera(struct s3c_fimc_camera *cam)
{
	int i;
	//static int once=0;	
	//printk("[CAM]s3c_fimc_register_camera,cam->id=%d\n",cam->id);	
	s3c_fimc.camera[cam->id] = cam;

	for (i = 0; i < S3C_FIMC_MAX_CTRLS; i++) {
		s3c_fimc.ctrl[i].in_cam = s3c_fimc.camera[cam->id];
	}
	clk_disable(s3c_fimc.cam_clock);
	clk_set_rate(s3c_fimc.cam_clock, cam->clockrate);
	clk_enable(s3c_fimc.cam_clock);

	s3c_fimc_reset_camera();//comment by ur better
	

	//printk("[CAM]Reset and init reg!1cam->client=%x\n",cam->client);
	/*printk("[CAM]Reset and init reg!1\n");		
	if((once==0)&&(cam->client!=0))
	{
	printk("[CAM]Reset and init reg!2\n");	
	//s3c_fimc_reset_camera();	
	for (i = 0; i < S3C_FIMC_MAX_CTRLS; i++) {
		s3c_fimc_init_camera(&s3c_fimc.ctrl[i]);
	}
	once = 1;
	}
	printk("[CAM]Reset and init reg!3\n");	
	*/

}
예제 #2
0
static void __init universal_machine_init(void)
{
	int err;

	tl2796_gpio_setup();

	universal_i2c_gpio_init();

	s3c_i2c0_set_platdata(NULL);
	s3c_i2c1_set_platdata(NULL);
	i2c_register_board_info(0, i2c_devs0, ARRAY_SIZE(i2c_devs0));
	i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1));
	i2c_register_board_info(I2C_GPIO_26V_BUS, i2c_gpio_26v_devs,
				ARRAY_SIZE(i2c_gpio_26v_devs));
	i2c_register_board_info(I2C_GPIO_HDMI_BUS, i2c_gpio_hdmi_devs,
				ARRAY_SIZE(i2c_gpio_hdmi_devs));
	i2c_register_board_info(I2C_GPIO_28V_BUS, i2c_gpio_28v_devs,
				ARRAY_SIZE(i2c_gpio_28v_devs));

	spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info));
	s3cfb_set_platdata(&fb_data);

	err = camera_pin_request();
	if (err)
		printk(KERN_INFO "CAMERA PIN REQUEST FAILED\n");

	/* Registering external camera to platform data */
	/*fimc_setting.camera[0] = &camera_a;*/
	fimc_setting.camera[0] = &camera_c;

	s3c_fimc0_set_platdata(&fimc_setting);
	s3c_fimc1_set_platdata(&fimc_setting);
	s3c_fimc2_set_platdata(&fimc_setting);	/* testing MIPI */
	
	/* CSI-2 */
	s3c_csis_set_platdata(NULL);

	s3c_fimc_reset_camera();
	platform_add_devices(universal_devices, ARRAY_SIZE(universal_devices));
}