xref: /openbmc/linux/arch/arm/boot/dts/qcom/pm8226.dtsi (revision 87832e937c808a7ebc41254b408362e3255c87c9)
1*9d004cdaSDmitry Baryshkov// SPDX-License-Identifier: BSD-3-Clause
2*9d004cdaSDmitry Baryshkov#include <dt-bindings/iio/qcom,spmi-vadc.h>
3*9d004cdaSDmitry Baryshkov#include <dt-bindings/input/linux-event-codes.h>
4*9d004cdaSDmitry Baryshkov#include <dt-bindings/interrupt-controller/irq.h>
5*9d004cdaSDmitry Baryshkov#include <dt-bindings/spmi/spmi.h>
6*9d004cdaSDmitry Baryshkov
7*9d004cdaSDmitry Baryshkov/ {
8*9d004cdaSDmitry Baryshkov	thermal-zones {
9*9d004cdaSDmitry Baryshkov		pm8226-thermal {
10*9d004cdaSDmitry Baryshkov			polling-delay-passive = <100>;
11*9d004cdaSDmitry Baryshkov			polling-delay = <0>;
12*9d004cdaSDmitry Baryshkov			thermal-sensors = <&pm8226_temp>;
13*9d004cdaSDmitry Baryshkov
14*9d004cdaSDmitry Baryshkov			trips {
15*9d004cdaSDmitry Baryshkov				trip0 {
16*9d004cdaSDmitry Baryshkov					temperature = <105000>;
17*9d004cdaSDmitry Baryshkov					hysteresis = <2000>;
18*9d004cdaSDmitry Baryshkov					type = "passive";
19*9d004cdaSDmitry Baryshkov				};
20*9d004cdaSDmitry Baryshkov
21*9d004cdaSDmitry Baryshkov				trip1 {
22*9d004cdaSDmitry Baryshkov					temperature = <125000>;
23*9d004cdaSDmitry Baryshkov					hysteresis = <2000>;
24*9d004cdaSDmitry Baryshkov					type = "hot";
25*9d004cdaSDmitry Baryshkov				};
26*9d004cdaSDmitry Baryshkov
27*9d004cdaSDmitry Baryshkov				crit {
28*9d004cdaSDmitry Baryshkov					temperature = <145000>;
29*9d004cdaSDmitry Baryshkov					hysteresis = <2000>;
30*9d004cdaSDmitry Baryshkov					type = "critical";
31*9d004cdaSDmitry Baryshkov				};
32*9d004cdaSDmitry Baryshkov			};
33*9d004cdaSDmitry Baryshkov		};
34*9d004cdaSDmitry Baryshkov	};
35*9d004cdaSDmitry Baryshkov};
36*9d004cdaSDmitry Baryshkov
37*9d004cdaSDmitry Baryshkov&spmi_bus {
38*9d004cdaSDmitry Baryshkov	pm8226_0: pm8226@0 {
39*9d004cdaSDmitry Baryshkov		compatible = "qcom,pm8226", "qcom,spmi-pmic";
40*9d004cdaSDmitry Baryshkov		reg = <0x0 SPMI_USID>;
41*9d004cdaSDmitry Baryshkov		#address-cells = <1>;
42*9d004cdaSDmitry Baryshkov		#size-cells = <0>;
43*9d004cdaSDmitry Baryshkov
44*9d004cdaSDmitry Baryshkov		pon@800 {
45*9d004cdaSDmitry Baryshkov			compatible = "qcom,pm8916-pon";
46*9d004cdaSDmitry Baryshkov			reg = <0x800>;
47*9d004cdaSDmitry Baryshkov
48*9d004cdaSDmitry Baryshkov			pwrkey {
49*9d004cdaSDmitry Baryshkov				compatible = "qcom,pm8941-pwrkey";
50*9d004cdaSDmitry Baryshkov				interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
51*9d004cdaSDmitry Baryshkov				debounce = <15625>;
52*9d004cdaSDmitry Baryshkov				bias-pull-up;
53*9d004cdaSDmitry Baryshkov				linux,code = <KEY_POWER>;
54*9d004cdaSDmitry Baryshkov			};
55*9d004cdaSDmitry Baryshkov
56*9d004cdaSDmitry Baryshkov			pm8226_resin: resin {
57*9d004cdaSDmitry Baryshkov				compatible = "qcom,pm8941-resin";
58*9d004cdaSDmitry Baryshkov				interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
59*9d004cdaSDmitry Baryshkov				debounce = <15625>;
60*9d004cdaSDmitry Baryshkov				bias-pull-up;
61*9d004cdaSDmitry Baryshkov				status = "disabled";
62*9d004cdaSDmitry Baryshkov			};
63*9d004cdaSDmitry Baryshkov		};
64*9d004cdaSDmitry Baryshkov
65*9d004cdaSDmitry Baryshkov		smbb: charger@1000 {
66*9d004cdaSDmitry Baryshkov			compatible = "qcom,pm8226-charger";
67*9d004cdaSDmitry Baryshkov			reg = <0x1000>;
68*9d004cdaSDmitry Baryshkov			interrupts = <0x0 0x10 7 IRQ_TYPE_EDGE_BOTH>,
69*9d004cdaSDmitry Baryshkov				     <0x0 0x10 5 IRQ_TYPE_EDGE_BOTH>,
70*9d004cdaSDmitry Baryshkov				     <0x0 0x10 4 IRQ_TYPE_EDGE_BOTH>,
71*9d004cdaSDmitry Baryshkov				     <0x0 0x12 1 IRQ_TYPE_EDGE_BOTH>,
72*9d004cdaSDmitry Baryshkov				     <0x0 0x12 0 IRQ_TYPE_EDGE_BOTH>,
73*9d004cdaSDmitry Baryshkov				     <0x0 0x13 2 IRQ_TYPE_EDGE_BOTH>,
74*9d004cdaSDmitry Baryshkov				     <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>,
75*9d004cdaSDmitry Baryshkov				     <0x0 0x14 1 IRQ_TYPE_EDGE_BOTH>;
76*9d004cdaSDmitry Baryshkov			interrupt-names = "chg-done",
77*9d004cdaSDmitry Baryshkov					  "chg-fast",
78*9d004cdaSDmitry Baryshkov					  "chg-trkl",
79*9d004cdaSDmitry Baryshkov					  "bat-temp-ok",
80*9d004cdaSDmitry Baryshkov					  "bat-present",
81*9d004cdaSDmitry Baryshkov					  "chg-gone",
82*9d004cdaSDmitry Baryshkov					  "usb-valid",
83*9d004cdaSDmitry Baryshkov					  "dc-valid";
84*9d004cdaSDmitry Baryshkov
85*9d004cdaSDmitry Baryshkov			chg_otg: otg-vbus { };
86*9d004cdaSDmitry Baryshkov		};
87*9d004cdaSDmitry Baryshkov
88*9d004cdaSDmitry Baryshkov		pm8226_temp: temp-alarm@2400 {
89*9d004cdaSDmitry Baryshkov			compatible = "qcom,spmi-temp-alarm";
90*9d004cdaSDmitry Baryshkov			reg = <0x2400>;
91*9d004cdaSDmitry Baryshkov			interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>;
92*9d004cdaSDmitry Baryshkov			io-channels = <&pm8226_vadc VADC_DIE_TEMP>;
93*9d004cdaSDmitry Baryshkov			io-channel-names = "thermal";
94*9d004cdaSDmitry Baryshkov			#thermal-sensor-cells = <0>;
95*9d004cdaSDmitry Baryshkov		};
96*9d004cdaSDmitry Baryshkov
97*9d004cdaSDmitry Baryshkov		pm8226_vadc: adc@3100 {
98*9d004cdaSDmitry Baryshkov			compatible = "qcom,spmi-vadc";
99*9d004cdaSDmitry Baryshkov			reg = <0x3100>;
100*9d004cdaSDmitry Baryshkov			interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
101*9d004cdaSDmitry Baryshkov			#address-cells = <1>;
102*9d004cdaSDmitry Baryshkov			#size-cells = <0>;
103*9d004cdaSDmitry Baryshkov			#io-channel-cells = <1>;
104*9d004cdaSDmitry Baryshkov
105*9d004cdaSDmitry Baryshkov			channel@7 {
106*9d004cdaSDmitry Baryshkov				reg = <VADC_VSYS>;
107*9d004cdaSDmitry Baryshkov				qcom,pre-scaling = <1 3>;
108*9d004cdaSDmitry Baryshkov				label = "vph_pwr";
109*9d004cdaSDmitry Baryshkov			};
110*9d004cdaSDmitry Baryshkov			channel@8 {
111*9d004cdaSDmitry Baryshkov				reg = <VADC_DIE_TEMP>;
112*9d004cdaSDmitry Baryshkov				label = "die_temp";
113*9d004cdaSDmitry Baryshkov			};
114*9d004cdaSDmitry Baryshkov			channel@9 {
115*9d004cdaSDmitry Baryshkov				reg = <VADC_REF_625MV>;
116*9d004cdaSDmitry Baryshkov				label = "ref_625mv";
117*9d004cdaSDmitry Baryshkov			};
118*9d004cdaSDmitry Baryshkov			channel@a {
119*9d004cdaSDmitry Baryshkov				reg = <VADC_REF_1250MV>;
120*9d004cdaSDmitry Baryshkov				label = "ref_1250mv";
121*9d004cdaSDmitry Baryshkov			};
122*9d004cdaSDmitry Baryshkov			channel@e {
123*9d004cdaSDmitry Baryshkov				reg = <VADC_GND_REF>;
124*9d004cdaSDmitry Baryshkov			};
125*9d004cdaSDmitry Baryshkov			channel@f {
126*9d004cdaSDmitry Baryshkov				reg = <VADC_VDD_VADC>;
127*9d004cdaSDmitry Baryshkov			};
128*9d004cdaSDmitry Baryshkov		};
129*9d004cdaSDmitry Baryshkov
130*9d004cdaSDmitry Baryshkov		pm8226_iadc: adc@3600 {
131*9d004cdaSDmitry Baryshkov			compatible = "qcom,pm8226-iadc", "qcom,spmi-iadc";
132*9d004cdaSDmitry Baryshkov			reg = <0x3600>;
133*9d004cdaSDmitry Baryshkov			interrupts = <0x0 0x36 0x0 IRQ_TYPE_EDGE_RISING>;
134*9d004cdaSDmitry Baryshkov		};
135*9d004cdaSDmitry Baryshkov
136*9d004cdaSDmitry Baryshkov		rtc@6000 {
137*9d004cdaSDmitry Baryshkov			compatible = "qcom,pm8941-rtc";
138*9d004cdaSDmitry Baryshkov			reg = <0x6000>, <0x6100>;
139*9d004cdaSDmitry Baryshkov			reg-names = "rtc", "alarm";
140*9d004cdaSDmitry Baryshkov			interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
141*9d004cdaSDmitry Baryshkov		};
142*9d004cdaSDmitry Baryshkov
143*9d004cdaSDmitry Baryshkov		pm8226_mpps: mpps@a000 {
144*9d004cdaSDmitry Baryshkov			compatible = "qcom,pm8226-mpp", "qcom,spmi-mpp";
145*9d004cdaSDmitry Baryshkov			reg = <0xa000>;
146*9d004cdaSDmitry Baryshkov			gpio-controller;
147*9d004cdaSDmitry Baryshkov			#gpio-cells = <2>;
148*9d004cdaSDmitry Baryshkov			gpio-ranges = <&pm8226_mpps 0 0 8>;
149*9d004cdaSDmitry Baryshkov			interrupt-controller;
150*9d004cdaSDmitry Baryshkov			#interrupt-cells = <2>;
151*9d004cdaSDmitry Baryshkov		};
152*9d004cdaSDmitry Baryshkov
153*9d004cdaSDmitry Baryshkov		pm8226_gpios: gpio@c000 {
154*9d004cdaSDmitry Baryshkov			compatible = "qcom,pm8226-gpio", "qcom,spmi-gpio";
155*9d004cdaSDmitry Baryshkov			reg = <0xc000>;
156*9d004cdaSDmitry Baryshkov			gpio-controller;
157*9d004cdaSDmitry Baryshkov			#gpio-cells = <2>;
158*9d004cdaSDmitry Baryshkov			gpio-ranges = <&pm8226_gpios 0 0 8>;
159*9d004cdaSDmitry Baryshkov			interrupt-controller;
160*9d004cdaSDmitry Baryshkov			#interrupt-cells = <2>;
161*9d004cdaSDmitry Baryshkov		};
162*9d004cdaSDmitry Baryshkov	};
163*9d004cdaSDmitry Baryshkov
164*9d004cdaSDmitry Baryshkov	pm8226_1: pm8226@1 {
165*9d004cdaSDmitry Baryshkov		compatible = "qcom,pm8226", "qcom,spmi-pmic";
166*9d004cdaSDmitry Baryshkov		reg = <0x1 SPMI_USID>;
167*9d004cdaSDmitry Baryshkov		#address-cells = <1>;
168*9d004cdaSDmitry Baryshkov		#size-cells = <0>;
169*9d004cdaSDmitry Baryshkov
170*9d004cdaSDmitry Baryshkov		pm8226_spmi_regulators: regulators {
171*9d004cdaSDmitry Baryshkov			compatible = "qcom,pm8226-regulators";
172*9d004cdaSDmitry Baryshkov		};
173*9d004cdaSDmitry Baryshkov
174*9d004cdaSDmitry Baryshkov		pm8226_vib: vibrator@c000 {
175*9d004cdaSDmitry Baryshkov			compatible = "qcom,pm8916-vib";
176*9d004cdaSDmitry Baryshkov			reg = <0xc000>;
177*9d004cdaSDmitry Baryshkov			status = "disabled";
178*9d004cdaSDmitry Baryshkov		};
179*9d004cdaSDmitry Baryshkov	};
180*9d004cdaSDmitry Baryshkov};
181