LOCAL uint32_t _ov8830_PowerOn(uint32_t power_on)
{
	SENSOR_AVDD_VAL_E dvdd_val = g_ov8830_mipi_raw_info.dvdd_val;
	SENSOR_AVDD_VAL_E avdd_val = g_ov8830_mipi_raw_info.avdd_val;
	SENSOR_AVDD_VAL_E iovdd_val = g_ov8830_mipi_raw_info.iovdd_val;
	BOOLEAN power_down = g_ov8830_mipi_raw_info.power_down_level;
	BOOLEAN reset_level = g_ov8830_mipi_raw_info.reset_pulse_level;

	if (SENSOR_TRUE == power_on) {
		Sensor_PowerDown(power_down);
		// Open power
		Sensor_SetMonitorVoltage(SENSOR_AVDD_2800MV);
		Sensor_SetVoltage(dvdd_val, avdd_val, iovdd_val);
		usleep(20*1000);
		Sensor_SetMCLK(SENSOR_DEFALUT_MCLK);
		usleep(10*1000);
		Sensor_PowerDown(!power_down);
		// Reset sensor
		Sensor_Reset(reset_level);
	} else {
		Sensor_PowerDown(power_down);
		Sensor_SetMCLK(SENSOR_DISABLE_MCLK);
		Sensor_SetVoltage(SENSOR_AVDD_CLOSED, SENSOR_AVDD_CLOSED, SENSOR_AVDD_CLOSED);
		Sensor_SetMonitorVoltage(SENSOR_AVDD_CLOSED);
	}
	SENSOR_PRINT("SENSOR_ov8830: _ov8830_Power_On(1:on, 0:off): %d", power_on);
	return SENSOR_SUCCESS;
}
LOCAL uint32_t SP0A19_Power_On(uint32_t power_on)
{
	SENSOR_AVDD_VAL_E	dvdd_val=g_SP0A19_yuv_info.dvdd_val;
	SENSOR_AVDD_VAL_E	avdd_val=g_SP0A19_yuv_info.avdd_val;
	SENSOR_AVDD_VAL_E	iovdd_val=g_SP0A19_yuv_info.iovdd_val;  
	BOOLEAN				power_down=g_SP0A19_yuv_info.power_down_level;	    
	BOOLEAN				reset_level=g_SP0A19_yuv_info.reset_pulse_level;
	uint32_t			reset_width=g_SP0A19_yuv_info.reset_pulse_width;	    

	if(SENSOR_TRUE==power_on)
	{
		Sensor_PowerDown(power_down);	
		// Open power
		Sensor_SetVoltage(dvdd_val, avdd_val, iovdd_val);
		//Sensor_SetMonitorVoltage(SENSOR_AVDD_2800MV);
		SENSOR_Sleep(50);
		Sensor_SetMCLK(SENSOR_DEFALUT_MCLK); 
		SENSOR_Sleep(20);
		Sensor_PowerDown(!power_down);
		// Reset sensor		
		Sensor_Reset(reset_level);		
	}
	else
	{
		Sensor_SetVoltage(dvdd_val, avdd_val, iovdd_val);    
		SENSOR_Sleep(20);
		Sensor_PowerDown(power_down);
		SENSOR_Sleep(20);
		Sensor_SetMCLK(SENSOR_DISABLE_MCLK);         
		Sensor_SetVoltage(SENSOR_AVDD_CLOSED, SENSOR_AVDD_CLOSED, SENSOR_AVDD_CLOSED);  
		//Sensor_SetMonitorVoltage(SENSOR_AVDD_CLOSED);
	}

	return SENSOR_SUCCESS;
}
Beispiel #3
0
LOCAL uint32_t _BF3905_PowerOn(uint32_t power_on)
{
	SENSOR_AVDD_VAL_E dvdd_val=g_BF3905_mipi_yuv_info.dvdd_val;
	SENSOR_AVDD_VAL_E avdd_val=g_BF3905_mipi_yuv_info.avdd_val;
	SENSOR_AVDD_VAL_E iovdd_val=g_BF3905_mipi_yuv_info.iovdd_val;  
	BOOLEAN power_down=g_BF3905_mipi_yuv_info.power_down_level;        
	BOOLEAN reset_level=g_BF3905_mipi_yuv_info.reset_pulse_level;
	//uint32_t reset_width=g_BF3905_mipi_yuv_info.reset_pulse_width;        

	if(SENSOR_TRUE==power_on)
	{
		Sensor_PowerDown(power_down);	
		// Open power
		Sensor_SetVoltage(dvdd_val, avdd_val, iovdd_val);    
		SENSOR_Sleep(20);
		Sensor_SetMCLK(SENSOR_DEFALUT_MCLK); 
		SENSOR_Sleep(10);
		Sensor_PowerDown(!power_down);
		// Reset sensor		
		Sensor_Reset(reset_level);	
		CMR_LOGE("qzhu BF3905 power_on is true\n");	
	}
	else
	{
		Sensor_PowerDown(power_down);
 SENSOR_Sleep(10);
		Sensor_SetMCLK(SENSOR_DISABLE_MCLK);         
		Sensor_SetVoltage(SENSOR_AVDD_CLOSED, SENSOR_AVDD_CLOSED, SENSOR_AVDD_CLOSED);   
		CMR_LOGE("qzhu BF3905 power_on is false\n");	     
	}    

	return SENSOR_SUCCESS;
}
LOCAL uint32_t _GC0328_PowerOn(uint32_t power_on)
{
	SENSOR_AVDD_VAL_E dvdd_val = g_GC0328_yuv_info.dvdd_val;
	SENSOR_AVDD_VAL_E avdd_val = g_GC0328_yuv_info.avdd_val;
	SENSOR_AVDD_VAL_E iovdd_val = g_GC0328_yuv_info.iovdd_val;
	BOOLEAN power_down = g_GC0328_yuv_info.power_down_level;
	BOOLEAN reset_level = g_GC0328_yuv_info.reset_pulse_level;
	//uint32_t reset_width=g_GC0328_yuv_info.reset_pulse_width;

	printk("SENSOR: _GC0328_Power_On_start(1:on, 0:off): %d \n", power_on);

	if (SENSOR_TRUE == power_on) {
		Sensor_PowerDown(power_down);
		// Open power
		//Sensor_SetVoltage(dvdd_val, avdd_val, iovdd_val);
		Sensor_SetVoltage(SENSOR_AVDD_CLOSED, avdd_val, iovdd_val);
		msleep(20);
		Sensor_SetMCLK(SENSOR_DEFALUT_MCLK);
		msleep(10);
		Sensor_PowerDown(!power_down);
		// Reset sensor
		Sensor_Reset(reset_level);
	} else {
		Sensor_PowerDown(power_down);
		Sensor_SetMCLK(SENSOR_DISABLE_MCLK);
		Sensor_SetVoltage(SENSOR_AVDD_CLOSED, SENSOR_AVDD_CLOSED,
				  SENSOR_AVDD_CLOSED);
	}
	printk("SENSOR: _GC0328_Power_On(1:on, 0:off): %d \n", power_on);
	return SENSOR_SUCCESS;
}
LOCAL uint32_t _ov7675_Power_On(uint32_t power_on)
{
    SENSOR_AVDD_VAL_E		dvdd_val=g_OV7675_yuv_info.dvdd_val;
    SENSOR_AVDD_VAL_E		avdd_val=g_OV7675_yuv_info.avdd_val;
    SENSOR_AVDD_VAL_E		iovdd_val=g_OV7675_yuv_info.iovdd_val;
//    BOOLEAN 				power_down=g_OV7675_yuv_info.power_down_level;
    BOOLEAN 				reset_level=g_OV7675_yuv_info.reset_pulse_level;
    uint32_t 				reset_width=g_OV7675_yuv_info.reset_pulse_width;

    if(1==power_on)
    {
        Sensor_SetVoltage(dvdd_val, avdd_val, iovdd_val);
 //       GPIO_SetSensorPower(TRUE);
  //      GPIO_SetFrontSensorPwdn((BOOLEAN)!power_down);

        // Open Mclk in default frequency
        Sensor_SetMCLK(SENSOR_DEFALUT_MCLK);

        SENSOR_Sleep(20);
        Sensor_SetResetLevel(reset_level);
        SENSOR_Sleep(reset_width);
        Sensor_SetResetLevel((BOOLEAN)!reset_level);
        SENSOR_Sleep(100);
    }
    else
    {
//        GPIO_SetFrontSensorPwdn(power_down);

        Sensor_SetMCLK(SENSOR_DISABLE_MCLK);
//        GPIO_SetSensorPower(FALSE);
        Sensor_SetVoltage(SENSOR_AVDD_CLOSED, SENSOR_AVDD_CLOSED, SENSOR_AVDD_CLOSED);
    }

    SENSOR_TRACE("SENSOR: _ov7675_Power_On(1:on, 0:off): %d", power_on);

    return 0;
}
LOCAL uint32_t _OV7690_Power_On(uint32_t power_on)
{
    SENSOR_AVDD_VAL_E		dvdd_val=g_OV7690_yuv_info.dvdd_val;
    SENSOR_AVDD_VAL_E		avdd_val=g_OV7690_yuv_info.avdd_val;
    SENSOR_AVDD_VAL_E		iovdd_val=g_OV7690_yuv_info.iovdd_val;  
    BOOLEAN 				power_down=g_OV7690_yuv_info.power_down_level;	    
    BOOLEAN 				reset_level=g_OV7690_yuv_info.reset_pulse_level;
    uint32_t 				reset_width=g_OV7690_yuv_info.reset_pulse_width;	    
    
    if(DCAM_TRUE==power_on)
    {
        Sensor_SetVoltage(dvdd_val, avdd_val, iovdd_val);
        
        Sensor_PowerDown(!power_down);

        // Open Mclk in default frequency
        Sensor_SetMCLK(SENSOR_DEFALUT_MCLK);   
        
        DCAM_Sleep(20);
        Sensor_SetResetLevel(reset_level);
        DCAM_Sleep(reset_width);
        Sensor_SetResetLevel(!reset_level);
        DCAM_Sleep(100);
    }
    else
    {
        Sensor_PowerDown(power_down);

        Sensor_SetMCLK(SENSOR_DISABLE_MCLK);           

        Sensor_SetVoltage(SENSOR_AVDD_CLOSED, SENSOR_AVDD_CLOSED, SENSOR_AVDD_CLOSED);        
    }

    SENSOR_TRACE("SENSOR: _OV7690_Power_On(1:on, 0:off): %d", power_on);    
    
    return DCAM_SUCCESS;
}