/*  **************************************************************************
* 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;
}
Пример #2
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;
}