void init_samsung_cam(void)
{

	int ret;
	Cam_Printk("---camera---call--init_samsung_cam --for init!!!--------\n");
	ret= sr352_pin_init();
	if (ret) {
		Cam_Printk("---error!!!!-----sr352_pin_init --failed!!!--------\n");
		return;
	}

	ret= sr130pc10_pin_init();
	if (ret) {
		Cam_Printk("---error!!!!-----sr130pc10_pin_init --failed!!!--------\n");
		return;
	}

#if defined (CONFIG_SOC_CAMERA_SR130PC10)
	//pr_info("add i2c device: CONFIG_SOC_CAMERA_SR130PC10!!\n");
	//platform_device_register(&i2c_subsensor_bus_device);
	//i2c_register_board_info(4, ARRAY_AND_SIZE(mms136_i2c_devices));
#endif

	if (system_rev <= LT02_R0_0)
		platform_add_devices(ARRAY_AND_SIZE(camera_platform_devices));
	else {
		platform_device_register(&i2c_subsensor_bus_device);
		platform_add_devices(ARRAY_AND_SIZE(camera_platform_devices_r01));
	}
	pxa988_add_cam(&mv_cam_data_forssg);
}
/*-- AT_Command[Flash mode] --*/
void __init init_samsung_cam(void)
{
	int ret;
	struct device *dev_r;
	struct device *dev_f;
#if defined(CONFIG_MACH_WILCOX)
	if(system_rev != 1) {
		camera_flash_en = mfp_to_gpio(MFP_PIN_GPIO20);
		camera_flash_set = mfp_to_gpio(MFP_PIN_GPIO97);
	}
#elif defined(CONFIG_MACH_CS02)

#elif defined(CONFIG_MACH_BAFFIN)
	Cam_Printk("Skip to set Flash GPIO\n"); // Set LED gpio at the rt8547.c file
#else
	camera_flash_en = mfp_to_gpio(MFP_PIN_GPIO20);
	camera_flash_set = mfp_to_gpio(MFP_PIN_GPIO97);
#endif

	ret= s5k43_pin_init();
	if (ret) {
		Cam_Printk("---error!!!!-----s5k43_pin_init --failed!!!--------\n");
		return;
	}

	ret= sr030pc30_pin_init();
	if (ret) {
		Cam_Printk("---error!!!!-----sr030pc30_pin_init --failed!!!--------\n");
		return;
	}

	ret= subsensor_pin_init();
	if (ret) {
		Cam_Printk("---error!!!!-----subsensor_pin_init --failed!!!--------\n");
		return;
	}

	platform_add_devices(ARRAY_AND_SIZE(camera_platform_devices));
	pxa988_add_cam(&mv_cam_data_forssg);

#if defined(CONFIG_MACH_WILCOX)
	if(system_rev != 1) {
		if (camera_flash_en && gpio_request(camera_flash_en, "CAM_HI_SENSOR_PWD_20")) {
			printk(KERN_ERR "Request GPIO failed,"
					"gpio: %d\n", camera_flash_en);
			camera_flash_en = 0;
			return;
		}
		if (camera_flash_set && gpio_request(camera_flash_set, "CAM_HI_SENSOR_PWD_8")) {
			printk(KERN_ERR "Request GPIO failed,"
					"gpio: %d\n", camera_flash_set);
			camera_flash_set = 0;
			return;
		}
	}
#else
	if (camera_flash_en && gpio_request(camera_flash_en, "CAM_HI_SENSOR_PWD_20")) {
		printk(KERN_ERR "Request GPIO failed,"
				"gpio: %d\n", camera_flash_en);
		camera_flash_en = 0;
		return;
	}
	if (camera_flash_set && gpio_request(camera_flash_set, "CAM_HI_SENSOR_PWD_8")) {
		printk(KERN_ERR "Request GPIO failed,"
				"gpio: %d\n", camera_flash_set);
		camera_flash_set = 0;
		return;
	}
#endif
//	gpio_direction_output(camera_flash_en, 0);
//	gpio_direction_output(camera_flash_set, 0);

/*++ AT_Command[Flash mode] : [email protected]_20121012 ++*/
	camera_class = class_create(THIS_MODULE, "camera");
	
	if (IS_ERR(camera_class)) 
	{
	 printk("Failed to create camera_class!\n");
	 return PTR_ERR( camera_class );
        }
	
	dev_f= device_create(camera_class, NULL, 0, "%s", "front");	
	if (device_create_file(dev_f, &dev_attr_front_type) < 0)
	 printk("Failed to create device file(%s)!\n", dev_attr_front_type.attr.name);
	if (device_create_file(dev_f, &dev_attr_front_camfw) < 0)
	 printk("Failed to create device file(%s)!\n", dev_attr_front_camfw.attr.name);

	dev_r = device_create(camera_class, NULL, 0, "%s", "rear");		
	if (device_create_file(dev_r, &dev_attr_rear_type) < 0)
	 printk("Failed to create device file(%s)!\n", dev_attr_rear_type.attr.name);
	if (device_create_file(dev_r, &dev_attr_rear_camfw) < 0)
	 printk("Failed to create device file(%s)!\n", dev_attr_rear_camfw.attr.name);
	if (device_create_file(dev_r, &dev_attr_rear_flash) < 0)
	 printk("Failed to create device file(%s)!\n", dev_attr_rear_flash.attr.name);
	if (device_create_file(dev_r, &dev_attr_rear_vendorid) < 0)
	 printk("Failed to create device file(%s)!\n", dev_attr_rear_vendorid.attr.name);

/*-- AT_Command[Flash mode] --*/
}
/*-- AT_Command[Flash mode] --*/
void __init init_samsung_cam(void)
{
	int ret;
	struct device *dev_r;
	struct device *dev_f;

	camera_flash_en = mfp_to_gpio(MFP_PIN_GPIO20);
	camera_flash_set = mfp_to_gpio(MFP_PIN_GPIO97);

	ret= s5k43_pin_init();
	if (ret) {
		Cam_Printk("---error!!!!-----s5k43_pin_init --failed!!!--------\n");
		return;
	}

	ret= sr030pc30_pin_init();
	if (ret) {
		Cam_Printk("---error!!!!-----sr030pc30_pin_init --failed!!!--------\n");
		return;
	}

	ret= subsensor_pin_init();
	if (ret) {
		Cam_Printk("---error!!!!-----subsensor_pin_init --failed!!!--------\n");
		return;
	}

	platform_add_devices(ARRAY_AND_SIZE(camera_platform_devices));
	pxa988_add_cam(&mv_cam_data_forssg);

	if (camera_flash_en && gpio_request(camera_flash_en, "CAM_HI_SENSOR_PWD_20")) {
		printk(KERN_ERR "Request GPIO failed,"
				"gpio: %d\n", camera_flash_en);
		camera_flash_en = 0;
		return;
	}
	if (camera_flash_set && gpio_request(camera_flash_set, "CAM_HI_SENSOR_PWD_8")) {
		printk(KERN_ERR "Request GPIO failed,"
				"gpio: %d\n", camera_flash_set);
		camera_flash_set = 0;
		return;
	}

	/*++ AT_Command[Flash mode] : [email protected]_20121012 ++*/
	camera_class = class_create(THIS_MODULE, "camera");
	
	if (IS_ERR(camera_class)) 
	{
		printk("Failed to create camera_class!\n");
		return PTR_ERR( camera_class );
	}
	
	dev_f= device_create(camera_class, NULL, 0, "%s", "front");	
	if (device_create_file(dev_f, &dev_attr_front_type) < 0)
	 printk("Failed to create device file(%s)!\n", dev_attr_front_type.attr.name);
	if (device_create_file(dev_f, &dev_attr_front_camfw) < 0)
	 printk("Failed to create device file(%s)!\n", dev_attr_front_camfw.attr.name);

	dev_r = device_create(camera_class, NULL, 0, "%s", "rear");		
	if (device_create_file(dev_r, &dev_attr_rear_type) < 0)
	 printk("Failed to create device file(%s)!\n", dev_attr_rear_type.attr.name);
	if (device_create_file(dev_r, &dev_attr_rear_camfw) < 0)
	 printk("Failed to create device file(%s)!\n", dev_attr_rear_camfw.attr.name);
	if (device_create_file(dev_r, &dev_attr_rear_flash) < 0)
	 printk("Failed to create device file(%s)!\n", dev_attr_rear_flash.attr.name);
	if (device_create_file(dev_r, &dev_attr_rear_vendorid) < 0)
	 printk("Failed to create device file(%s)!\n", dev_attr_rear_vendorid.attr.name);

	/*-- AT_Command[Flash mode] --*/
}