/* ************************************************************************** * FunctionName: hi843s_ofilm_check_sensor; * Description : NA; * Input : NA; * Output : NA; * ReturnValue : NA; * Other : NA; ***************************************************************************/ int hi843s_ofilm_power(camera_power_state power) { if (power == POWER_ON) { k3_ispldo_power_sensor(power, S_CAMERA_IO_VDD); k3_socgpio_power_sensor(1, S_CAMERA_ANALOG_VDD);//for external AVDD LDO k3_ispldo_power_sensor(power, S_CAMERA_ANALOG_VDD); k3_ispldo_power_sensor(power, M_CAMERA_CORE_VDD);//power on main sensor's DVDD udelay(100); k3_ispio_ioconfig(&hi843s_ofilm_sensor, power); k3_ispgpio_power_sensor(&hi843s_ofilm_sensor, power); k3_isp_io_enable_mclk(MCLK_ENABLE, hi843s_ofilm_sensor.sensor_index); msleep(3); k3_ispgpio_reset_sensor(hi843s_ofilm_sensor.sensor_index, power, hi843s_ofilm_sensor.power_conf.reset_valid); msleep(5); } else { k3_ispio_deinit_csi(hi843s_ofilm_sensor.mipi_index); k3_ispgpio_reset_sensor(hi843s_ofilm_sensor.sensor_index, power, hi843s_ofilm_sensor.power_conf.reset_valid); k3_ispio_ioconfig(&hi843s_ofilm_sensor, power); k3_ispgpio_power_sensor(&hi843s_ofilm_sensor, power); udelay(100); k3_isp_io_enable_mclk(MCLK_DISABLE, hi843s_ofilm_sensor.sensor_index); k3_ispldo_power_sensor(power, M_CAMERA_CORE_VDD);//power off main sensor' DVDD k3_ispldo_power_sensor(power, S_CAMERA_ANALOG_VDD); k3_socgpio_power_sensor(0, S_CAMERA_ANALOG_VDD);//for external AVDD LDO k3_ispldo_power_sensor(power, S_CAMERA_IO_VDD); msleep(5); } return 0; }
/*sonyimx214 reset function*/ static int sonyimx214_reset(camera_power_state power_state) { print_debug("Enter %s.\n", __func__); sonyimx214_sensor.old_flip = 0; if (POWER_ON == power_state) { k3_isp_io_enable_mclk(MCLK_ENABLE, sonyimx214_sensor.sensor_index); udelay(100); k3_ispgpio_reset_sensor(sonyimx214_sensor.sensor_index, power_state, sonyimx214_sensor.power_conf.reset_valid); udelay(500); } else { k3_ispgpio_reset_sensor(sonyimx214_sensor.sensor_index, power_state, sonyimx214_sensor.power_conf.reset_valid); udelay(10); k3_isp_io_enable_mclk(MCLK_DISABLE, sonyimx214_sensor.sensor_index); } return 0; }