diff options
author | Sang-Hun Lee <sanlee@nvidia.com> | 2012-08-17 16:54:05 -0700 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2012-09-21 05:59:58 -0700 |
commit | fe20b5ac6993496b533e54cbf1e59fcd4a146901 (patch) | |
tree | a7ff375da43000d7dc4b5c11ad33448d8219a54e /arch/arm/mach-tegra/board-kai-sensors.c | |
parent | 09960e3651c425a590636cada612d2c2bd9f8a26 (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.c | 40 |
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; } |