summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlvin Park <apark@nvidia.com>2013-05-29 16:31:07 +0900
committerHarshada Kale <hkale@nvidia.com>2013-06-10 08:10:42 -0700
commitee9a820d950c8bc533a5738a6f476c9c698f4e76 (patch)
treecbfb05bd1da4a6aaf498a58e90f6ae62773f2cd1
parent1c086ecaffbe9248a234d65593051e02a59304b3 (diff)
Camera: Kernel: modified ov5693 power on/off sequence
1. modified ov5693 power on/off sequence 2. removed unused power rail 3. removed delay code Bug 1234944 Change-Id: I681088faeb3dd663bae1e3f827270da2270a65f2 Signed-off-by: Alvin Park <apark@nvidia.com> Reviewed-on: http://git-master/r/233584 (cherry picked from commit 1a6856f773b4a27d1d1035abea7958c0dc190b56) Reviewed-on: http://git-master/r/236899 Reviewed-by: Frank Chen <frankc@nvidia.com> Tested-by: Frank Chen <frankc@nvidia.com> Reviewed-by: Yin-Chia Yeh <yyeh@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Sachin Nikam <snikam@nvidia.com>
-rw-r--r--drivers/media/video/tegra/ov5693.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/media/video/tegra/ov5693.c b/drivers/media/video/tegra/ov5693.c
index 315a39963ea0..601da546831b 100644
--- a/drivers/media/video/tegra/ov5693.c
+++ b/drivers/media/video/tegra/ov5693.c
@@ -2634,7 +2634,6 @@ static int ov5693_power_off(struct ov5693_info *info)
if (0 > err)
return err;
info->power_on = false;
- ov5693_gpio_pwrdn(info, 1);
} else {
dev_err(&info->i2c_client->dev,
"%s ERR: has no power_off function\n", __func__);
@@ -2643,7 +2642,7 @@ static int ov5693_power_off(struct ov5693_info *info)
return err;
}
-static int ov5693_power_on(struct ov5693_info *info, bool standby)
+static int ov5693_power_on(struct ov5693_info *info)
{
struct ov5693_power_rail *pw = &info->regulators;
int err;
@@ -2656,8 +2655,6 @@ static int ov5693_power_on(struct ov5693_info *info, bool standby)
if (0 > err)
return err;
info->power_on = true;
- ov5693_gpio_pwrdn(info, standby ? 1 : 0);
- msleep(100);
} else {
dev_err(&info->i2c_client->dev,
"%s ERR: has no power_on function\n", __func__);
@@ -2687,12 +2684,13 @@ static int ov5693_pm_wr(struct ov5693_info *info, int pwr)
break;
case NVC_PWR_STDBY:
- err = ov5693_power_on(info, true);
+ err = ov5693_power_on(info);
+ ov5693_gpio_pwrdn(info, 1);
break;
case NVC_PWR_COMM:
case NVC_PWR_ON:
- err = ov5693_power_on(info, false);
+ err = ov5693_power_on(info);
break;
default:
@@ -2756,8 +2754,6 @@ static void ov5693_pm_init(struct ov5693_info *info)
ov5693_gpio_init(info);
- ov5693_regulator_get(info, &pw->dvdd, "dvdd");
-
ov5693_regulator_get(info, &pw->avdd, "avdd");
ov5693_regulator_get(info, &pw->dovdd, "dovdd");
@@ -3083,7 +3079,7 @@ static int ov5693_open(struct inode *inode, struct file *file)
file->private_data = info;
dev_dbg(&info->i2c_client->dev, "%s\n", __func__);
- err = ov5693_power_on(info, false);
+ err = ov5693_power_on(info);
return err;
}
@@ -3140,7 +3136,7 @@ static int ov5693_platform_power_on(struct ov5693_power_rail *pw)
goto ov5693_vcm_fail;
}
- ov5693_gpio_wr(info, OV5693_GPIO_TYPE_PWRDN, 0);
+ ov5693_gpio_wr(info, OV5693_GPIO_TYPE_PWRDN, 1);
usleep_range(10, 20);
err = regulator_enable(pw->avdd);
@@ -3152,7 +3148,7 @@ static int ov5693_platform_power_on(struct ov5693_power_rail *pw)
goto ov5693_iovdd_fail;
usleep_range(1, 2);
- ov5693_gpio_wr(info, OV5693_GPIO_TYPE_PWRDN, 1);
+ ov5693_gpio_wr(info, OV5693_GPIO_TYPE_PWRDN, 0);
usleep_range(300, 310);
@@ -3176,7 +3172,7 @@ static int ov5693_platform_power_off(struct ov5693_power_rail *pw)
regulators);
usleep_range(21, 25);
- ov5693_gpio_wr(info, OV5693_GPIO_TYPE_PWRDN, 0);
+ ov5693_gpio_wr(info, OV5693_GPIO_TYPE_PWRDN, 1);
usleep_range(1, 2);
regulator_disable(pw->dovdd);