Message ID | 1478508284-10847-3-git-send-email-linus.walleij@linaro.org (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Andy Gross |
Headers | show |
On Mon 07 Nov 00:44 PST 2016, Linus Walleij wrote: > 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. > > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> > --- > ChangeLog v3->v4: > - Use interrupts-extended > - Add Bjorn's ACK. Looks like it didn't make it to the message after all, but Andy is using patchworks, so here we go again :) Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org> Regards, Bjorn > ChangeLog v2->v3: > - Move the interrupt to the pm8058 alias to reflect the two patches > properly specifying the PMIC as interrupt parent. > ChangeLog v1->v2: > - Use the new I2C mux gate bindings from Peter Rosin (merged to > the I2C subsystem) > --- > arch/arm/boot/dts/qcom-apq8060-dragonboard.dts | 52 ++++++++++++++++++++++++++ > 1 file changed, 52 insertions(+) > > diff --git a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts > index ea660ffa03ea..39d9e6ddefed 100644 > --- a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts > +++ b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts > @@ -220,6 +220,14 @@ > function = "ebi2"; > }; > }; > + > + /* Interrupt line for the KXSD9 accelerometer */ > + dragon_kxsd9_gpios: kxsd9 { > + irq { > + pins = "gpio57"; /* IRQ line */ > + bias-pull-up; > + }; > + }; > }; > > qcom,ssbi@500000 { > @@ -272,6 +280,15 @@ > 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"; > @@ -389,6 +406,41 @@ > 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 > + }; > + }; > + }; > }; > }; > > -- > 2.7.4 > -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts index ea660ffa03ea..39d9e6ddefed 100644 --- a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts +++ b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts @@ -220,6 +220,14 @@ function = "ebi2"; }; }; + + /* Interrupt line for the KXSD9 accelerometer */ + dragon_kxsd9_gpios: kxsd9 { + irq { + pins = "gpio57"; /* IRQ line */ + bias-pull-up; + }; + }; }; qcom,ssbi@500000 { @@ -272,6 +280,15 @@ 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"; @@ -389,6 +406,41 @@ 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 + }; + }; + }; }; };
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. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- ChangeLog v3->v4: - Use interrupts-extended - Add Bjorn's ACK. ChangeLog v2->v3: - Move the interrupt to the pm8058 alias to reflect the two patches properly specifying the PMIC as interrupt parent. ChangeLog v1->v2: - Use the new I2C mux gate bindings from Peter Rosin (merged to the I2C subsystem) --- arch/arm/boot/dts/qcom-apq8060-dragonboard.dts | 52 ++++++++++++++++++++++++++ 1 file changed, 52 insertions(+)