int
ov8865_rear_power_up(
        hwsensor_intf_t* si)
{
    int ret = 0;
    sensor_t* sensor = NULL;
    sensor = I2S(si);

    //step1 enable sensor afvdd 2.8v
    //enable mcam2 pmic ldo2 2.8v
    //enable mcam1 ldo25 2.8v

    //step2 enable sensor avdd 2.8v
    //enable mcam2 pmic ldo1 2.8v
    //enable mcam1 ldo21 2.8v

    //step3 enable sensor iovdd 1.8v
    //enable mcam2 pmic ldo3 1.8v
    //enable mcam1 lsw51 1.8v

    //step4 enable sensor dvdd 1.2v
    //enable mcam2 pmic buck1 1.2v
    //enable mcam1 ldo20 1.2v

    //step5 enable mclk0 20mhz
    //enable mclk0 20mhz

    //step6 pullup sensor reset
    //pullup gpio33
    //pullup gpio25

    ret = hw_sensor_power_up(sensor);

    return ret;
}
int
imx179_front_power_up(
        hwsensor_intf_t* si)
{
	int ret = 0;
	sensor_t* sensor = NULL;
	sensor = I2S(si);
	ret = hw_sensor_power_up(sensor);
	return ret;
}
int
ov8858_power_up(
        hwsensor_intf_t* si)
{
	int ret = 0;
	sensor_t* sensor = NULL;
	sensor = I2S(si);
	ret = hw_sensor_power_up(sensor);
	return ret;
}
int
    imx278_carrera_power_up(
        hwsensor_intf_t* si)
{
    int ret = 0;
    sensor_t* sensor = NULL;
    sensor = I2S(si);

    ret = hw_sensor_power_up(sensor);

    return ret;
}
int
imx214_sunny_power_up(
        hwsensor_intf_t* si)
{
    int ret = 0;
    sensor_t* sensor = NULL;
    sensor = I2S(si);

    ret = hw_sensor_power_up(sensor);

    return ret;
}
int
    ov8865_carrera_power_up(
        hwsensor_intf_t* si)
{
    int ret = 0;
    sensor_t* sensor = NULL;
    sensor = I2S(si);
    if(!is_poweron) {
        ret = hw_sensor_power_up(sensor);
        cam_notice("+++ov8865_carrera power on!+++");
        is_poweron = true;
    } else {
        cam_notice("+++not power on+++");
    }
    return ret;
}
int
ar1335_power_up(
        hwsensor_intf_t* si)
{
	int ret = 0, rc = 0;
	sensor_t* sensor = NULL;
	hwsensor_board_info_t *sensor_info = NULL;

	sensor = I2S(si);
	sensor_info = sensor->board_info;
	if(!sensor_info->ldo->consumer)
	{
		rc = devm_regulator_bulk_get(&(ar1335_pdev->dev), sensor_info->ldo_num, sensor_info->ldo);
		if (rc < 0)
		{
			cam_err("%s failed %d\n", __func__, __LINE__);
		}
	}

	ret = hw_sensor_power_up(sensor);
	return ret;
}
int
imx278_power_up(
        hwsensor_intf_t* si)
{
    int ret = 0;
    sensor_t* sensor = NULL;
    sensor = I2S(si);
   cam_info("enter %s. index = %d name = %s", __func__, sensor->board_info->sensor_index, sensor->board_info->name);
   if (hw_is_fpga_board()) {
		ret = do_sensor_power_on(sensor->board_info->sensor_index, sensor->board_info->name);
	} else {
		ret = hw_sensor_power_up(sensor);
	}
    if (0 == ret )
    {
        cam_info("%s. power up sensor success.", __func__);
    }
    else
    {
        cam_err("%s. power up sensor fail.", __func__);
    }
    return ret;
}