]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ARM: dts: Qualcomm APQ8060 DragonBoard ALS sensor
authorLinus Walleij <linus.walleij@linaro.org>
Sat, 13 May 2017 14:15:53 +0000 (16:15 +0200)
committerAndy Gross <andy.gross@linaro.org>
Tue, 6 Jun 2017 02:26:42 +0000 (21:26 -0500)
This adds the Capella CM3605 ambient light and proximity sensor
to the APQ8060 DragonBoard device tree. Notice that we also set
up pin config for the AOUT line and GPIO lines, and that we set
the default trigger on the infrared LED to associate with the
"cm3605" trigger so the IR LED is controlled by this the CM3605
driver.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts

index 2da1413f5720bd264e93c5280333de935779b26f..5225e489ef52c5d55f7fe0fad07c09ef490c2179 100644 (file)
@@ -23,6 +23,7 @@
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
 #include "qcom-msm8660.dtsi"
 
 / {
                };
        };
 
+       /*
+        * Capella CM3605 light and proximity sensor mounted directly
+        * on the sensor board.
+        */
+       cm3605 {
+               compatible = "capella,cm3605";
+               vdd-supply = <&pm8058_l14>; // 2.85V
+               aset-gpios = <&pm8058_gpio 35 GPIO_ACTIVE_LOW>;
+               capella,aset-resistance-ohms = <100000>;
+               /* GPIO34 has interrupt 225 on the PM8058 */
+               /* Trig on both edges - getting close or far away */
+               interrupts-extended = <&pm8058 225 IRQ_TYPE_EDGE_BOTH>;
+               /* MPP05 analog input to the XOADC */
+               io-channels = <&xoadc 0x00 0x05>;
+               io-channel-names = "aout";
+               pinctrl-names = "default";
+               pinctrl-0 = <&dragon_cm3605_gpios>, <&dragon_cm3605_mpps>;
+       };
+
        soc {
                pinctrl@800000 {
                        /* eMMMC pins, all 8 data lines connected */
                                                        power-source = <PM8058_GPIO_S3>;
                                                };
                                        };
+                                       dragon_cm3605_gpios: cm3605-gpios {
+                                               /* Pin 34 connected to the proxy IRQ */
+                                               pinconf_gpio34 {
+                                                       pins = "gpio34";
+                                                       function = "normal";
+                                                       input-enable;
+                                                       bias-disable;
+                                                       power-source = <PM8058_GPIO_S3>;
+                                               };
+                                               /* Pin 35 connected to ASET */
+                                               pinconf_gpio35 {
+                                                       pins = "gpio35";
+                                                       function = "normal";
+                                                       output-high;
+                                                       bias-disable;
+                                                       power-source = <PM8058_GPIO_S3>;
+                                               };
+                                       };
                                        dragon_veth_gpios: veth-gpios {
                                                pinconf {
                                                        pins = "gpio40";
                                        };
                                };
 
+                               mpps@50 {
+                                       dragon_cm3605_mpps: cm3605-mpps {
+                                               pinconf {
+                                                       pins = "mpp5";
+                                                       function = "analog";
+                                                       input-enable;
+                                                       bias-high-impedance;
+                                                       /* Let's use channel 5 */
+                                                       qcom,amux-route = <PMIC_MPP_AMUX_ROUTE_CH5>;
+                                                       power-source = <PM8058_GPIO_S3>;
+                                               };
+                                       };
+                               };
+
+                               xoadc@197 {
+                                       /* Reference voltage 2.2 V */
+                                       xoadc-ref-supply = <&pm8058_l18>;
+
+                                       /* Board-specific channels */
+                                       mpp5@05 {
+                                               /* Connected to AOUT of ALS sensor */
+                                               reg = <0x00 0x05>;
+                                       };
+                                       mpp6@06 {
+                                               /* Connected to test point TP43 */
+                                               reg = <0x00 0x06>;
+                                       };
+                                       mpp7@07 {
+                                               /* Connected to battery thermistor */
+                                               reg = <0x00 0x07>;
+                                       };
+                                       mpp8@08 {
+                                               /* Connected to battery ID detector */
+                                               reg = <0x00 0x08>;
+                                       };
+                                       mpp9@09 {
+                                               /* Connected to XO thermistor */
+                                               reg = <0x00 0x09>;
+                                       };
+                               };
+
                                led@48 {
                                        /*
                                         * The keypad LED @0x48 is routed to
                                        reg = <0x48>;
                                        label = "pm8058:infrared:proximitysensor";
                                        default-state = "off";
+                                       linux,default-trigger = "cm3605";
                                };
                                led@131 {
                                        compatible = "qcom,pm8058-led";