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 _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 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; }
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 GC0328_BeforeSnapshot(uint32_t param) { uint16_t shutter = 0x00; uint16_t temp_reg = 0x00; uint16_t temp_r =0x00; uint16_t temp_g =0x00; uint16_t temp_b =0x00; BOOLEAN b_AEC_on; SENSOR_TRACE("GC0328_BeforeSnapshot "); printk("SENSOR: set flash on beforeSnapShot, g_flash_mode = %d \n", g_flash_mode_en); if (g_flash_mode_en) { //Sensor_SetFlash(0x11); // high light Sensor_SetFlash(1); } #if 0 if(GC0328_ReadReg(0X41) & 0x08 == 0x08) //AEC on b_AEC_on = SENSOR_TRUE; else b_AEC_on = SENSOR_FALSE; temp_reg = GC0328_ReadReg(0xdb); temp_r = GC0328_ReadReg(0xcd); temp_g = GC0328_ReadReg(0xce); temp_b = GC0328_ReadReg(0xcf); shutter = (GC0328_ReadReg(0x03)<<8) | (GC0328_ReadReg(0x04)&0x00ff) ; shutter = shutter /2; if(b_AEC_on) GC0328_WriteReg(0x41,GC0328_ReadReg(0x41) & 0xc5); //0x01); SENSOR_Sleep(300); ///12m Sensor_SetMCLK(12); GC0328_WriteReg(0x03,shutter/256); GC0328_WriteReg(0x04,shutter & 0x00ff); //SENSOR_TRACE("GC0328_BeforeSnapshot, temp_r=%x,temp_reg=%x, final = %x ",temp_r,temp_reg, temp_r*temp_reg/ 0x80); temp_r = (temp_r*temp_reg) / 0x80; temp_g = (temp_g*temp_reg) / 0x80; temp_b = (temp_b*temp_reg) / 0x80; if(b_AEC_on) { GC0328_WriteReg(0xcd, temp_r); GC0328_WriteReg(0xce, temp_g); GC0328_WriteReg(0xcf , temp_b); } //SENSOR_TRACE("GC0328_BeforeSnapshot, temp_r=%x,temp_g=%x, temp_b = %x ",temp_r,temp_g,temp_b); SENSOR_Sleep(300); #endif return 0; }
LOCAL uint32_t _ov7675_PowerOn(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_ov5640_yuv_info.reset_pulse_width; SENSOR_PRINT("dvdd_val %d, dvdd_val %d, avdd_val %d, iovdd_val %d", power_on, dvdd_val, avdd_val, iovdd_val); SENSOR_PRINT("power_down %d reset_level %d", power_down, reset_level); if (SENSOR_TRUE == power_on) { Sensor_PowerDown(power_down); usleep(10*1000); Sensor_SetIovddVoltage(iovdd_val); usleep(5*1000); Sensor_SetAvddVoltage(avdd_val); usleep(5*1000); Sensor_SetMCLK(SENSOR_DEFALUT_MCLK); Sensor_PowerDown(!power_down); usleep(20*1000); } else { Sensor_PowerDown(power_down); usleep(2*1000); Sensor_SetMCLK(SENSOR_DISABLE_MCLK); usleep(2*1000); Sensor_SetAvddVoltage(SENSOR_AVDD_CLOSED); Sensor_SetIovddVoltage(SENSOR_AVDD_CLOSED); usleep(20*1000); } SENSOR_PRINT("(1:on, 0:off): %d", 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; }