diff options
author | Alvin Park <apark@nvidia.com> | 2013-05-29 16:31:07 +0900 |
---|---|---|
committer | Harshada Kale <hkale@nvidia.com> | 2013-06-10 08:10:42 -0700 |
commit | ee9a820d950c8bc533a5738a6f476c9c698f4e76 (patch) | |
tree | cbfb05bd1da4a6aaf498a58e90f6ae62773f2cd1 | |
parent | 1c086ecaffbe9248a234d65593051e02a59304b3 (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.c | 20 |
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); |