OSDN Git Service

ARM: dts: Add gyro and accel to APQ8060 Dragonboard
authorLinus Walleij <linus.walleij@linaro.org>
Thu, 5 Jan 2017 15:13:36 +0000 (16:13 +0100)
committerAndy Gross <andy.gross@linaro.org>
Fri, 13 Jan 2017 18:38:22 +0000 (12:38 -0600)
This adds the MPU-3050 gyroscope and the KXSD9 accelerometer to
the Qualcomm APQ8060 Dragonboard. The KXSD9 is mounted beyond the
MPU-3050 and appear as a subdevice beyond it. We set up the
required GPIO and interrupt lines to make the devices work.

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

index ea660ff..39d9e6d 100644 (file)
                                        function = "ebi2";
                                };
                        };
+
+                       /* Interrupt line for the KXSD9 accelerometer */
+                       dragon_kxsd9_gpios: kxsd9 {
+                               irq {
+                                       pins = "gpio57"; /* IRQ line */
+                                       bias-pull-up;
+                               };
+                       };
                };
 
                qcom,ssbi@500000 {
                                                        power-source = <PM8058_GPIO_S3>;
                                                };
                                        };
+                                       dragon_mpu3050_gpios: mpu3050-gpios {
+                                               pinconf {
+                                                       pins = "gpio17";
+                                                       function = "normal";
+                                                       input-enable;
+                                                       bias-disable;
+                                                       power-source = <PM8058_GPIO_S3>;
+                                               };
+                                       };
                                        dragon_sdcc3_gpios: sdcc3-gpios {
                                                pinconf {
                                                        pins = "gpio22";
                                        vddd-supply = <&pm8058_lvs0>; // 1.8V
                                        vdda-supply = <&pm8058_l14>; // 2.85V
                                };
+                               mpu3050@68 {
+                                       compatible = "invensense,mpu3050";
+                                       reg = <0x68>;
+                                       /*
+                                        * GPIO17 has interrupt 208 on the
+                                        * PM8058, it is pulled high by a 10k
+                                        * resistor to VLOGIC so needs to be
+                                        * active low/falling edge.
+                                        */
+                                       interrupts-extended = <&pm8058 208 IRQ_TYPE_EDGE_FALLING>;
+                                       pinctrl-names = "default";
+                                       pinctrl-0 = <&dragon_mpu3050_gpios>;
+                                       vlogic-supply = <&pm8058_lvs0>; // 1.8V
+                                       vdd-supply = <&pm8058_l14>; // 2.85V
+
+                                       /*
+                                        * The MPU-3050 acts as a hub for the
+                                        * accelerometer.
+                                        */
+                                       i2c-gate {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               kxsd9@18 {
+                                                       compatible = "kionix,kxsd9";
+                                                       reg = <0x18>;
+                                                       interrupt-parent = <&tlmm>;
+                                                       interrupts = <57 IRQ_TYPE_EDGE_FALLING>;
+                                                       pinctrl-names = "default";
+                                                       pinctrl-0 = <&dragon_kxsd9_gpios>;
+                                                       iovdd-supply = <&pm8058_lvs0>; // 1.8V
+                                                       vdd-supply = <&pm8058_l14>; // 2.85V
+                                               };
+                                       };
+                               };
                        };
                };