void __init msm7627a_camera_init(void) { #ifndef CONFIG_MSM_CAMERA_V4L2 int rc; #endif pr_debug("msm7627a_camera_init Entered\n"); /* LCD and camera power (VREG & LDO) init */ if (machine_is_msm7627a_evb() || machine_is_msm8625_evb()) { lcd_camera_power_init(); evb_camera_gpio_cfg(); } #ifndef CONFIG_MSM_CAMERA_V4L2 if (machine_is_msm7627a_qrd1()) { qrd1_camera_gpio_cfg(); platform_add_devices(camera_devices_qrd, ARRAY_SIZE(camera_devices_qrd)); } else if (machine_is_msm7627a_evb() || machine_is_msm8625_evb()) { platform_add_devices(camera_devices_evb, ARRAY_SIZE(camera_devices_evb)); } else if (machine_is_msm7627a_qrd3()) return; else platform_add_devices(camera_devices_msm, ARRAY_SIZE(camera_devices_msm)); #endif if (!machine_is_msm7627a_qrd1() || !machine_is_msm7627a_evb() || !machine_is_msm8625_evb()) register_i2c_devices(); #ifndef CONFIG_MSM_CAMERA_V4L2 rc = regulator_bulk_get(NULL, ARRAY_SIZE(regs_camera), regs_camera); if (rc) { pr_err("%s: could not get regulators: %d\n", __func__, rc); return; } rc = regulator_bulk_set_voltage(ARRAY_SIZE(regs_camera), regs_camera); if (rc) { pr_err("%s: could not set voltages: %d\n", __func__, rc); return; } #endif #if defined(CONFIG_MSM_CAMERA_V4L2) msm7x27a_init_cam(); #endif #ifndef CONFIG_MSM_CAMERA_V4L2 if (machine_is_msm7627a_qrd1()) { i2c_register_board_info(MSM_GSBI0_QUP_I2C_BUS_ID, i2c_camera_devices_qrd, ARRAY_SIZE(i2c_camera_devices_qrd)); } else if (machine_is_msm7627a_evb() || machine_is_msm8625_evb()) { pr_debug("machine_is_msm7627a_evb i2c_register_board_info\n"); i2c_register_board_info(MSM_GSBI0_QUP_I2C_BUS_ID, i2c_camera_devices_evb, ARRAY_SIZE(i2c_camera_devices_evb)); } else #endif pr_debug("i2c_register_board_info\n"); i2c_register_board_info(MSM_GSBI0_QUP_I2C_BUS_ID, i2c_camera_devices, ARRAY_SIZE(i2c_camera_devices)); }
/* LGE_CHANGE_E: 2012/11/2 [email protected] U0 Flash Porting */ void __init msm7627a_camera_init(void) { #ifndef CONFIG_MSM_CAMERA_V4L2 int rc; #endif pr_debug("msm7627a_camera_init Entered\n"); if (machine_is_msm7627a_qrd3() || machine_is_msm8625_qrd7()) { #ifdef CONFIG_OV7692 ov7692_cam_req_gpio[0].gpio = GPIO_SKU7_CAM_VGA_SHDN; ov7692_cam_gpio_set_tbl[0].gpio = GPIO_SKU7_CAM_VGA_SHDN; ov7692_cam_gpio_set_tbl[1].gpio = GPIO_SKU7_CAM_VGA_SHDN; msm_camera_sensor_ov5647_data.sensor_pwd = GPIO_SKU7_CAM_5MP_SHDN_N; msm_camera_sensor_ov5647_data.sensor_reset = GPIO_SKU7_CAM_5MP_CAMIF_RESET; #endif } /* LCD and camera power (VREG & LDO) init */ if (machine_is_msm7627a_evb() || machine_is_msm8625_evb() || machine_is_msm8625_evt() || machine_is_msm7627a_qrd3() || machine_is_msm8625_qrd7()) { #ifndef CONFIG_MSM_CAMERA_V4L2 lcd_camera_power_init(); #endif #ifdef CONFIG_OV5647 evb_camera_gpio_cfg(); #endif } #ifndef CONFIG_MSM_CAMERA_V4L2 if (machine_is_msm7627a_qrd1()) { qrd1_camera_gpio_cfg(); platform_add_devices(camera_devices_qrd, ARRAY_SIZE(camera_devices_qrd)); } else if (machine_is_msm7627a_evb() || machine_is_msm8625_evb() || machine_is_msm8625_evt() || machine_is_msm7627a_qrd3() || machine_is_msm8625_qrd7()) { platform_add_devices(camera_devices_evb, ARRAY_SIZE(camera_devices_evb)); } else if (machine_is_msm7627a_qrd3()) return; else platform_add_devices(camera_devices_msm, ARRAY_SIZE(camera_devices_msm)); #endif /* LGE_CHANGE_S: 2012/11/2 [email protected] U0 Camera Bring Up */ #ifndef CONFIG_MACH_LGE if (!machine_is_msm7627a_qrd1() || !machine_is_msm7627a_evb() || !machine_is_msm8625_evb() || !machine_is_msm8625_evt() || !machine_is_msm7627a_qrd3() || !machine_is_msm8625_qrd7()) register_i2c_devices(); #endif /* LGE_CHANGE_E: 2012/11/2 [email protected] U0 Camera Bring Up */ #ifndef CONFIG_MSM_CAMERA_V4L2 rc = regulator_bulk_get(NULL, ARRAY_SIZE(regs_camera), regs_camera); if (rc) { pr_err("%s: could not get regulators: %d\n", __func__, rc); return; } rc = regulator_bulk_set_voltage(ARRAY_SIZE(regs_camera), regs_camera); if (rc) { pr_err("%s: could not set voltages: %d\n", __func__, rc); return; } #endif #if defined(CONFIG_MSM_CAMERA_V4L2) msm7x27a_init_cam(); #endif #ifndef CONFIG_MSM_CAMERA_V4L2 if (machine_is_msm7627a_qrd1()) { i2c_register_board_info(MSM_GSBI0_QUP_I2C_BUS_ID, i2c_camera_devices_qrd, ARRAY_SIZE(i2c_camera_devices_qrd)); } else if (machine_is_msm7627a_evb() || machine_is_msm8625_evb() || machine_is_msm8625_evt() || machine_is_msm7627a_qrd3() || machine_is_msm8625_qrd7()) { pr_debug("machine_is_msm7627a_evb i2c_register_board_info\n"); i2c_register_board_info(MSM_GSBI0_QUP_I2C_BUS_ID, i2c_camera_devices_evb, ARRAY_SIZE(i2c_camera_devices_evb)); } else #endif pr_debug("i2c_register_board_info\n"); i2c_register_board_info(MSM_GSBI0_QUP_I2C_BUS_ID, i2c_camera_devices, ARRAY_SIZE(i2c_camera_devices)); /* LGE_CHANGE_S: 2012/11/2 [email protected] U0 Camera Bring Up */ #ifdef CONFIG_LEDS_AS364X lge_add_gpio_i2c_device(lge_init_i2c_camera); #endif /* LGE_CHANGE_E: 2012/11/2 [email protected] U0 Camera Bring Up */ }