summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-cardhu-sensors.c
diff options
context:
space:
mode:
authorErik Lilliebjerg <elilliebjerg@nvidia.com>2011-11-22 04:06:03 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:50:24 -0800
commitf07b43fe3613c6ce159a137a89fd94d8e87d7f29 (patch)
tree01dbe833daf0f036781a1df684d8b2cfe6066289 /arch/arm/mach-tegra/board-cardhu-sensors.c
parent9e7b0ff9e3e10fb8b322140ff86c257dc8cb849a (diff)
arm: tegra: cardhu: sh532u board support
Bug 865305 Change-Id: I1e300db033a22935bcc0cd6c24f8d9d3460b3475 Reviewed-on: http://git-master/r/66120 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com> Rebase-Id: R54cebc69c16bbedb4ed2dbf3fc33dbc34456cb57
Diffstat (limited to 'arch/arm/mach-tegra/board-cardhu-sensors.c')
-rw-r--r--arch/arm/mach-tegra/board-cardhu-sensors.c59
1 files changed, 12 insertions, 47 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu-sensors.c b/arch/arm/mach-tegra/board-cardhu-sensors.c
index 115f336e0229..055cd88395b0 100644
--- a/arch/arm/mach-tegra/board-cardhu-sensors.c
+++ b/arch/arm/mach-tegra/board-cardhu-sensors.c
@@ -463,53 +463,18 @@ static const struct i2c_board_info cardhu_i2c3_board_info[] = {
},
};
-static int sh532u_power_control(void *cdata, int is_enable, int which) {
- static struct regulator *vdd_2v8_cam1_af = NULL;
- static struct regulator *vdd_2v8_cam2_af = NULL;
-
- struct regulator *vdd_2v8_camx_af = (1 == which) ? vdd_2v8_cam1_af : vdd_2v8_cam2_af;
- char *vdd_2v8_camx_tag = (1 == which) ? "vdd_2v8_cam1_af" : "vdd_2v8_cam2_af";
-
- if (vdd_2v8_camx_af == NULL) {
- vdd_2v8_camx_af = regulator_get(NULL, vdd_2v8_camx_tag);
- if (WARN_ON(IS_ERR_OR_NULL(vdd_2v8_camx_af))) {
- pr_err("%s: couldn't get regulator %s:"
- " %ld\n", __func__, vdd_2v8_camx_tag, PTR_ERR(vdd_2v8_camx_af));
- vdd_2v8_camx_af = NULL;
- return -ENODEV;
- }
- }
- if (is_enable) {
- regulator_enable(vdd_2v8_camx_af);
- mdelay(20);
- } else
- regulator_disable(vdd_2v8_camx_af);
-
- return 0;
-}
-
-static int sh532u_left_init(void *cdata) {
- return sh532u_power_control(cdata, true, 1);
-}
-static int sh532u_left_deinit(void *cdata) {
- return sh532u_power_control(cdata, false, 1);
-}
-
-static int sh532u_right_init(void *cdata) {
- return sh532u_power_control(cdata, true, 2);
-}
-static int sh532u_right_deinit(void *cdata) {
- return sh532u_power_control(cdata, false, 2);
-}
-
-struct sh532u_platform_data sh532u_left_pdata = {
- .board_init = sh532u_left_init,
- .board_deinit = sh532u_left_deinit,
+static struct sh532u_platform_data sh532u_left_pdata = {
+ .num = 1,
+ .sync = 2,
+ .dev_name = "focuser",
+ .gpio_reset = TEGRA_GPIO_PBB0,
};
-struct sh532u_platform_data sh532u_right_pdata = {
- .board_init = sh532u_right_init,
- .board_deinit = sh532u_right_deinit,
+static struct sh532u_platform_data sh532u_right_pdata = {
+ .num = 2,
+ .sync = 1,
+ .dev_name = "focuser",
+ .gpio_reset = TEGRA_GPIO_PBB0,
};
static bool cardhu_tps61050_pm_flag = 0;
@@ -581,7 +546,7 @@ static struct i2c_board_info cardhu_i2c6_board_info[] = {
.platform_data = &cardhu_left_ov5650_data,
},
{
- I2C_BOARD_INFO("sh532uL", 0x72),
+ I2C_BOARD_INFO("sh532u", 0x72),
.platform_data = &sh532u_left_pdata,
},
};
@@ -592,7 +557,7 @@ static struct i2c_board_info cardhu_i2c7_board_info[] = {
.platform_data = &cardhu_right_ov5650_data,
},
{
- I2C_BOARD_INFO("sh532uR", 0x72),
+ I2C_BOARD_INFO("sh532u", 0x72),
.platform_data = &sh532u_right_pdata,
},
};