summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-kai-sensors.c
diff options
context:
space:
mode:
authorSang-Hun Lee <sanlee@nvidia.com>2012-08-17 16:54:05 -0700
committerRohan Somvanshi <rsomvanshi@nvidia.com>2012-09-21 05:59:58 -0700
commitfe20b5ac6993496b533e54cbf1e59fcd4a146901 (patch)
treea7ff375da43000d7dc4b5c11ad33448d8219a54e /arch/arm/mach-tegra/board-kai-sensors.c
parent09960e3651c425a590636cada612d2c2bd9f8a26 (diff)
ARM: tegra: kai: adjust ov2710 power sequence
Update the power sequence to match the specification Bug 1031318 Reviewed-on: http://git-master/r/128945 (cherry picked from commit 5c13235fdd38404b3b785aa5c2d7e6f51e4bfb53) Change-Id: I60e57f3c662c6775e6ced9c4084e530d64fe1ed7 Signed-off-by: Sang-Hun Lee <sanlee@nvidia.com> Reviewed-on: http://git-master/r/133395 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-kai-sensors.c')
-rw-r--r--arch/arm/mach-tegra/board-kai-sensors.c40
1 files changed, 20 insertions, 20 deletions
diff --git a/arch/arm/mach-tegra/board-kai-sensors.c b/arch/arm/mach-tegra/board-kai-sensors.c
index 2a062ca76d70..6421b0fc9740 100644
--- a/arch/arm/mach-tegra/board-kai-sensors.c
+++ b/arch/arm/mach-tegra/board-kai-sensors.c
@@ -167,8 +167,15 @@ static int kai_camera_init(void)
static int kai_ov2710_power_on(void)
{
- gpio_direction_output(CAM2_POWER_DWN_GPIO, 0);
- mdelay(10);
+ if (kai_1v8_cam3 == NULL) {
+ kai_1v8_cam3 = regulator_get(NULL, "vdd_1v8_cam3");
+ if (WARN_ON(IS_ERR(kai_1v8_cam3))) {
+ pr_err("%s: couldn't get regulator vdd_1v8_cam3: %d\n",
+ __func__, (int)PTR_ERR(kai_1v8_cam3));
+ goto reg_get_vdd_1v8_cam3_fail;
+ }
+ }
+ regulator_enable(kai_1v8_cam3);
if (kai_vdd_cam3 == NULL) {
kai_vdd_cam3 = regulator_get(NULL, "vdd_cam3");
@@ -179,43 +186,36 @@ static int kai_ov2710_power_on(void)
}
}
regulator_enable(kai_vdd_cam3);
-
- if (kai_1v8_cam3 == NULL) {
- kai_1v8_cam3 = regulator_get(NULL, "vdd_1v8_cam3");
- if (WARN_ON(IS_ERR(kai_1v8_cam3))) {
- pr_err("%s: couldn't get regulator vdd_1v8_cam3: %d\n",
- __func__, (int)PTR_ERR(kai_1v8_cam3));
- goto reg_get_vdd_1v8_cam3_fail;
- }
- }
- regulator_enable(kai_1v8_cam3);
mdelay(5);
+ gpio_direction_output(CAM2_POWER_DWN_GPIO, 0);
+ mdelay(10);
+
gpio_direction_output(CAM2_RST_GPIO, 1);
mdelay(10);
return 0;
-reg_get_vdd_1v8_cam3_fail:
- kai_1v8_cam3 = NULL;
- regulator_put(kai_vdd_cam3);
-
reg_get_vdd_cam3_fail:
kai_vdd_cam3 = NULL;
+ regulator_put(kai_1v8_cam3);
+
+reg_get_vdd_1v8_cam3_fail:
+ kai_1v8_cam3 = NULL;
return -ENODEV;
}
static int kai_ov2710_power_off(void)
{
- gpio_direction_output(CAM2_POWER_DWN_GPIO, 1);
-
gpio_direction_output(CAM2_RST_GPIO, 0);
- if (kai_1v8_cam3)
- regulator_disable(kai_1v8_cam3);
+ gpio_direction_output(CAM2_POWER_DWN_GPIO, 1);
+
if (kai_vdd_cam3)
regulator_disable(kai_vdd_cam3);
+ if (kai_1v8_cam3)
+ regulator_disable(kai_1v8_cam3);
return 0;
}