aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2016-09-13 11:29:08 -0400
committerArnd Bergmann <arnd@arndb.de>2016-09-13 11:29:08 -0400
commit9992f21333c1514d41a6cae50928c4c466b8465c (patch)
tree7034db9c9ae43ae17b5aaaa7b7e6e907a3644510
parent9c0da3cc61f1233c2782e2d3d91e3d0707dd4ba5 (diff)
parent73bae19c3a3fde589b4508f3bfcc68d2f4b06f39 (diff)
Merge tag 'qcom-dts-for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/dt
Pull "Qualcomm Device Tree Changes for v4.9" from Andy Gross: * Rework dr_mode on APQ8064 and Nexus7 * Add MSM8974 BLSP1 UART1 port * Add AP148 SATA mapping * Add support for LG Nexus 5 (Hammerhead) * Fixup MSM8660/MSM8064 SPMI/MPP IRQs * Add Nexus7 IMEM/reboot reason * Add Honami touchscreen support * Add TSENS support on MSM8974, APQ8064, and APQ8084 * Add APQ8060 Dragonboard PM8058 LEDs * Rework VPH PWR REG for MSM8974 * tag 'qcom-dts-for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: ARM: dts: msm8974: Move vreg_boost node from the honami to msm8974 ARM: dts: qcom: msm8974: Add fixed regulator node for vph-pwr-reg ARM: dts: add PM8058 LEDs to the APQ8060 Dragonboard arm: dts: apq8084: Add thermal zones, tsens and qfprom nodes arm: dts: apq8064: Add thermal zones, tsens and qfprom nodes arm: dts: msm8974: Add thermal zones, tsens and qfprom nodes ARM: dts: msm8974: honami: Add touchscreen device-tree: nexus7: Add IMEM syscon and reboot reason support ARM: dts: MSM8660 remove flags from SPMI/MPP IRQs ARM: dts: MSM8064 remove flags from SPMI/MPP IRQs ARM: dts: msm8974-hammerhead: Introduce gpio-keys nodes ARM: dts: msm8974-hammerhead: Add regulator nodes for hammerhead ARM: dts: qcom: Add initial DTS for LG Nexus 5 Phone ipq8064: dts: force AP148 SATA port mapping ARM: dts: msm8974: Add nodes for blsp1_uart1 serial port device-tree: aqp8064.dtsi: Remove usb phy dr_mode = "host" device-tree: nexus7: Set phy mode to otg instead of host
-rw-r--r--Documentation/devicetree/bindings/clock/qcom,gcc.txt16
-rw-r--r--arch/arm/boot/dts/Makefile1
-rw-r--r--arch/arm/boot/dts/qcom-apq8060-dragonboard.dts39
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts15
-rw-r--r--arch/arm/boot/dts/qcom-apq8064.dtsi180
-rw-r--r--arch/arm/boot/dts/qcom-apq8084.dtsi103
-rw-r--r--arch/arm/boot/dts/qcom-ipq8064-ap148.dts1
-rw-r--r--arch/arm/boot/dts/qcom-msm8660.dtsi75
-rw-r--r--arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts262
-rw-r--r--arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts81
-rw-r--r--arch/arm/boot/dts/qcom-msm8974.dtsi139
-rw-r--r--arch/arm/boot/dts/qcom-pm8941.dtsi5
12 files changed, 857 insertions, 60 deletions
diff --git a/Documentation/devicetree/bindings/clock/qcom,gcc.txt b/Documentation/devicetree/bindings/clock/qcom,gcc.txt
index 9a60fde32b02..ea893cbef73d 100644
--- a/Documentation/devicetree/bindings/clock/qcom,gcc.txt
+++ b/Documentation/devicetree/bindings/clock/qcom,gcc.txt
@@ -22,6 +22,11 @@ Required properties :
22 22
23Optional properties : 23Optional properties :
24- #power-domain-cells : shall contain 1 24- #power-domain-cells : shall contain 1
25- Qualcomm TSENS (thermal sensor device) on some devices can
26be part of GCC and hence the TSENS properties can also be
27part of the GCC/clock-controller node.
28For more details on the TSENS properties please refer
29Documentation/devicetree/bindings/thermal/qcom-tsens.txt
25 30
26Example: 31Example:
27 clock-controller@900000 { 32 clock-controller@900000 {
@@ -31,3 +36,14 @@ Example:
31 #reset-cells = <1>; 36 #reset-cells = <1>;
32 #power-domain-cells = <1>; 37 #power-domain-cells = <1>;
33 }; 38 };
39
40Example of GCC with TSENS properties:
41 clock-controller@900000 {
42 compatible = "qcom,gcc-apq8064";
43 reg = <0x00900000 0x4000>;
44 nvmem-cells = <&tsens_calib>, <&tsens_backup>;
45 nvmem-cell-names = "calib", "calib_backup";
46 #clock-cells = <1>;
47 #reset-cells = <1>;
48 #thermal-sensor-cells = <1>;
49 };
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 690001bc82a8..9deb07810043 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -603,6 +603,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
603 qcom-ipq8064-ap148.dtb \ 603 qcom-ipq8064-ap148.dtb \
604 qcom-msm8660-surf.dtb \ 604 qcom-msm8660-surf.dtb \
605 qcom-msm8960-cdp.dtb \ 605 qcom-msm8960-cdp.dtb \
606 qcom-msm8974-lge-nexus5-hammerhead.dtb \
606 qcom-msm8974-sony-xperia-honami.dtb 607 qcom-msm8974-sony-xperia-honami.dtb
607dtb-$(CONFIG_ARCH_REALVIEW) += \ 608dtb-$(CONFIG_ARCH_REALVIEW) += \
608 arm-realview-pb1176.dtb \ 609 arm-realview-pb1176.dtb \
diff --git a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
index 0abc93e5bb00..6c0038398ef2 100644
--- a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
+++ b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
@@ -239,6 +239,45 @@
239 }; 239 };
240 }; 240 };
241 }; 241 };
242
243 led@48 {
244 /*
245 * The keypad LED @0x48 is routed to
246 * the sensor board where it is
247 * connected to an infrared LED
248 * SFH4650 (60mW, @850nm) next to the
249 * ambient light and proximity sensor
250 * Capella Microsystems CM3605.
251 */
252 compatible = "qcom,pm8058-keypad-led";
253 reg = <0x48>;
254 label = "pm8058:infrared:proximitysensor";
255 default-state = "off";
256 };
257 led@131 {
258 compatible = "qcom,pm8058-led";
259 reg = <0x131>;
260 label = "pm8058:red";
261 default-state = "off";
262 };
263 led@132 {
264 /*
265 * This is actually green too on my
266 * board, but documented as yellow.
267 */
268 compatible = "qcom,pm8058-led";
269 reg = <0x132>;
270 label = "pm8058:yellow";
271 default-state = "off";
272 linux,default-trigger = "mmc0";
273 };
274 led@133 {
275 compatible = "qcom,pm8058-led";
276 reg = <0x133>;
277 label = "pm8058:green";
278 default-state = "on";
279 linux,default-trigger = "heartbeat";
280 };
242 }; 281 };
243 }; 282 };
244 283
diff --git a/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts b/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts
index 7b05f072bfc2..b72e09506448 100644
--- a/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts
+++ b/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts
@@ -253,6 +253,7 @@
253 vddcx-supply = <&pm8921_s3>; 253 vddcx-supply = <&pm8921_s3>;
254 v3p3-supply = <&pm8921_l3>; 254 v3p3-supply = <&pm8921_l3>;
255 v1p8-supply = <&pm8921_l4>; 255 v1p8-supply = <&pm8921_l4>;
256 dr_mode = "otg";
256 }; 257 };
257 258
258 gadget@12500000 { 259 gadget@12500000 {
@@ -272,5 +273,19 @@
272 vqmmc-supply = <&pm8921_s4>; 273 vqmmc-supply = <&pm8921_s4>;
273 }; 274 };
274 }; 275 };
276
277 imem@2a03f000 {
278 compatible = "syscon", "simple-mfd";
279 reg = <0x2a03f000 0x1000>;
280
281 reboot-mode {
282 compatible = "syscon-reboot-mode";
283 offset = <0x65c>;
284
285 mode-normal = <0x77665501>;
286 mode-bootloader = <0x77665500>;
287 mode-recovery = <0x77665502>;
288 };
289 };
275 }; 290 };
276}; 291};
diff --git a/arch/arm/boot/dts/qcom-apq8064.dtsi b/arch/arm/boot/dts/qcom-apq8064.dtsi
index 74a9b6c394f5..1dbe697b2e90 100644
--- a/arch/arm/boot/dts/qcom-apq8064.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8064.dtsi
@@ -5,6 +5,7 @@
5#include <dt-bindings/reset/qcom,gcc-msm8960.h> 5#include <dt-bindings/reset/qcom,gcc-msm8960.h>
6#include <dt-bindings/clock/qcom,mmcc-msm8960.h> 6#include <dt-bindings/clock/qcom,mmcc-msm8960.h>
7#include <dt-bindings/soc/qcom,gsbi.h> 7#include <dt-bindings/soc/qcom,gsbi.h>
8#include <dt-bindings/interrupt-controller/irq.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h> 9#include <dt-bindings/interrupt-controller/arm-gic.h>
9/ { 10/ {
10 model = "Qualcomm APQ8064"; 11 model = "Qualcomm APQ8064";
@@ -86,6 +87,92 @@
86 }; 87 };
87 }; 88 };
88 89
90 thermal-zones {
91 cpu-thermal0 {
92 polling-delay-passive = <250>;
93 polling-delay = <1000>;
94
95 thermal-sensors = <&gcc 7>;
96 coefficients = <1199 0>;
97
98 trips {
99 cpu_alert0: trip0 {
100 temperature = <75000>;
101 hysteresis = <2000>;
102 type = "passive";
103 };
104 cpu_crit0: trip1 {
105 temperature = <110000>;
106 hysteresis = <2000>;
107 type = "critical";
108 };
109 };
110 };
111
112 cpu-thermal1 {
113 polling-delay-passive = <250>;
114 polling-delay = <1000>;
115
116 thermal-sensors = <&gcc 8>;
117 coefficients = <1132 0>;
118
119 trips {
120 cpu_alert1: trip0 {
121 temperature = <75000>;
122 hysteresis = <2000>;
123 type = "passive";
124 };
125 cpu_crit1: trip1 {
126 temperature = <110000>;
127 hysteresis = <2000>;
128 type = "critical";
129 };
130 };
131 };
132
133 cpu-thermal2 {
134 polling-delay-passive = <250>;
135 polling-delay = <1000>;
136
137 thermal-sensors = <&gcc 9>;
138 coefficients = <1199 0>;
139
140 trips {
141 cpu_alert2: trip0 {
142 temperature = <75000>;
143 hysteresis = <2000>;
144 type = "passive";
145 };
146 cpu_crit2: trip1 {
147 temperature = <110000>;
148 hysteresis = <2000>;
149 type = "critical";
150 };
151 };
152 };
153
154 cpu-thermal3 {
155 polling-delay-passive = <250>;
156 polling-delay = <1000>;
157
158 thermal-sensors = <&gcc 10>;
159 coefficients = <1132 0>;
160
161 trips {
162 cpu_alert3: trip0 {
163 temperature = <75000>;
164 hysteresis = <2000>;
165 type = "passive";
166 };
167 cpu_crit3: trip1 {
168 temperature = <110000>;
169 hysteresis = <2000>;
170 type = "critical";
171 };
172 };
173 };
174 };
175
89 cpu-pmu { 176 cpu-pmu {
90 compatible = "qcom,krait-pmu"; 177 compatible = "qcom,krait-pmu";
91 interrupts = <1 10 0x304>; 178 interrupts = <1 10 0x304>;
@@ -559,22 +646,50 @@
559 compatible = "qcom,pm8921-gpio", 646 compatible = "qcom,pm8921-gpio",
560 "qcom,ssbi-gpio"; 647 "qcom,ssbi-gpio";
561 reg = <0x150>; 648 reg = <0x150>;
562 interrupts = <192 1>, <193 1>, <194 1>, 649 interrupts = <192 IRQ_TYPE_NONE>,
563 <195 1>, <196 1>, <197 1>, 650 <193 IRQ_TYPE_NONE>,
564 <198 1>, <199 1>, <200 1>, 651 <194 IRQ_TYPE_NONE>,
565 <201 1>, <202 1>, <203 1>, 652 <195 IRQ_TYPE_NONE>,
566 <204 1>, <205 1>, <206 1>, 653 <196 IRQ_TYPE_NONE>,
567 <207 1>, <208 1>, <209 1>, 654 <197 IRQ_TYPE_NONE>,
568 <210 1>, <211 1>, <212 1>, 655 <198 IRQ_TYPE_NONE>,
569 <213 1>, <214 1>, <215 1>, 656 <199 IRQ_TYPE_NONE>,
570 <216 1>, <217 1>, <218 1>, 657 <200 IRQ_TYPE_NONE>,
571 <219 1>, <220 1>, <221 1>, 658 <201 IRQ_TYPE_NONE>,
572 <222 1>, <223 1>, <224 1>, 659 <202 IRQ_TYPE_NONE>,
573 <225 1>, <226 1>, <227 1>, 660 <203 IRQ_TYPE_NONE>,
574 <228 1>, <229 1>, <230 1>, 661 <204 IRQ_TYPE_NONE>,
575 <231 1>, <232 1>, <233 1>, 662 <205 IRQ_TYPE_NONE>,
576 <234 1>, <235 1>; 663 <206 IRQ_TYPE_NONE>,
577 664 <207 IRQ_TYPE_NONE>,
665 <208 IRQ_TYPE_NONE>,
666 <209 IRQ_TYPE_NONE>,
667 <210 IRQ_TYPE_NONE>,
668 <211 IRQ_TYPE_NONE>,
669 <212 IRQ_TYPE_NONE>,
670 <213 IRQ_TYPE_NONE>,
671 <214 IRQ_TYPE_NONE>,
672 <215 IRQ_TYPE_NONE>,
673 <216 IRQ_TYPE_NONE>,
674 <217 IRQ_TYPE_NONE>,
675 <218 IRQ_TYPE_NONE>,
676 <219 IRQ_TYPE_NONE>,
677 <220 IRQ_TYPE_NONE>,
678 <221 IRQ_TYPE_NONE>,
679 <222 IRQ_TYPE_NONE>,
680 <223 IRQ_TYPE_NONE>,
681 <224 IRQ_TYPE_NONE>,
682 <225 IRQ_TYPE_NONE>,
683 <226 IRQ_TYPE_NONE>,
684 <227 IRQ_TYPE_NONE>,
685 <228 IRQ_TYPE_NONE>,
686 <229 IRQ_TYPE_NONE>,
687 <230 IRQ_TYPE_NONE>,
688 <231 IRQ_TYPE_NONE>,
689 <232 IRQ_TYPE_NONE>,
690 <233 IRQ_TYPE_NONE>,
691 <234 IRQ_TYPE_NONE>,
692 <235 IRQ_TYPE_NONE>;
578 gpio-controller; 693 gpio-controller;
579 #gpio-cells = <2>; 694 #gpio-cells = <2>;
580 695
@@ -587,9 +702,18 @@
587 gpio-controller; 702 gpio-controller;
588 #gpio-cells = <2>; 703 #gpio-cells = <2>;
589 interrupts = 704 interrupts =
590 <128 1>, <129 1>, <130 1>, <131 1>, 705 <128 IRQ_TYPE_NONE>,
591 <132 1>, <133 1>, <134 1>, <135 1>, 706 <129 IRQ_TYPE_NONE>,
592 <136 1>, <137 1>, <138 1>, <139 1>; 707 <130 IRQ_TYPE_NONE>,
708 <131 IRQ_TYPE_NONE>,
709 <132 IRQ_TYPE_NONE>,
710 <133 IRQ_TYPE_NONE>,
711 <134 IRQ_TYPE_NONE>,
712 <135 IRQ_TYPE_NONE>,
713 <136 IRQ_TYPE_NONE>,
714 <137 IRQ_TYPE_NONE>,
715 <138 IRQ_TYPE_NONE>,
716 <139 IRQ_TYPE_NONE>;
593 }; 717 };
594 718
595 rtc@11d { 719 rtc@11d {
@@ -611,11 +735,28 @@
611 }; 735 };
612 }; 736 };
613 737
738 qfprom: qfprom@700000 {
739 compatible = "qcom,qfprom";
740 reg = <0x00700000 0x1000>;
741 #address-cells = <1>;
742 #size-cells = <1>;
743 ranges;
744 tsens_calib: calib {
745 reg = <0x404 0x10>;
746 };
747 tsens_backup: backup_calib {
748 reg = <0x414 0x10>;
749 };
750 };
751
614 gcc: clock-controller@900000 { 752 gcc: clock-controller@900000 {
615 compatible = "qcom,gcc-apq8064"; 753 compatible = "qcom,gcc-apq8064";
616 reg = <0x00900000 0x4000>; 754 reg = <0x00900000 0x4000>;
755 nvmem-cells = <&tsens_calib>, <&tsens_backup>;
756 nvmem-cell-names = "calib", "calib_backup";
617 #clock-cells = <1>; 757 #clock-cells = <1>;
618 #reset-cells = <1>; 758 #reset-cells = <1>;
759 #thermal-sensor-cells = <1>;
619 }; 760 };
620 761
621 lcc: clock-controller@28000000 { 762 lcc: clock-controller@28000000 {
@@ -712,7 +853,6 @@
712 reg = <0x12500000 0x400>; 853 reg = <0x12500000 0x400>;
713 interrupts = <GIC_SPI 100 IRQ_TYPE_NONE>; 854 interrupts = <GIC_SPI 100 IRQ_TYPE_NONE>;
714 status = "disabled"; 855 status = "disabled";
715 dr_mode = "host";
716 856
717 clocks = <&gcc USB_HS1_XCVR_CLK>, 857 clocks = <&gcc USB_HS1_XCVR_CLK>,
718 <&gcc USB_HS1_H_CLK>; 858 <&gcc USB_HS1_H_CLK>;
diff --git a/arch/arm/boot/dts/qcom-apq8084.dtsi b/arch/arm/boot/dts/qcom-apq8084.dtsi
index 7c2df062a025..39eb7a4ed16a 100644
--- a/arch/arm/boot/dts/qcom-apq8084.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8084.dtsi
@@ -94,6 +94,88 @@
94 }; 94 };
95 }; 95 };
96 96
97 thermal-zones {
98 cpu-thermal0 {
99 polling-delay-passive = <250>;
100 polling-delay = <1000>;
101
102 thermal-sensors = <&tsens 5>;
103
104 trips {
105 cpu_alert0: trip0 {
106 temperature = <75000>;
107 hysteresis = <2000>;
108 type = "passive";
109 };
110 cpu_crit0: trip1 {
111 temperature = <110000>;
112 hysteresis = <2000>;
113 type = "critical";
114 };
115 };
116 };
117
118 cpu-thermal1 {
119 polling-delay-passive = <250>;
120 polling-delay = <1000>;
121
122 thermal-sensors = <&tsens 6>;
123
124 trips {
125 cpu_alert1: trip0 {
126 temperature = <75000>;
127 hysteresis = <2000>;
128 type = "passive";
129 };
130 cpu_crit1: trip1 {
131 temperature = <110000>;
132 hysteresis = <2000>;
133 type = "critical";
134 };
135 };
136 };
137
138 cpu-thermal2 {
139 polling-delay-passive = <250>;
140 polling-delay = <1000>;
141
142 thermal-sensors = <&tsens 7>;
143
144 trips {
145 cpu_alert2: trip0 {
146 temperature = <75000>;
147 hysteresis = <2000>;
148 type = "passive";
149 };
150 cpu_crit2: trip1 {
151 temperature = <110000>;
152 hysteresis = <2000>;
153 type = "critical";
154 };
155 };
156 };
157
158 cpu-thermal3 {
159 polling-delay-passive = <250>;
160 polling-delay = <1000>;
161
162 thermal-sensors = <&tsens 8>;
163
164 trips {
165 cpu_alert3: trip0 {
166 temperature = <75000>;
167 hysteresis = <2000>;
168 type = "passive";
169 };
170 cpu_crit3: trip1 {
171 temperature = <110000>;
172 hysteresis = <2000>;
173 type = "critical";
174 };
175 };
176 };
177 };
178
97 cpu-pmu { 179 cpu-pmu {
98 compatible = "qcom,krait-pmu"; 180 compatible = "qcom,krait-pmu";
99 interrupts = <1 7 0xf04>; 181 interrupts = <1 7 0xf04>;
@@ -150,6 +232,27 @@
150 reg = <0xf9011000 0x1000>; 232 reg = <0xf9011000 0x1000>;
151 }; 233 };
152 234
235 qfprom: qfprom@fc4bc000 {
236 #address-cells = <1>;
237 #size-cells = <1>;
238 compatible = "qcom,qfprom";
239 reg = <0xfc4bc000 0x1000>;
240 tsens_calib: calib@d0 {
241 reg = <0xd0 0x18>;
242 };
243 tsens_backup: backup@440 {
244 reg = <0x440 0x10>;
245 };
246 };
247
248 tsens: thermal-sensor@fc4a8000 {
249 compatible = "qcom,msm8974-tsens";
250 reg = <0xfc4a8000 0x2000>;
251 nvmem-cells = <&tsens_calib>, <&tsens_backup>;
252 nvmem-cell-names = "calib", "calib_backup";
253 #thermal-sensor-cells = <1>;
254 };
255
153 timer@f9020000 { 256 timer@f9020000 {
154 #address-cells = <1>; 257 #address-cells = <1>;
155 #size-cells = <1>; 258 #size-cells = <1>;
diff --git a/arch/arm/boot/dts/qcom-ipq8064-ap148.dts b/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
index d501382493e3..348503d1a1c1 100644
--- a/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
+++ b/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
@@ -95,6 +95,7 @@
95 }; 95 };
96 96
97 sata@29000000 { 97 sata@29000000 {
98 ports-implemented = <0x1>;
98 status = "ok"; 99 status = "ok";
99 }; 100 };
100 }; 101 };
diff --git a/arch/arm/boot/dts/qcom-msm8660.dtsi b/arch/arm/boot/dts/qcom-msm8660.dtsi
index acbe71febe13..8c65e0d82559 100644
--- a/arch/arm/boot/dts/qcom-msm8660.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8660.dtsi
@@ -2,6 +2,7 @@
2 2
3/include/ "skeleton.dtsi" 3/include/ "skeleton.dtsi"
4 4
5#include <dt-bindings/interrupt-controller/irq.h>
5#include <dt-bindings/interrupt-controller/arm-gic.h> 6#include <dt-bindings/interrupt-controller/arm-gic.h>
6#include <dt-bindings/clock/qcom,gcc-msm8660.h> 7#include <dt-bindings/clock/qcom,gcc-msm8660.h>
7#include <dt-bindings/soc/qcom,gsbi.h> 8#include <dt-bindings/soc/qcom,gsbi.h>
@@ -159,21 +160,50 @@
159 "qcom,ssbi-gpio"; 160 "qcom,ssbi-gpio";
160 reg = <0x150>; 161 reg = <0x150>;
161 interrupt-parent = <&pmicintc>; 162 interrupt-parent = <&pmicintc>;
162 interrupts = <192 1>, <193 1>, <194 1>, 163 interrupts = <192 IRQ_TYPE_NONE>,
163 <195 1>, <196 1>, <197 1>, 164 <193 IRQ_TYPE_NONE>,
164 <198 1>, <199 1>, <200 1>, 165 <194 IRQ_TYPE_NONE>,
165 <201 1>, <202 1>, <203 1>, 166 <195 IRQ_TYPE_NONE>,
166 <204 1>, <205 1>, <206 1>, 167 <196 IRQ_TYPE_NONE>,
167 <207 1>, <208 1>, <209 1>, 168 <197 IRQ_TYPE_NONE>,
168 <210 1>, <211 1>, <212 1>, 169 <198 IRQ_TYPE_NONE>,
169 <213 1>, <214 1>, <215 1>, 170 <199 IRQ_TYPE_NONE>,
170 <216 1>, <217 1>, <218 1>, 171 <200 IRQ_TYPE_NONE>,
171 <219 1>, <220 1>, <221 1>, 172 <201 IRQ_TYPE_NONE>,
172 <222 1>, <223 1>, <224 1>, 173 <202 IRQ_TYPE_NONE>,
173 <225 1>, <226 1>, <227 1>, 174 <203 IRQ_TYPE_NONE>,
174 <228 1>, <229 1>, <230 1>, 175 <204 IRQ_TYPE_NONE>,
175 <231 1>, <232 1>, <233 1>, 176 <205 IRQ_TYPE_NONE>,
176 <234 1>, <235 1>; 177 <206 IRQ_TYPE_NONE>,
178 <207 IRQ_TYPE_NONE>,
179 <208 IRQ_TYPE_NONE>,
180 <209 IRQ_TYPE_NONE>,
181 <210 IRQ_TYPE_NONE>,
182 <211 IRQ_TYPE_NONE>,
183 <212 IRQ_TYPE_NONE>,
184 <213 IRQ_TYPE_NONE>,
185 <214 IRQ_TYPE_NONE>,
186 <215 IRQ_TYPE_NONE>,
187 <216 IRQ_TYPE_NONE>,
188 <217 IRQ_TYPE_NONE>,
189 <218 IRQ_TYPE_NONE>,
190 <219 IRQ_TYPE_NONE>,
191 <220 IRQ_TYPE_NONE>,
192 <221 IRQ_TYPE_NONE>,
193 <222 IRQ_TYPE_NONE>,
194 <223 IRQ_TYPE_NONE>,
195 <224 IRQ_TYPE_NONE>,
196 <225 IRQ_TYPE_NONE>,
197 <226 IRQ_TYPE_NONE>,
198 <227 IRQ_TYPE_NONE>,
199 <228 IRQ_TYPE_NONE>,
200 <229 IRQ_TYPE_NONE>,
201 <230 IRQ_TYPE_NONE>,
202 <231 IRQ_TYPE_NONE>,
203 <232 IRQ_TYPE_NONE>,
204 <233 IRQ_TYPE_NONE>,
205 <234 IRQ_TYPE_NONE>,
206 <235 IRQ_TYPE_NONE>;
177 gpio-controller; 207 gpio-controller;
178 #gpio-cells = <2>; 208 #gpio-cells = <2>;
179 209
@@ -187,9 +217,18 @@
187 #gpio-cells = <2>; 217 #gpio-cells = <2>;
188 interrupt-parent = <&pmicintc>; 218 interrupt-parent = <&pmicintc>;
189 interrupts = 219 interrupts =
190 <128 1>, <129 1>, <130 1>, <131 1>, 220 <128 IRQ_TYPE_NONE>,
191 <132 1>, <133 1>, <134 1>, <135 1>, 221 <129 IRQ_TYPE_NONE>,
192 <136 1>, <137 1>, <138 1>, <139 1>; 222 <130 IRQ_TYPE_NONE>,
223 <131 IRQ_TYPE_NONE>,
224 <132 IRQ_TYPE_NONE>,
225 <133 IRQ_TYPE_NONE>,
226 <134 IRQ_TYPE_NONE>,
227 <135 IRQ_TYPE_NONE>,
228 <136 IRQ_TYPE_NONE>,
229 <137 IRQ_TYPE_NONE>,
230 <138 IRQ_TYPE_NONE>,
231 <139 IRQ_TYPE_NONE>;
193 }; 232 };
194 233
195 pwrkey@1c { 234 pwrkey@1c {
diff --git a/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts b/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
new file mode 100644
index 000000000000..c0fb4a698c56
--- /dev/null
+++ b/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
@@ -0,0 +1,262 @@
1#include "qcom-msm8974.dtsi"
2#include "qcom-pm8841.dtsi"
3#include "qcom-pm8941.dtsi"
4#include <dt-bindings/gpio/gpio.h>
5#include <dt-bindings/input/input.h>
6#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
7
8/ {
9 model = "LGE MSM 8974 HAMMERHEAD";
10 compatible = "lge,hammerhead", "qcom,msm8974";
11
12 aliases {
13 serial0 = &blsp1_uart1;
14 };
15
16 chosen {
17 stdout-path = "serial0:115200n8";
18 };
19
20 smd {
21 rpm {
22 rpm_requests {
23 pm8841-regulators {
24 s1 {
25 regulator-min-microvolt = <675000>;
26 regulator-max-microvolt = <1050000>;
27 };
28
29 s2 {
30 regulator-min-microvolt = <500000>;
31 regulator-max-microvolt = <1050000>;
32 };
33
34 s3 {
35 regulator-min-microvolt = <1050000>;
36 regulator-max-microvolt = <1050000>;
37 };
38
39 s4 {
40 regulator-min-microvolt = <815000>;
41 regulator-max-microvolt = <900000>;
42 };
43 };
44
45 pm8941-regulators {
46 vdd_l1_l3-supply = <&pm8941_s1>;
47 vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
48 vdd_l4_l11-supply = <&pm8941_s1>;
49 vdd_l5_l7-supply = <&pm8941_s2>;
50 vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
51 vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>;
52 vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
53 vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
54 vdd_l21-supply = <&vreg_boost>;
55
56 s1 {
57 regulator-min-microvolt = <1300000>;
58 regulator-max-microvolt = <1300000>;
59
60 regulator-always-on;
61 regulator-boot-on;
62 };
63
64 s2 {
65 regulator-min-microvolt = <2150000>;
66 regulator-max-microvolt = <2150000>;
67
68 regulator-boot-on;
69 };
70
71 s3 {
72 regulator-min-microvolt = <1800000>;
73 regulator-max-microvolt = <1800000>;
74
75 regulator-always-on;
76 regulator-boot-on;
77 };
78
79 l1 {
80 regulator-min-microvolt = <1225000>;
81 regulator-max-microvolt = <1225000>;
82
83 regulator-always-on;
84 regulator-boot-on;
85 };
86
87 l2 {
88 regulator-min-microvolt = <1200000>;
89 regulator-max-microvolt = <1200000>;
90 };
91
92 l3 {
93 regulator-min-microvolt = <1225000>;
94 regulator-max-microvolt = <1225000>;
95 };
96
97 l4 {
98 regulator-min-microvolt = <1225000>;
99 regulator-max-microvolt = <1225000>;
100 };
101
102 l5 {
103 regulator-min-microvolt = <1800000>;
104 regulator-max-microvolt = <1800000>;
105 };
106
107 l6 {
108 regulator-min-microvolt = <1800000>;
109 regulator-max-microvolt = <1800000>;
110
111 regulator-boot-on;
112 };
113
114 l7 {
115 regulator-min-microvolt = <1800000>;
116 regulator-max-microvolt = <1800000>;
117
118 regulator-boot-on;
119 };
120
121 l8 {
122 regulator-min-microvolt = <1800000>;
123 regulator-max-microvolt = <1800000>;
124 };
125
126 l9 {
127 regulator-min-microvolt = <1800000>;
128 regulator-max-microvolt = <2950000>;
129 };
130
131 l10 {
132 regulator-min-microvolt = <1800000>;
133 regulator-max-microvolt = <2950000>;
134 };
135
136 l11 {
137 regulator-min-microvolt = <1300000>;
138 regulator-max-microvolt = <1300000>;
139 };
140
141 l12 {
142 regulator-min-microvolt = <1800000>;
143 regulator-max-microvolt = <1800000>;
144
145 regulator-always-on;
146 regulator-boot-on;
147 };
148
149 l13 {
150 regulator-min-microvolt = <1800000>;
151 regulator-max-microvolt = <2950000>;
152
153 regulator-boot-on;
154 };
155
156 l14 {
157 regulator-min-microvolt = <1800000>;
158 regulator-max-microvolt = <1800000>;
159 };
160
161 l15 {
162 regulator-min-microvolt = <2050000>;
163 regulator-max-microvolt = <2050000>;
164 };
165
166 l16 {
167 regulator-min-microvolt = <2700000>;
168 regulator-max-microvolt = <2700000>;
169 };
170
171 l17 {
172 regulator-min-microvolt = <2850000>;
173 regulator-max-microvolt = <2850000>;
174 };
175
176 l18 {
177 regulator-min-microvolt = <2850000>;
178 regulator-max-microvolt = <2850000>;
179 };
180
181 l19 {
182 regulator-min-microvolt = <3000000>;
183 regulator-max-microvolt = <3300000>;
184 };
185
186 l20 {
187 regulator-min-microvolt = <2950000>;
188 regulator-max-microvolt = <2950000>;
189
190 regulator-boot-on;
191 };
192
193 l21 {
194 regulator-min-microvolt = <2950000>;
195 regulator-max-microvolt = <2950000>;
196
197 regulator-boot-on;
198 };
199
200 l22 {
201 regulator-min-microvolt = <3000000>;
202 regulator-max-microvolt = <3300000>;
203 };
204
205 l23 {
206 regulator-min-microvolt = <3000000>;
207 regulator-max-microvolt = <3000000>;
208 };
209
210 l24 {
211 regulator-min-microvolt = <3075000>;
212 regulator-max-microvolt = <3075000>;
213
214 regulator-boot-on;
215 };
216 };
217 };
218 };
219 };
220};
221
222&soc {
223 serial@f991d000 {
224 status = "ok";
225 };
226
227 gpio-keys {
228 compatible = "gpio-keys";
229 input-name = "gpio-keys";
230
231 pinctrl-names = "default";
232 pinctrl-0 = <&gpio_keys_pin_a>;
233
234 volume-up {
235 label = "volume_up";
236 gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
237 linux,input-type = <1>;
238 linux,code = <KEY_VOLUMEUP>;
239 };
240
241 volume-down {
242 label = "volume_down";
243 gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
244 linux,input-type = <1>;
245 linux,code = <KEY_VOLUMEDOWN>;
246 };
247 };
248};
249
250&spmi_bus {
251 pm8941@0 {
252 gpios@c000 {
253 gpio_keys_pin_a: gpio-keys-active {
254 pins = "gpio2", "gpio3";
255 function = "normal";
256
257 bias-pull-up;
258 power-source = <PM8941_GPIO_S3>;
259 };
260 };
261 };
262};
diff --git a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
index 3fb4dada6b0d..e7c1577d56f4 100644
--- a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
@@ -257,23 +257,6 @@
257 }; 257 };
258 }; 258 };
259 }; 259 };
260
261 vreg_boost: vreg-boost {
262 compatible = "regulator-fixed";
263
264 regulator-name = "vreg-boost";
265 regulator-min-microvolt = <3150000>;
266 regulator-max-microvolt = <3150000>;
267
268 regulator-always-on;
269 regulator-boot-on;
270
271 gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
272 enable-active-high;
273
274 pinctrl-names = "default";
275 pinctrl-0 = <&boost_bypass_n_pin>;
276 };
277}; 260};
278 261
279&soc { 262&soc {
@@ -311,6 +294,45 @@
311 pinctrl-0 = <&blsp1_uart2_pin_a>; 294 pinctrl-0 = <&blsp1_uart2_pin_a>;
312 }; 295 };
313 296
297 i2c@f9924000 {
298 status = "ok";
299
300 clock-frequency = <355000>;
301 qcom,src-freq = <50000000>;
302
303 pinctrl-names = "default";
304 pinctrl-0 = <&i2c2_pins>;
305
306 synaptics@2c {
307 compatible = "syna,rmi4-i2c";
308 reg = <0x2c>;
309
310 interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
311
312 #address-cells = <1>;
313 #size-cells = <0>;
314
315 vdd-supply = <&pm8941_l22>;
316 vio-supply = <&pm8941_lvs3>;
317
318 pinctrl-names = "default";
319 pinctrl-0 = <&ts_int_pin>;
320
321 syna,startup-delay-ms = <10>;
322
323 rmi4-f01@1 {
324 reg = <0x1>;
325 syna,nosleep-mode = <1>;
326 };
327
328 rmi4-f11@11 {
329 reg = <0x11>;
330 touchscreen-inverted-x;
331 syna,sensor-type = <1>;
332 };
333 };
334 };
335
314 pinctrl@fd510000 { 336 pinctrl@fd510000 {
315 blsp1_uart2_pin_a: blsp1-uart2-pin-active { 337 blsp1_uart2_pin_a: blsp1-uart2-pin-active {
316 rx { 338 rx {
@@ -330,6 +352,16 @@
330 }; 352 };
331 }; 353 };
332 354
355 i2c2_pins: i2c2 {
356 mux {
357 pins = "gpio6", "gpio7";
358 function = "blsp_i2c2";
359
360 drive-strength = <2>;
361 bias-disable;
362 };
363 };
364
333 sdhc1_pin_a: sdhc1-pin-active { 365 sdhc1_pin_a: sdhc1-pin-active {
334 clk { 366 clk {
335 pins = "sdc1_clk"; 367 pins = "sdc1_clk";
@@ -366,6 +398,16 @@
366 }; 398 };
367 }; 399 };
368 400
401 ts_int_pin: touch-int {
402 pin {
403 pins = "gpio61";
404 function = "gpio";
405
406 drive-strength = <2>;
407 bias-disable;
408 input-enable;
409 };
410 };
369 }; 411 };
370 412
371 dma-controller@f9944000 { 413 dma-controller@f9944000 {
@@ -387,11 +429,6 @@
387 }; 429 };
388 430
389 gpios@c000 { 431 gpios@c000 {
390 boost_bypass_n_pin: boost-bypass {
391 pins = "gpio21";
392 function = "normal";
393 };
394
395 gpio_keys_pin_a: gpio-keys-active { 432 gpio_keys_pin_a: gpio-keys-active {
396 pins = "gpio2", "gpio3", "gpio4", "gpio5"; 433 pins = "gpio2", "gpio3", "gpio4", "gpio5";
397 function = "normal"; 434 function = "normal";
diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
index 561d4d136762..d2109475bdfd 100644
--- a/arch/arm/boot/dts/qcom-msm8974.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
@@ -2,6 +2,7 @@
2 2
3#include <dt-bindings/interrupt-controller/arm-gic.h> 3#include <dt-bindings/interrupt-controller/arm-gic.h>
4#include <dt-bindings/clock/qcom,gcc-msm8974.h> 4#include <dt-bindings/clock/qcom,gcc-msm8974.h>
5#include <dt-bindings/gpio/gpio.h>
5#include "skeleton.dtsi" 6#include "skeleton.dtsi"
6 7
7/ { 8/ {
@@ -131,6 +132,88 @@
131 }; 132 };
132 }; 133 };
133 134
135 thermal-zones {
136 cpu-thermal0 {
137 polling-delay-passive = <250>;
138 polling-delay = <1000>;
139
140 thermal-sensors = <&tsens 5>;
141
142 trips {
143 cpu_alert0: trip0 {
144 temperature = <75000>;
145 hysteresis = <2000>;
146 type = "passive";
147 };
148 cpu_crit0: trip1 {
149 temperature = <110000>;
150 hysteresis = <2000>;
151 type = "critical";
152 };
153 };
154 };
155
156 cpu-thermal1 {
157 polling-delay-passive = <250>;
158 polling-delay = <1000>;
159
160 thermal-sensors = <&tsens 6>;
161
162 trips {
163 cpu_alert1: trip0 {
164 temperature = <75000>;
165 hysteresis = <2000>;
166 type = "passive";
167 };
168 cpu_crit1: trip1 {
169 temperature = <110000>;
170 hysteresis = <2000>;
171 type = "critical";
172 };
173 };
174 };
175
176 cpu-thermal2 {
177 polling-delay-passive = <250>;
178 polling-delay = <1000>;
179
180 thermal-sensors = <&tsens 7>;
181
182 trips {
183 cpu_alert2: trip0 {
184 temperature = <75000>;
185 hysteresis = <2000>;
186 type = "passive";
187 };
188 cpu_crit2: trip1 {
189 temperature = <110000>;
190 hysteresis = <2000>;
191 type = "critical";
192 };
193 };
194 };
195
196 cpu-thermal3 {
197 polling-delay-passive = <250>;
198 polling-delay = <1000>;
199
200 thermal-sensors = <&tsens 8>;
201
202 trips {
203 cpu_alert3: trip0 {
204 temperature = <75000>;
205 hysteresis = <2000>;
206 type = "passive";
207 };
208 cpu_crit3: trip1 {
209 temperature = <110000>;
210 hysteresis = <2000>;
211 type = "critical";
212 };
213 };
214 };
215 };
216
134 cpu-pmu { 217 cpu-pmu {
135 compatible = "qcom,krait-pmu"; 218 compatible = "qcom,krait-pmu";
136 interrupts = <1 7 0xf04>; 219 interrupts = <1 7 0xf04>;
@@ -287,6 +370,27 @@
287 reg = <0xf9011000 0x1000>; 370 reg = <0xf9011000 0x1000>;
288 }; 371 };
289 372
373 qfprom: qfprom@fc4bc000 {
374 #address-cells = <1>;
375 #size-cells = <1>;
376 compatible = "qcom,qfprom";
377 reg = <0xfc4bc000 0x1000>;
378 tsens_calib: calib@d0 {
379 reg = <0xd0 0x18>;
380 };
381 tsens_backup: backup@440 {
382 reg = <0x440 0x10>;
383 };
384 };
385
386 tsens: thermal-sensor@fc4a8000 {
387 compatible = "qcom,msm8974-tsens";
388 reg = <0xfc4a8000 0x2000>;
389 nvmem-cells = <&tsens_calib>, <&tsens_backup>;
390 nvmem-cell-names = "calib", "calib_backup";
391 #thermal-sensor-cells = <1>;
392 };
393
290 timer@f9020000 { 394 timer@f9020000 {
291 #address-cells = <1>; 395 #address-cells = <1>;
292 #size-cells = <1>; 396 #size-cells = <1>;
@@ -430,6 +534,15 @@
430 reg = <0xfc428000 0x4000>; 534 reg = <0xfc428000 0x4000>;
431 }; 535 };
432 536
537 blsp1_uart1: serial@f991d000 {
538 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
539 reg = <0xf991d000 0x1000>;
540 interrupts = <0 107 0x0>;
541 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
542 clock-names = "core", "iface";
543 status = "disabled";
544 };
545
433 blsp1_uart2: serial@f991e000 { 546 blsp1_uart2: serial@f991e000 {
434 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 547 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
435 reg = <0xf991e000 0x1000>; 548 reg = <0xf991e000 0x1000>;
@@ -615,4 +728,30 @@
615 }; 728 };
616 }; 729 };
617 }; 730 };
731
732 vreg_boost: vreg-boost {
733 compatible = "regulator-fixed";
734
735 regulator-name = "vreg-boost";
736 regulator-min-microvolt = <3150000>;
737 regulator-max-microvolt = <3150000>;
738
739 regulator-always-on;
740 regulator-boot-on;
741
742 gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
743 enable-active-high;
744
745 pinctrl-names = "default";
746 pinctrl-0 = <&boost_bypass_n_pin>;
747 };
748 vreg_vph_pwr: vreg-vph-pwr {
749 compatible = "regulator-fixed";
750 regulator-name = "vph-pwr";
751
752 regulator-min-microvolt = <3600000>;
753 regulator-max-microvolt = <3600000>;
754
755 regulator-always-on;
756 };
618}; 757};
diff --git a/arch/arm/boot/dts/qcom-pm8941.dtsi b/arch/arm/boot/dts/qcom-pm8941.dtsi
index d95edb6f6265..f8eb5e31c920 100644
--- a/arch/arm/boot/dts/qcom-pm8941.dtsi
+++ b/arch/arm/boot/dts/qcom-pm8941.dtsi
@@ -88,6 +88,11 @@
88 <0 0xe1 0 IRQ_TYPE_NONE>, 88 <0 0xe1 0 IRQ_TYPE_NONE>,
89 <0 0xe2 0 IRQ_TYPE_NONE>, 89 <0 0xe2 0 IRQ_TYPE_NONE>,
90 <0 0xe3 0 IRQ_TYPE_NONE>; 90 <0 0xe3 0 IRQ_TYPE_NONE>;
91
92 boost_bypass_n_pin: boost-bypass {
93 pins = "gpio21";
94 function = "normal";
95 };
91 }; 96 };
92 97
93 pm8941_mpps: mpps@a000 { 98 pm8941_mpps: mpps@a000 {