Qualcomm Device Tree Changes for v4.9

* 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
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJXycmZAAoJEFKiBbHx2RXV9xwQAJIkqjV4c9x7H6MAkfI1TyxE
 KfnkTbSRDwddvwoE8+Q7jlDcOi8CTw0mf6lkLX5O66GzP0xop0k5YQfGEGnOs3Ct
 5ikS7n55+6NE2PvF0HY4th1Lca0z6FSr48OONAXOuzwXsVoGv8MmKQKW8tLgdI3v
 cYnVfUgqU5JI1m3jhmYzn57bak8KktYUyt4RXjs+iIb1aYx1ol/PNp4Wp/87dpy3
 7B3lmVYp1Dp8P5d52jLjEV8m5pLEmn92YfaksLRTLeLwiwYwR8vfdR/sTnTVxa2/
 tOo0sXhPtsdq/jCu19z31eME5ucGlsqxOHg38TElgFDvztaz7KHwxOnQ/BgGYPmI
 niZEZty1uocAPULrxWOjuGSqaDhIWj1qmmxUGn8Si7MIlK+61ypCuJ9StC46PLjy
 uCnG64PibPEnikdM6pLT2qi6huz/O/8qR/HgGpEwHrRlzM5I88c5QljfPcgrTeNU
 P+D81RgK3/xyYOcZRsXb4imMtph/UwljK3/oa8gZYi50yRiT69zzRXMZeVTbLaiF
 zQJULk3h+4OXmUOzjnWzFZYxejVQ69uuSlnGt/OoD8zuD53R1v2PUE9U8tuh5iSY
 n28gJfz+wLbFBofbGwdujB1D9VTrHmSMcgbdmOpn56y3DB4LbKuyINhVXqMhHJuI
 HbeEj3o7J8HY1w37HW8K
 =hUYu
 -----END PGP SIGNATURE-----

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
This commit is contained in:
Arnd Bergmann 2016-09-13 17:29:08 +02:00
commit 9992f21333
12 changed files with 857 additions and 60 deletions

View file

@ -22,6 +22,11 @@ Required properties :
Optional properties :
- #power-domain-cells : shall contain 1
- Qualcomm TSENS (thermal sensor device) on some devices can
be part of GCC and hence the TSENS properties can also be
part of the GCC/clock-controller node.
For more details on the TSENS properties please refer
Documentation/devicetree/bindings/thermal/qcom-tsens.txt
Example:
clock-controller@900000 {
@ -31,3 +36,14 @@ Example:
#reset-cells = <1>;
#power-domain-cells = <1>;
};
Example of GCC with TSENS properties:
clock-controller@900000 {
compatible = "qcom,gcc-apq8064";
reg = <0x00900000 0x4000>;
nvmem-cells = <&tsens_calib>, <&tsens_backup>;
nvmem-cell-names = "calib", "calib_backup";
#clock-cells = <1>;
#reset-cells = <1>;
#thermal-sensor-cells = <1>;
};

View file

@ -603,6 +603,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-ipq8064-ap148.dtb \
qcom-msm8660-surf.dtb \
qcom-msm8960-cdp.dtb \
qcom-msm8974-lge-nexus5-hammerhead.dtb \
qcom-msm8974-sony-xperia-honami.dtb
dtb-$(CONFIG_ARCH_REALVIEW) += \
arm-realview-pb1176.dtb \

View file

@ -239,6 +239,45 @@ pinconf {
};
};
};
led@48 {
/*
* The keypad LED @0x48 is routed to
* the sensor board where it is
* connected to an infrared LED
* SFH4650 (60mW, @850nm) next to the
* ambient light and proximity sensor
* Capella Microsystems CM3605.
*/
compatible = "qcom,pm8058-keypad-led";
reg = <0x48>;
label = "pm8058:infrared:proximitysensor";
default-state = "off";
};
led@131 {
compatible = "qcom,pm8058-led";
reg = <0x131>;
label = "pm8058:red";
default-state = "off";
};
led@132 {
/*
* This is actually green too on my
* board, but documented as yellow.
*/
compatible = "qcom,pm8058-led";
reg = <0x132>;
label = "pm8058:yellow";
default-state = "off";
linux,default-trigger = "mmc0";
};
led@133 {
compatible = "qcom,pm8058-led";
reg = <0x133>;
label = "pm8058:green";
default-state = "on";
linux,default-trigger = "heartbeat";
};
};
};

View file

@ -253,6 +253,7 @@ phy@12500000 {
vddcx-supply = <&pm8921_s3>;
v3p3-supply = <&pm8921_l3>;
v1p8-supply = <&pm8921_l4>;
dr_mode = "otg";
};
gadget@12500000 {
@ -272,5 +273,19 @@ sdcc@12400000 {
vqmmc-supply = <&pm8921_s4>;
};
};
imem@2a03f000 {
compatible = "syscon", "simple-mfd";
reg = <0x2a03f000 0x1000>;
reboot-mode {
compatible = "syscon-reboot-mode";
offset = <0x65c>;
mode-normal = <0x77665501>;
mode-bootloader = <0x77665500>;
mode-recovery = <0x77665502>;
};
};
};
};

View file

@ -5,6 +5,7 @@
#include <dt-bindings/reset/qcom,gcc-msm8960.h>
#include <dt-bindings/clock/qcom,mmcc-msm8960.h>
#include <dt-bindings/soc/qcom,gsbi.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
/ {
model = "Qualcomm APQ8064";
@ -86,6 +87,92 @@ CPU_SPC: spc {
};
};
thermal-zones {
cpu-thermal0 {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&gcc 7>;
coefficients = <1199 0>;
trips {
cpu_alert0: trip0 {
temperature = <75000>;
hysteresis = <2000>;
type = "passive";
};
cpu_crit0: trip1 {
temperature = <110000>;
hysteresis = <2000>;
type = "critical";
};
};
};
cpu-thermal1 {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&gcc 8>;
coefficients = <1132 0>;
trips {
cpu_alert1: trip0 {
temperature = <75000>;
hysteresis = <2000>;
type = "passive";
};
cpu_crit1: trip1 {
temperature = <110000>;
hysteresis = <2000>;
type = "critical";
};
};
};
cpu-thermal2 {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&gcc 9>;
coefficients = <1199 0>;
trips {
cpu_alert2: trip0 {
temperature = <75000>;
hysteresis = <2000>;
type = "passive";
};
cpu_crit2: trip1 {
temperature = <110000>;
hysteresis = <2000>;
type = "critical";
};
};
};
cpu-thermal3 {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&gcc 10>;
coefficients = <1132 0>;
trips {
cpu_alert3: trip0 {
temperature = <75000>;
hysteresis = <2000>;
type = "passive";
};
cpu_crit3: trip1 {
temperature = <110000>;
hysteresis = <2000>;
type = "critical";
};
};
};
};
cpu-pmu {
compatible = "qcom,krait-pmu";
interrupts = <1 10 0x304>;
@ -559,22 +646,50 @@ pm8921_gpio: gpio@150 {
compatible = "qcom,pm8921-gpio",
"qcom,ssbi-gpio";
reg = <0x150>;
interrupts = <192 1>, <193 1>, <194 1>,
<195 1>, <196 1>, <197 1>,
<198 1>, <199 1>, <200 1>,
<201 1>, <202 1>, <203 1>,
<204 1>, <205 1>, <206 1>,
<207 1>, <208 1>, <209 1>,
<210 1>, <211 1>, <212 1>,
<213 1>, <214 1>, <215 1>,
<216 1>, <217 1>, <218 1>,
<219 1>, <220 1>, <221 1>,
<222 1>, <223 1>, <224 1>,
<225 1>, <226 1>, <227 1>,
<228 1>, <229 1>, <230 1>,
<231 1>, <232 1>, <233 1>,
<234 1>, <235 1>;
interrupts = <192 IRQ_TYPE_NONE>,
<193 IRQ_TYPE_NONE>,
<194 IRQ_TYPE_NONE>,
<195 IRQ_TYPE_NONE>,
<196 IRQ_TYPE_NONE>,
<197 IRQ_TYPE_NONE>,
<198 IRQ_TYPE_NONE>,
<199 IRQ_TYPE_NONE>,
<200 IRQ_TYPE_NONE>,
<201 IRQ_TYPE_NONE>,
<202 IRQ_TYPE_NONE>,
<203 IRQ_TYPE_NONE>,
<204 IRQ_TYPE_NONE>,
<205 IRQ_TYPE_NONE>,
<206 IRQ_TYPE_NONE>,
<207 IRQ_TYPE_NONE>,
<208 IRQ_TYPE_NONE>,
<209 IRQ_TYPE_NONE>,
<210 IRQ_TYPE_NONE>,
<211 IRQ_TYPE_NONE>,
<212 IRQ_TYPE_NONE>,
<213 IRQ_TYPE_NONE>,
<214 IRQ_TYPE_NONE>,
<215 IRQ_TYPE_NONE>,
<216 IRQ_TYPE_NONE>,
<217 IRQ_TYPE_NONE>,
<218 IRQ_TYPE_NONE>,
<219 IRQ_TYPE_NONE>,
<220 IRQ_TYPE_NONE>,
<221 IRQ_TYPE_NONE>,
<222 IRQ_TYPE_NONE>,
<223 IRQ_TYPE_NONE>,
<224 IRQ_TYPE_NONE>,
<225 IRQ_TYPE_NONE>,
<226 IRQ_TYPE_NONE>,
<227 IRQ_TYPE_NONE>,
<228 IRQ_TYPE_NONE>,
<229 IRQ_TYPE_NONE>,
<230 IRQ_TYPE_NONE>,
<231 IRQ_TYPE_NONE>,
<232 IRQ_TYPE_NONE>,
<233 IRQ_TYPE_NONE>,
<234 IRQ_TYPE_NONE>,
<235 IRQ_TYPE_NONE>;
gpio-controller;
#gpio-cells = <2>;
@ -587,9 +702,18 @@ pm8921_mpps: mpps@50 {
gpio-controller;
#gpio-cells = <2>;
interrupts =
<128 1>, <129 1>, <130 1>, <131 1>,
<132 1>, <133 1>, <134 1>, <135 1>,
<136 1>, <137 1>, <138 1>, <139 1>;
<128 IRQ_TYPE_NONE>,
<129 IRQ_TYPE_NONE>,
<130 IRQ_TYPE_NONE>,
<131 IRQ_TYPE_NONE>,
<132 IRQ_TYPE_NONE>,
<133 IRQ_TYPE_NONE>,
<134 IRQ_TYPE_NONE>,
<135 IRQ_TYPE_NONE>,
<136 IRQ_TYPE_NONE>,
<137 IRQ_TYPE_NONE>,
<138 IRQ_TYPE_NONE>,
<139 IRQ_TYPE_NONE>;
};
rtc@11d {
@ -611,11 +735,28 @@ pwrkey@1c {
};
};
qfprom: qfprom@700000 {
compatible = "qcom,qfprom";
reg = <0x00700000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
tsens_calib: calib {
reg = <0x404 0x10>;
};
tsens_backup: backup_calib {
reg = <0x414 0x10>;
};
};
gcc: clock-controller@900000 {
compatible = "qcom,gcc-apq8064";
reg = <0x00900000 0x4000>;
nvmem-cells = <&tsens_calib>, <&tsens_backup>;
nvmem-cell-names = "calib", "calib_backup";
#clock-cells = <1>;
#reset-cells = <1>;
#thermal-sensor-cells = <1>;
};
lcc: clock-controller@28000000 {
@ -712,7 +853,6 @@ usb1_phy: phy@12500000 {
reg = <0x12500000 0x400>;
interrupts = <GIC_SPI 100 IRQ_TYPE_NONE>;
status = "disabled";
dr_mode = "host";
clocks = <&gcc USB_HS1_XCVR_CLK>,
<&gcc USB_HS1_H_CLK>;

View file

@ -94,6 +94,88 @@ scm {
};
};
thermal-zones {
cpu-thermal0 {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 5>;
trips {
cpu_alert0: trip0 {
temperature = <75000>;
hysteresis = <2000>;
type = "passive";
};
cpu_crit0: trip1 {
temperature = <110000>;
hysteresis = <2000>;
type = "critical";
};
};
};
cpu-thermal1 {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 6>;
trips {
cpu_alert1: trip0 {
temperature = <75000>;
hysteresis = <2000>;
type = "passive";
};
cpu_crit1: trip1 {
temperature = <110000>;
hysteresis = <2000>;
type = "critical";
};
};
};
cpu-thermal2 {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 7>;
trips {
cpu_alert2: trip0 {
temperature = <75000>;
hysteresis = <2000>;
type = "passive";
};
cpu_crit2: trip1 {
temperature = <110000>;
hysteresis = <2000>;
type = "critical";
};
};
};
cpu-thermal3 {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 8>;
trips {
cpu_alert3: trip0 {
temperature = <75000>;
hysteresis = <2000>;
type = "passive";
};
cpu_crit3: trip1 {
temperature = <110000>;
hysteresis = <2000>;
type = "critical";
};
};
};
};
cpu-pmu {
compatible = "qcom,krait-pmu";
interrupts = <1 7 0xf04>;
@ -150,6 +232,27 @@ apcs: syscon@f9011000 {
reg = <0xf9011000 0x1000>;
};
qfprom: qfprom@fc4bc000 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "qcom,qfprom";
reg = <0xfc4bc000 0x1000>;
tsens_calib: calib@d0 {
reg = <0xd0 0x18>;
};
tsens_backup: backup@440 {
reg = <0x440 0x10>;
};
};
tsens: thermal-sensor@fc4a8000 {
compatible = "qcom,msm8974-tsens";
reg = <0xfc4a8000 0x2000>;
nvmem-cells = <&tsens_calib>, <&tsens_backup>;
nvmem-cell-names = "calib", "calib_backup";
#thermal-sensor-cells = <1>;
};
timer@f9020000 {
#address-cells = <1>;
#size-cells = <1>;

View file

@ -95,6 +95,7 @@ sata-phy@1b400000 {
};
sata@29000000 {
ports-implemented = <0x1>;
status = "ok";
};
};

View file

@ -2,6 +2,7 @@
/include/ "skeleton.dtsi"
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/qcom,gcc-msm8660.h>
#include <dt-bindings/soc/qcom,gsbi.h>
@ -159,21 +160,50 @@ pm8058_gpio: gpio@150 {
"qcom,ssbi-gpio";
reg = <0x150>;
interrupt-parent = <&pmicintc>;
interrupts = <192 1>, <193 1>, <194 1>,
<195 1>, <196 1>, <197 1>,
<198 1>, <199 1>, <200 1>,
<201 1>, <202 1>, <203 1>,
<204 1>, <205 1>, <206 1>,
<207 1>, <208 1>, <209 1>,
<210 1>, <211 1>, <212 1>,
<213 1>, <214 1>, <215 1>,
<216 1>, <217 1>, <218 1>,
<219 1>, <220 1>, <221 1>,
<222 1>, <223 1>, <224 1>,
<225 1>, <226 1>, <227 1>,
<228 1>, <229 1>, <230 1>,
<231 1>, <232 1>, <233 1>,
<234 1>, <235 1>;
interrupts = <192 IRQ_TYPE_NONE>,
<193 IRQ_TYPE_NONE>,
<194 IRQ_TYPE_NONE>,
<195 IRQ_TYPE_NONE>,
<196 IRQ_TYPE_NONE>,
<197 IRQ_TYPE_NONE>,
<198 IRQ_TYPE_NONE>,
<199 IRQ_TYPE_NONE>,
<200 IRQ_TYPE_NONE>,
<201 IRQ_TYPE_NONE>,
<202 IRQ_TYPE_NONE>,
<203 IRQ_TYPE_NONE>,
<204 IRQ_TYPE_NONE>,
<205 IRQ_TYPE_NONE>,
<206 IRQ_TYPE_NONE>,
<207 IRQ_TYPE_NONE>,
<208 IRQ_TYPE_NONE>,
<209 IRQ_TYPE_NONE>,
<210 IRQ_TYPE_NONE>,
<211 IRQ_TYPE_NONE>,
<212 IRQ_TYPE_NONE>,
<213 IRQ_TYPE_NONE>,
<214 IRQ_TYPE_NONE>,
<215 IRQ_TYPE_NONE>,
<216 IRQ_TYPE_NONE>,
<217 IRQ_TYPE_NONE>,
<218 IRQ_TYPE_NONE>,
<219 IRQ_TYPE_NONE>,
<220 IRQ_TYPE_NONE>,
<221 IRQ_TYPE_NONE>,
<222 IRQ_TYPE_NONE>,
<223 IRQ_TYPE_NONE>,
<224 IRQ_TYPE_NONE>,
<225 IRQ_TYPE_NONE>,
<226 IRQ_TYPE_NONE>,
<227 IRQ_TYPE_NONE>,
<228 IRQ_TYPE_NONE>,
<229 IRQ_TYPE_NONE>,
<230 IRQ_TYPE_NONE>,
<231 IRQ_TYPE_NONE>,
<232 IRQ_TYPE_NONE>,
<233 IRQ_TYPE_NONE>,
<234 IRQ_TYPE_NONE>,
<235 IRQ_TYPE_NONE>;
gpio-controller;
#gpio-cells = <2>;
@ -187,9 +217,18 @@ pm8058_mpps: mpps@50 {
#gpio-cells = <2>;
interrupt-parent = <&pmicintc>;
interrupts =
<128 1>, <129 1>, <130 1>, <131 1>,
<132 1>, <133 1>, <134 1>, <135 1>,
<136 1>, <137 1>, <138 1>, <139 1>;
<128 IRQ_TYPE_NONE>,
<129 IRQ_TYPE_NONE>,
<130 IRQ_TYPE_NONE>,
<131 IRQ_TYPE_NONE>,
<132 IRQ_TYPE_NONE>,
<133 IRQ_TYPE_NONE>,
<134 IRQ_TYPE_NONE>,
<135 IRQ_TYPE_NONE>,
<136 IRQ_TYPE_NONE>,
<137 IRQ_TYPE_NONE>,
<138 IRQ_TYPE_NONE>,
<139 IRQ_TYPE_NONE>;
};
pwrkey@1c {

View file

@ -0,0 +1,262 @@
#include "qcom-msm8974.dtsi"
#include "qcom-pm8841.dtsi"
#include "qcom-pm8941.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
/ {
model = "LGE MSM 8974 HAMMERHEAD";
compatible = "lge,hammerhead", "qcom,msm8974";
aliases {
serial0 = &blsp1_uart1;
};
chosen {
stdout-path = "serial0:115200n8";
};
smd {
rpm {
rpm_requests {
pm8841-regulators {
s1 {
regulator-min-microvolt = <675000>;
regulator-max-microvolt = <1050000>;
};
s2 {
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1050000>;
};
s3 {
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1050000>;
};
s4 {
regulator-min-microvolt = <815000>;
regulator-max-microvolt = <900000>;
};
};
pm8941-regulators {
vdd_l1_l3-supply = <&pm8941_s1>;
vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
vdd_l4_l11-supply = <&pm8941_s1>;
vdd_l5_l7-supply = <&pm8941_s2>;
vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>;
vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
vdd_l21-supply = <&vreg_boost>;
s1 {
regulator-min-microvolt = <1300000>;
regulator-max-microvolt = <1300000>;
regulator-always-on;
regulator-boot-on;
};
s2 {
regulator-min-microvolt = <2150000>;
regulator-max-microvolt = <2150000>;
regulator-boot-on;
};
s3 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-boot-on;
};
l1 {
regulator-min-microvolt = <1225000>;
regulator-max-microvolt = <1225000>;
regulator-always-on;
regulator-boot-on;
};
l2 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
l3 {
regulator-min-microvolt = <1225000>;
regulator-max-microvolt = <1225000>;
};
l4 {
regulator-min-microvolt = <1225000>;
regulator-max-microvolt = <1225000>;
};
l5 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
l6 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
};
l7 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
};
l8 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
l9 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2950000>;
};
l10 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2950000>;
};
l11 {
regulator-min-microvolt = <1300000>;
regulator-max-microvolt = <1300000>;
};
l12 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-boot-on;
};
l13 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2950000>;
regulator-boot-on;
};
l14 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
l15 {
regulator-min-microvolt = <2050000>;
regulator-max-microvolt = <2050000>;
};
l16 {
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <2700000>;
};
l17 {
regulator-min-microvolt = <2850000>;
regulator-max-microvolt = <2850000>;
};
l18 {
regulator-min-microvolt = <2850000>;
regulator-max-microvolt = <2850000>;
};
l19 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
};
l20 {
regulator-min-microvolt = <2950000>;
regulator-max-microvolt = <2950000>;
regulator-boot-on;
};
l21 {
regulator-min-microvolt = <2950000>;
regulator-max-microvolt = <2950000>;
regulator-boot-on;
};
l22 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
};
l23 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
l24 {
regulator-min-microvolt = <3075000>;
regulator-max-microvolt = <3075000>;
regulator-boot-on;
};
};
};
};
};
};
&soc {
serial@f991d000 {
status = "ok";
};
gpio-keys {
compatible = "gpio-keys";
input-name = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&gpio_keys_pin_a>;
volume-up {
label = "volume_up";
gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
linux,input-type = <1>;
linux,code = <KEY_VOLUMEUP>;
};
volume-down {
label = "volume_down";
gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
linux,input-type = <1>;
linux,code = <KEY_VOLUMEDOWN>;
};
};
};
&spmi_bus {
pm8941@0 {
gpios@c000 {
gpio_keys_pin_a: gpio-keys-active {
pins = "gpio2", "gpio3";
function = "normal";
bias-pull-up;
power-source = <PM8941_GPIO_S3>;
};
};
};
};

View file

@ -257,23 +257,6 @@ l24 {
};
};
};
vreg_boost: vreg-boost {
compatible = "regulator-fixed";
regulator-name = "vreg-boost";
regulator-min-microvolt = <3150000>;
regulator-max-microvolt = <3150000>;
regulator-always-on;
regulator-boot-on;
gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&boost_bypass_n_pin>;
};
};
&soc {
@ -311,6 +294,45 @@ serial@f991e000 {
pinctrl-0 = <&blsp1_uart2_pin_a>;
};
i2c@f9924000 {
status = "ok";
clock-frequency = <355000>;
qcom,src-freq = <50000000>;
pinctrl-names = "default";
pinctrl-0 = <&i2c2_pins>;
synaptics@2c {
compatible = "syna,rmi4-i2c";
reg = <0x2c>;
interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
#address-cells = <1>;
#size-cells = <0>;
vdd-supply = <&pm8941_l22>;
vio-supply = <&pm8941_lvs3>;
pinctrl-names = "default";
pinctrl-0 = <&ts_int_pin>;
syna,startup-delay-ms = <10>;
rmi4-f01@1 {
reg = <0x1>;
syna,nosleep-mode = <1>;
};
rmi4-f11@11 {
reg = <0x11>;
touchscreen-inverted-x;
syna,sensor-type = <1>;
};
};
};
pinctrl@fd510000 {
blsp1_uart2_pin_a: blsp1-uart2-pin-active {
rx {
@ -330,6 +352,16 @@ tx {
};
};
i2c2_pins: i2c2 {
mux {
pins = "gpio6", "gpio7";
function = "blsp_i2c2";
drive-strength = <2>;
bias-disable;
};
};
sdhc1_pin_a: sdhc1-pin-active {
clk {
pins = "sdc1_clk";
@ -366,6 +398,16 @@ cmd-data {
};
};
ts_int_pin: touch-int {
pin {
pins = "gpio61";
function = "gpio";
drive-strength = <2>;
bias-disable;
input-enable;
};
};
};
dma-controller@f9944000 {
@ -387,11 +429,6 @@ charger@1000 {
};
gpios@c000 {
boost_bypass_n_pin: boost-bypass {
pins = "gpio21";
function = "normal";
};
gpio_keys_pin_a: gpio-keys-active {
pins = "gpio2", "gpio3", "gpio4", "gpio5";
function = "normal";

View file

@ -2,6 +2,7 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/qcom,gcc-msm8974.h>
#include <dt-bindings/gpio/gpio.h>
#include "skeleton.dtsi"
/ {
@ -131,6 +132,88 @@ CPU_SPC: spc {
};
};
thermal-zones {
cpu-thermal0 {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 5>;
trips {
cpu_alert0: trip0 {
temperature = <75000>;
hysteresis = <2000>;
type = "passive";
};
cpu_crit0: trip1 {
temperature = <110000>;
hysteresis = <2000>;
type = "critical";
};
};
};
cpu-thermal1 {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 6>;
trips {
cpu_alert1: trip0 {
temperature = <75000>;
hysteresis = <2000>;
type = "passive";
};
cpu_crit1: trip1 {
temperature = <110000>;
hysteresis = <2000>;
type = "critical";
};
};
};
cpu-thermal2 {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 7>;
trips {
cpu_alert2: trip0 {
temperature = <75000>;
hysteresis = <2000>;
type = "passive";
};
cpu_crit2: trip1 {
temperature = <110000>;
hysteresis = <2000>;
type = "critical";
};
};
};
cpu-thermal3 {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 8>;
trips {
cpu_alert3: trip0 {
temperature = <75000>;
hysteresis = <2000>;
type = "passive";
};
cpu_crit3: trip1 {
temperature = <110000>;
hysteresis = <2000>;
type = "critical";
};
};
};
};
cpu-pmu {
compatible = "qcom,krait-pmu";
interrupts = <1 7 0xf04>;
@ -287,6 +370,27 @@ apcs: syscon@f9011000 {
reg = <0xf9011000 0x1000>;
};
qfprom: qfprom@fc4bc000 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "qcom,qfprom";
reg = <0xfc4bc000 0x1000>;
tsens_calib: calib@d0 {
reg = <0xd0 0x18>;
};
tsens_backup: backup@440 {
reg = <0x440 0x10>;
};
};
tsens: thermal-sensor@fc4a8000 {
compatible = "qcom,msm8974-tsens";
reg = <0xfc4a8000 0x2000>;
nvmem-cells = <&tsens_calib>, <&tsens_backup>;
nvmem-cell-names = "calib", "calib_backup";
#thermal-sensor-cells = <1>;
};
timer@f9020000 {
#address-cells = <1>;
#size-cells = <1>;
@ -430,6 +534,15 @@ rpm_msg_ram: memory@fc428000 {
reg = <0xfc428000 0x4000>;
};
blsp1_uart1: serial@f991d000 {
compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
reg = <0xf991d000 0x1000>;
interrupts = <0 107 0x0>;
clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
status = "disabled";
};
blsp1_uart2: serial@f991e000 {
compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
reg = <0xf991e000 0x1000>;
@ -615,4 +728,30 @@ pm8941-regulators {
};
};
};
vreg_boost: vreg-boost {
compatible = "regulator-fixed";
regulator-name = "vreg-boost";
regulator-min-microvolt = <3150000>;
regulator-max-microvolt = <3150000>;
regulator-always-on;
regulator-boot-on;
gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&boost_bypass_n_pin>;
};
vreg_vph_pwr: vreg-vph-pwr {
compatible = "regulator-fixed";
regulator-name = "vph-pwr";
regulator-min-microvolt = <3600000>;
regulator-max-microvolt = <3600000>;
regulator-always-on;
};
};

View file

@ -88,6 +88,11 @@ pm8941_gpios: gpios@c000 {
<0 0xe1 0 IRQ_TYPE_NONE>,
<0 0xe2 0 IRQ_TYPE_NONE>,
<0 0xe3 0 IRQ_TYPE_NONE>;
boost_bypass_n_pin: boost-bypass {
pins = "gpio21";
function = "normal";
};
};
pm8941_mpps: mpps@a000 {