int altek6045_power_off(const hwextisp_intf_t* i) { return misp_exit(); #if 0 altek6045_private_data_t* pdata = NULL; altek6045_t* mini_isp = NULL; cam_notice("enter %s.", __func__); mini_isp = I2A(i); pdata = (altek6045_private_data_t *)mini_isp->pdata; if (ncp6925_ctrl.func_tbl->pmic_seq_config) { ret = ncp6925_ctrl.func_tbl->pmic_seq_config(&ncp6925_ctrl, VOUT_LDO_4, VOLTAGE_1P8V, MINI_ISP_POWER_OFF); } udelay(5); if (ncp6925_ctrl.func_tbl->pmic_seq_config) { ret = ncp6925_ctrl.func_tbl->pmic_seq_config(&ncp6925_ctrl, VOUT_LDO_5, VOLTAGE_1P1V, MINI_ISP_POWER_OFF); } udelay(5); gpio_direction_output(pdata->pin[ISP_DVDD], MINI_ISP_POWER_OFF); msleep(2); #endif }
int hw_sensor_power_down(sensor_t *s_ctrl) { struct sensor_power_setting_array *power_setting_array = &s_ctrl->power_setting_array; struct sensor_power_setting *power_setting = NULL; int index = 0, rc = 0; struct hisi_pmic_ctrl_t *pmic_ctrl = NULL; cam_debug("%s enter.", __func__); for (index = (power_setting_array->size - 1); index >= 0; index--) { power_setting = &power_setting_array->power_setting[index]; switch(power_setting->seq_type) { case SENSOR_DVDD: rc = hw_sensor_ldo_config(LDO_DVDD, s_ctrl->board_info, power_setting, POWER_OFF); break; case SENSOR_DVDD2: rc = hw_sensor_ldo_config(LDO_DVDD2, s_ctrl->board_info, power_setting, POWER_OFF); break; case SENSOR_IOVDD: rc = hw_sensor_ldo_config(LDO_IOPW, s_ctrl->board_info, power_setting, POWER_OFF); break; case SENSOR_AVDD: rc = hw_sensor_ldo_config(LDO_AVDD, s_ctrl->board_info, power_setting, POWER_OFF); break; case SENSOR_AVDD2: rc = hw_sensor_ldo_config(LDO_AVDD2, s_ctrl->board_info, power_setting, POWER_OFF); break; case SENSOR_VCM_AVDD: rc = hw_sensor_ldo_config(LDO_VCM, s_ctrl->board_info, power_setting, POWER_OFF); break; case SENSOR_VCM_AVDD2: rc = hw_sensor_ldo_config(LDO_VCM2, s_ctrl->board_info, power_setting, POWER_OFF); break; case SENSOR_MCLK: hw_mclk_config(s_ctrl, power_setting, POWER_OFF); break; case SENSOR_I2C: break; case SENSOR_CHECK_LEVEL: break; case SENSOR_PWDN: rc = hw_sensor_gpio_config(PWDN, s_ctrl->board_info, power_setting, POWER_OFF); break; case SENSOR_RST: rc = hw_sensor_gpio_config(RESETB, s_ctrl->board_info, power_setting, POWER_OFF); break; case SENSOR_VCM_PWDN: rc = hw_sensor_gpio_config(VCM, s_ctrl->board_info, power_setting, POWER_OFF); break; case SENSOR_SUSPEND: rc = hw_sensor_gpio_config(SUSPEND, s_ctrl->board_info, power_setting, POWER_OFF); break; case SENSOR_RST2: rc = hw_sensor_gpio_config(RESETB2, s_ctrl->board_info, power_setting, POWER_OFF); break; case SENSOR_PMIC: rc = hw_sensor_pmic_config(s_ctrl->board_info, power_setting, POWER_OFF); break; case SENSOR_CS: rc = misp_exit(); break; default: cam_err("%s invalid seq_type.", __func__); break; } } pmic_ctrl = hisi_get_pmic_ctrl(); if(pmic_ctrl != NULL) { pmic_ctrl->func_tbl->pmic_off(pmic_ctrl); } return rc; }
int altek6045_power_off(const hwextisp_intf_t* i) { return misp_exit(); }