From 4323c16a694c908336bfbeaef4209a556cfee80a Mon Sep 17 00:00:00 2001 From: Wei Ding Date: Fri, 24 Feb 2017 21:35:09 +0800 Subject: [PATCH] ARM: dts: msm: Add support TOF sensor on msm8998 1. Change the power supply to fixed regulator of TOF sensor. 2. Add IRQ gpio for TOF sensor on msm8998. 3. Add TOF entry on msm8998 CDP device. CRs-Fixed: 2013683 Change-Id: Id518d6f6d9a2c9d34bc054371e6d9be103c02021 Signed-off-by: Wei Ding --- .../dts/qcom/msm8998-camera-sensor-cdp.dtsi | 51 +++++++++--------- .../dts/qcom/msm8998-camera-sensor-mtp.dtsi | 52 +++++++++++-------- .../msm8998-interposer-camera-sensor-cdp.dtsi | 6 ++- .../msm8998-interposer-camera-sensor-mtp.dtsi | 6 ++- .../msm8998-interposer-camera-sensor-qrd.dtsi | 6 ++- arch/arm/boot/dts/qcom/msm8998-pinctrl.dtsi | 8 +-- 6 files changed, 75 insertions(+), 54 deletions(-) diff --git a/arch/arm/boot/dts/qcom/msm8998-camera-sensor-cdp.dtsi b/arch/arm/boot/dts/qcom/msm8998-camera-sensor-cdp.dtsi index e7a61f42dff1..707eca4e9ddd 100644 --- a/arch/arm/boot/dts/qcom/msm8998-camera-sensor-cdp.dtsi +++ b/arch/arm/boot/dts/qcom/msm8998-camera-sensor-cdp.dtsi @@ -29,6 +29,16 @@ qcom,switch-source = <&pmi8998_switch1>; status = "ok"; }; + + actuator_regulator: gpio-regulator@0 { + compatible = "regulator-fixed"; + regulator-name = "rear_vana_regulator"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + enable-active-high; + gpio = <&tlmm 27 0>; + vin-supply = <&pmi8998_bob>; + }; }; &cci { @@ -37,14 +47,11 @@ reg = <0x0>; compatible = "qcom,actuator"; qcom,cci-master = <0>; - gpios = <&tlmm 27 0>; - qcom,gpio-vaf = <0>; - qcom,gpio-req-tbl-num = <0>; - qcom,gpio-req-tbl-flags = <0>; - qcom,gpio-req-tbl-label = "CAM_VAF"; - pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_actuator_vaf_active>; - pinctrl-1 = <&cam_actuator_vaf_suspend>; + cam_vaf-supply = <&actuator_regulator>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <0>; }; actuator1: qcom,actuator@1 { @@ -52,14 +59,11 @@ reg = <0x1>; compatible = "qcom,actuator"; qcom,cci-master = <1>; - gpios = <&tlmm 27 0>; - qcom,gpio-vaf = <0>; - qcom,gpio-req-tbl-num = <0>; - qcom,gpio-req-tbl-flags = <0>; - qcom,gpio-req-tbl-label = "CAM_VAF"; - pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_actuator_vaf_active>; - pinctrl-1 = <&cam_actuator_vaf_suspend>; + cam_vaf-supply = <&actuator_regulator>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <0>; }; ois0: qcom,ois@0 { @@ -78,24 +82,23 @@ status = "disabled"; }; - tof0:qcom,tof@0{ + tof0: qcom,tof@0 { cell-index = <0>; reg = <0x29>; compatible = "st,stmvl53l0"; qcom,cci-master = <0>; cam_cci-supply = <&pm8998_lvs1>; - cam_laser-supply = <&pmi8998_bob>; + cam_laser-supply = <&actuator_regulator>; qcom,cam-vreg-name = "cam_cci", "cam_laser"; qcom,cam-vreg-min-voltage = <0 0>; - qcom,cam-vreg-max-voltage = <0 3600000>; + qcom,cam-vreg-max-voltage = <0 2800000>; pinctrl-names = "cam_default", "cam_suspend"; pinctrl-0 = <&cam_tof_active>; pinctrl-1 = <&cam_tof_suspend>; - gpios = <&tlmm 27 0>, - <&tlmm 126 0>; - qcom,gpio-req-tbl-num = <0 1>; - qcom,gpio-req-tbl-flags = <0 0>; - qcom,gpio-req-tbl-label = "CAM_TOF", "CAM_CE"; + gpios = <&tlmm 126 0>; + qcom,gpio-req-tbl-num = <0>; + qcom,gpio-req-tbl-flags = <0>; + qcom,gpio-req-tbl-label = "CAM_CE"; }; eeprom0: qcom,eeprom@0 { diff --git a/arch/arm/boot/dts/qcom/msm8998-camera-sensor-mtp.dtsi b/arch/arm/boot/dts/qcom/msm8998-camera-sensor-mtp.dtsi index c5384eaf17a1..17dcfb560b73 100644 --- a/arch/arm/boot/dts/qcom/msm8998-camera-sensor-mtp.dtsi +++ b/arch/arm/boot/dts/qcom/msm8998-camera-sensor-mtp.dtsi @@ -29,6 +29,16 @@ qcom,switch-source = <&pmi8998_switch1>; status = "ok"; }; + + actuator_regulator: gpio-regulator@0 { + compatible = "regulator-fixed"; + regulator-name = "rear_vana_regulator"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + enable-active-high; + gpio = <&tlmm 27 0>; + vin-supply = <&pmi8998_bob>; + }; }; &cci { @@ -37,14 +47,11 @@ reg = <0x0>; compatible = "qcom,actuator"; qcom,cci-master = <0>; - gpios = <&tlmm 27 0>; - qcom,gpio-vaf = <0>; - qcom,gpio-req-tbl-num = <0>; - qcom,gpio-req-tbl-flags = <0>; - qcom,gpio-req-tbl-label = "CAM_VAF"; - pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_actuator_vaf_active>; - pinctrl-1 = <&cam_actuator_vaf_suspend>; + cam_vaf-supply = <&actuator_regulator>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <0>; }; actuator1: qcom,actuator@1 { @@ -52,33 +59,32 @@ reg = <0x1>; compatible = "qcom,actuator"; qcom,cci-master = <1>; - gpios = <&tlmm 27 0>; - qcom,gpio-vaf = <0>; - qcom,gpio-req-tbl-num = <0>; - qcom,gpio-req-tbl-flags = <0>; - qcom,gpio-req-tbl-label = "CAM_VAF"; - pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_actuator_vaf_active>; - pinctrl-1 = <&cam_actuator_vaf_suspend>; + cam_vaf-supply = <&actuator_regulator>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <0>; }; - tof0:qcom,tof@0{ + + tof0: qcom,tof@0 { cell-index = <0>; reg = <0x29>; compatible = "st,stmvl53l0"; qcom,cci-master = <0>; cam_cci-supply = <&pm8998_lvs1>; - cam_laser-supply = <&pmi8998_bob>; + cam_laser-supply = <&actuator_regulator>; qcom,cam-vreg-name = "cam_cci", "cam_laser"; qcom,cam-vreg-min-voltage = <0 0>; - qcom,cam-vreg-max-voltage = <0 3600000>; + qcom,cam-vreg-max-voltage = <0 2800000>; pinctrl-names = "cam_default", "cam_suspend"; pinctrl-0 = <&cam_tof_active>; pinctrl-1 = <&cam_tof_suspend>; - gpios = <&tlmm 27 0>, <&tlmm 126 0>; - qcom,gpio-req-tbl-num = <0 1>; - qcom,gpio-req-tbl-flags = <0 0>; - qcom,gpio-req-tbl-label = "CAM_TOF", "CAM_CE"; + gpios = <&tlmm 126 0>; + qcom,gpio-req-tbl-num = <0>; + qcom,gpio-req-tbl-flags = <0>; + qcom,gpio-req-tbl-label = "CAM_CE"; }; + ois0: qcom,ois@0 { cell-index = <0>; reg = <0x0>; diff --git a/arch/arm/boot/dts/qcom/msm8998-interposer-camera-sensor-cdp.dtsi b/arch/arm/boot/dts/qcom/msm8998-interposer-camera-sensor-cdp.dtsi index 52d0fdb4a523..41e783e6bf1f 100644 --- a/arch/arm/boot/dts/qcom/msm8998-interposer-camera-sensor-cdp.dtsi +++ b/arch/arm/boot/dts/qcom/msm8998-interposer-camera-sensor-cdp.dtsi @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -144,6 +144,10 @@ /delete-node/qcom,ois@0; }; +&soc { + /delete-node/gpio-regulator@0; +}; + &cci { actuator0: qcom,actuator@0 { cell-index = <0>; diff --git a/arch/arm/boot/dts/qcom/msm8998-interposer-camera-sensor-mtp.dtsi b/arch/arm/boot/dts/qcom/msm8998-interposer-camera-sensor-mtp.dtsi index 52d0fdb4a523..722c18a26388 100644 --- a/arch/arm/boot/dts/qcom/msm8998-interposer-camera-sensor-mtp.dtsi +++ b/arch/arm/boot/dts/qcom/msm8998-interposer-camera-sensor-mtp.dtsi @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -132,6 +132,10 @@ }; }; +&soc { + /delete-node/gpio-regulator@0; +}; + &cci { /delete-node/qcom,camera@0; /delete-node/qcom,camera@1; diff --git a/arch/arm/boot/dts/qcom/msm8998-interposer-camera-sensor-qrd.dtsi b/arch/arm/boot/dts/qcom/msm8998-interposer-camera-sensor-qrd.dtsi index 87b1146bd361..8b68ece2239f 100644 --- a/arch/arm/boot/dts/qcom/msm8998-interposer-camera-sensor-qrd.dtsi +++ b/arch/arm/boot/dts/qcom/msm8998-interposer-camera-sensor-qrd.dtsi @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -170,6 +170,10 @@ }; }; +&soc { + /delete-node/gpio-regulator@0; +}; + &cci { /delete-node/qcom,camera@0; /delete-node/qcom,camera@1; diff --git a/arch/arm/boot/dts/qcom/msm8998-pinctrl.dtsi b/arch/arm/boot/dts/qcom/msm8998-pinctrl.dtsi index 4914363b414a..d2e18db982ef 100644 --- a/arch/arm/boot/dts/qcom/msm8998-pinctrl.dtsi +++ b/arch/arm/boot/dts/qcom/msm8998-pinctrl.dtsi @@ -956,12 +956,12 @@ cam_tof_active: cam_tof_active { mux { - pins = "gpio27", "gpio126"; + pins = "gpio26", "gpio126"; function = "gpio"; }; config { - pins = "gpio27", "gpio126"; + pins = "gpio26", "gpio126"; bias-disable; drive-strength = <2>; /* 2 MA */ }; @@ -969,12 +969,12 @@ cam_tof_suspend: cam_tof_suspend { mux { - pins = "gpio27", "gpio126"; + pins = "gpio26", "gpio126"; function = "gpio"; }; config { - pins = "gpio27", "gpio126"; + pins = "gpio26", "gpio126"; bias-pull-down; /* PULL DOWN */ drive-strength = <2>; /* 2 MA */ };