ARM: dts: rename MSM8660/APQ8060 pmicintc to pm8058
Subsystems (2)
PATCH v4 1/3 ARM: dts: rename MSM8660/APQ8060 pmicintc to pm8058
The name "pmicintc" is ambiguous: there is a second power management IC named PM8901 on these systems, and it is also an interrupt controller. To make things clear, just name the node alias "pm8058", this in unambigous and has all information we need.
---
ChangeLog v1->v4:
- Add Bjorn's ACK.
- Follow version numbering of the primary patch.
--- arch/arm/boot/dts/qcom-apq8060-dragonboard.dts | 2 +- arch/arm/boot/dts/qcom-msm8660-surf.dts | 2 +- arch/arm/boot/dts/qcom-msm8660.dtsi | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-)
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts +1 -1
@@ -412,7 +412,7 @@ * The second interrupt is the PME interrupt * for network wakeup, connected to the TLMM. */ - interrupts-extended = <&pmicintc 198 IRQ_TYPE_EDGE_FALLING>, + interrupts-extended = <&pm8058 198 IRQ_TYPE_EDGE_FALLING>, <&tlmm 29 IRQ_TYPE_EDGE_RISING>; reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; vdd33a-supply = <&dragon_veth>;
arch/arm/boot/dts/qcom-msm8660-surf.dts +1 -1
@@ -48,7 +48,7 @@ }; }; -&pmicintc { +&pm8058 { keypad at 148 { linux,keymap = < MATRIX_KEY(0, 0, KEY_FN_F1)
arch/arm/boot/dts/qcom-msm8660.dtsi +6 -6
@@ -163,7 +163,7 @@ reg = <0x500000 0x1000>; qcom,controller-type = "pmic-arbiter"; - pmicintc: pmic at 0 { + pm8058: pmic at 0 { compatible = "qcom,pm8058"; interrupt-parent = <&tlmm>; interrupts = <88 8>;
@@ -176,7 +176,7 @@ compatible = "qcom,pm8058-gpio", "qcom,ssbi-gpio"; reg = <0x150>; - interrupt-parent = <&pmicintc>; + interrupt-parent = <&pm8058>; interrupts = <192 IRQ_TYPE_NONE>, <193 IRQ_TYPE_NONE>, <194 IRQ_TYPE_NONE>,
@@ -232,7 +232,7 @@ reg = <0x50>; gpio-controller; #gpio-cells = <2>; - interrupt-parent = <&pmicintc>; + interrupt-parent = <&pm8058>; interrupts = <128 IRQ_TYPE_NONE>, <129 IRQ_TYPE_NONE>,
@@ -251,7 +251,7 @@ pwrkey at 1c { compatible = "qcom,pm8058-pwrkey"; reg = <0x1c>; - interrupt-parent = <&pmicintc>; + interrupt-parent = <&pm8058>; interrupts = <50 1>, <51 1>; debounce = <15625>; pull-up;
@@ -260,7 +260,7 @@ keypad at 148 { compatible = "qcom,pm8058-keypad"; reg = <0x148>; - interrupt-parent = <&pmicintc>; + interrupt-parent = <&pm8058>; interrupts = <74 1>, <75 1>; debounce = <15>; scan-delay = <32>;
@@ -270,7 +270,7 @@ rtc at 1e8 { compatible = "qcom,pm8058-rtc"; reg = <0x1e8>; - interrupt-parent = <&pmicintc>; + interrupt-parent = <&pm8058>; interrupts = <39 1>; allow-set-time; };
Signature · 1 line
2.7.4
PATCH v4 1/3 ARM: dts: rename MSM8660/APQ8060 pmicintc to pm8058
Quoted 6 lines · Linus Walleij
The name "pmicintc" is ambiguous: there is a second power management IC named PM8901 on these systems, and it is also an interrupt controller. To make things clear, just name the node alias "pm8058", this in unambigous and has all information we need.
Quoted 6 lines
Acked-by Bjorn Andersson <[email protected]>Signed-off-by Linus Walleij <[email protected]>---
ChangeLogv1->v4:
- Add Bjorn's ACK.
- Follow version numbering of the primary patch.
Are these three patches getting applied?
I don't see them in -next or anything...
Yours,
Linus Walleij
PATCH v4 2/3 ARM: dts: reference PM8058 as IRQ parent
In reply to Linus WalleijSome nodes are referencing the pm8058_gpio as IRQ parent, but the HW IRQ offset they are supplying is actually that for the parent to that controller: the PM8058 itself. Since that is the proper parent, reference it directly.
We can switch this to the pm8058_gpio and the proper offset once we have fixed the SSBI GPIO driver to properly deal with the hierarchical IRQ domain and get proper local offset translation.
---
ChangeLog v1->v2:
- Add Bjorn's ACK.
- Follow version numbering of the primary patch.
--- arch/arm/boot/dts/qcom-apq8060-dragonboard.dts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts +4 -4
@@ -369,8 +369,8 @@ ak8975 at 0c { compatible = "asahi-kasei,ak8975"; reg = <0x0c>; - /* GPIO33 has interrupt 224 on the PM8058 */ - interrupt-parent = <&pm8058_gpio>; + /* FIXME: GPIO33 has interrupt 224 on the PM8058 */ + interrupt-parent = <&pm8058>; interrupts = <224 IRQ_TYPE_EDGE_RISING>; pinctrl-names = "default"; pinctrl-0 = <&dragon_ak8975_gpios>;
@@ -380,8 +380,8 @@ bmp085 at 77 { compatible = "bosch,bmp085"; reg = <0x77>; - /* GPIO16 has interrupt 207 on the PM8058 */ - interrupt-parent = <&pm8058_gpio>; + /* FIXME: GPIO16 has interrupt 207 on the PM8058 */ + interrupt-parent = <&pm8058>; interrupts = <207 IRQ_TYPE_EDGE_RISING>; reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>; pinctrl-names = "default";
Signature · 1 line
2.7.4
PATCH v4 3/3 ARM: dts: Add gyro and accel to APQ8060 Dragonboard
In reply to Linus WalleijThis 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.
---
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(+)
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts +52 -0
@@ -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 at 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 at 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 at 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 + }; + }; + }; }; };
Signature · 1 line
2.7.4
PATCH v4 3/3 ARM: dts: Add gyro and accel to APQ8060 Dragonboard
Quoted 10 lines · Linus Walleij
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 <[email protected]>---
ChangeLogv3->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 :)
Regards,
Bjorn
Quoted 90 lines
ChangeLog
v2->v3:
- Move the interrupt to the pm8058 alias to reflect the two patches properly specifying the PMIC as interrupt parent.
ChangeLogv1->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(+)arch/arm/boot/dts/qcom-apq8060-dragonboard.dts +52
-0@@ -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 at 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 at 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 at 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 + }; + }; + }; }; };Signature · 1 line
2.7.4