aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWei Ding <weiding@codeaurora.org>2014-03-27 16:23:37 +0800
committerWei Ding <weiding@codeaurora.org>2014-04-14 12:06:15 +0800
commit902d372bb117ee055b14a3d35286a88e033f25e5 (patch)
tree8b9093ffd7918094881e4d6c7ac0b93954d00a9a
parent6ddb099c2e12d0f526f56eea7a8de59ba0347b86 (diff)
msm: msm8916: camera: Add parse gpio-af-pwdm propery
The VCM of QRD msm8916 is controlled by gpio, parse gpio-af-pwdm property function is needed. Change-Id: Ie6558e0424441434d2dc435a4d44e3b67fcad5bf Signed-off-by: Wei Ding <weiding@codeaurora.org>
-rw-r--r--drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_dt_util.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_dt_util.c b/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_dt_util.c
index bb9cfccf16d..b31c00189e0 100644
--- a/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_dt_util.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_dt_util.c
@@ -811,6 +811,25 @@ int msm_camera_init_gpio_pin_tbl(struct device_node *of_node,
gconf->gpio_num_info->gpio_num[SENSOR_GPIO_STANDBY]);
}
+ rc = of_property_read_u32(of_node, "qcom,gpio-af-pwdm", &val);
+ if (rc != -EINVAL) {
+ if (rc < 0) {
+ pr_err("%s:%d read qcom,gpio-af-pwdm failed rc %d\n",
+ __func__, __LINE__, rc);
+ goto ERROR;
+ } else if (val >= gpio_array_size) {
+ pr_err("%s:%d qcom,gpio-af-pwdm invalid %d\n",
+ __func__, __LINE__, val);
+ rc = -EINVAL;
+ goto ERROR;
+ }
+ gconf->gpio_num_info->gpio_num[SENSOR_GPIO_AF_PWDM] =
+ gpio_array[val];
+ gconf->gpio_num_info->valid[SENSOR_GPIO_AF_PWDM] = 1;
+ CDBG("%s qcom,gpio-af-pwdm %d\n", __func__,
+ gconf->gpio_num_info->gpio_num[SENSOR_GPIO_AF_PWDM]);
+ }
+
if (of_property_read_bool(of_node, "qcom,gpio-flash-en") == true) {
rc = of_property_read_u32(of_node, "qcom,gpio-flash-en", &val);
if (rc < 0) {