xref: /linux/arch/arm/boot/dts/qcom/pm8921.dtsi (revision 68a052239fc4b351e961f698b824f7654a346091)
1// SPDX-License-Identifier: GPL-2.0
2
3&ssbi {
4	pm8921: pmic {
5		compatible = "qcom,pm8921";
6		#interrupt-cells = <2>;
7		interrupt-controller;
8		#address-cells = <1>;
9		#size-cells = <0>;
10
11		pwrkey@1c {
12			compatible = "qcom,pm8921-pwrkey";
13			reg = <0x1c>;
14			interrupts-extended = <&pm8921 50 IRQ_TYPE_EDGE_RISING>,
15					      <&pm8921 51 IRQ_TYPE_EDGE_RISING>;
16			debounce = <15625>;
17			pull-up;
18		};
19
20		pm8921_vibrator: vibrator@4a {
21			compatible = "qcom,pm8921-vib";
22			reg = <0x4a>;
23			status = "disabled";
24		};
25
26		pm8921_mpps: mpps@50 {
27			compatible = "qcom,pm8921-mpp",
28				     "qcom,ssbi-mpp";
29			reg = <0x50>;
30			gpio-controller;
31			#gpio-cells = <2>;
32			gpio-ranges = <&pm8921_mpps 0 0 12>;
33			interrupt-controller;
34			#interrupt-cells = <2>;
35		};
36
37		rtc@11d {
38			compatible = "qcom,pm8921-rtc";
39			reg = <0x11d>;
40			interrupts-extended = <&pm8921 39 IRQ_TYPE_EDGE_RISING>;
41			allow-set-time;
42		};
43
44		pm8921_keypad: keypad@148 {
45			compatible = "qcom,pm8921-keypad";
46			reg = <0x148>;
47			interrupts-extended = <&pm8921 74 IRQ_TYPE_EDGE_RISING>,
48					      <&pm8921 75 IRQ_TYPE_EDGE_RISING>;
49			debounce = <15>;
50			scan-delay = <32>;
51			row-hold = <91500>;
52			status = "disabled";
53		};
54
55		pm8921_gpio: gpio@150 {
56
57			compatible = "qcom,pm8921-gpio",
58				     "qcom,ssbi-gpio";
59			reg = <0x150>;
60			interrupt-controller;
61			#interrupt-cells = <2>;
62			gpio-controller;
63			gpio-ranges = <&pm8921_gpio 0 0 44>;
64			#gpio-cells = <2>;
65
66		};
67
68		pm8921_xoadc: xoadc@197 {
69			compatible = "qcom,pm8921-adc";
70			reg = <0x197>;
71			interrupts-extended = <&pm8921 78 IRQ_TYPE_EDGE_RISING>;
72			#address-cells = <2>;
73			#size-cells = <0>;
74			#io-channel-cells = <2>;
75
76			vcoin: adc-channel@0 {
77				reg = <0x00 0x00>;
78			};
79
80			vbat: adc-channel@1 {
81				reg = <0x00 0x01>;
82			};
83
84			dcin: adc-channel@2 {
85				reg = <0x00 0x02>;
86			};
87
88			vph_pwr: adc-channel@4 {
89				reg = <0x00 0x04>;
90			};
91
92			batt_therm: adc-channel@8 {
93				reg = <0x00 0x08>;
94			};
95
96			batt_id: adc-channel@9 {
97				reg = <0x00 0x09>;
98			};
99
100			usb_vbus: adc-channel@a {
101				reg = <0x00 0x0a>;
102			};
103
104			die_temp: adc-channel@b {
105				reg = <0x00 0x0b>;
106			};
107
108			ref_625mv: adc-channel@c {
109				reg = <0x00 0x0c>;
110			};
111
112			ref_1250mv: adc-channel@d {
113				reg = <0x00 0x0d>;
114			};
115
116			chg_temp: adc-channel@e {
117				reg = <0x00 0x0e>;
118			};
119
120			ref_muxoff: adc-channel@f {
121				reg = <0x00 0x0f>;
122			};
123		};
124	};
125};
126
127/ {
128	/*
129	 * These channels from the ADC are simply hardware monitors.
130	 * That is why the ADC is referred to as "HKADC" - HouseKeeping
131	 * ADC.
132	 */
133	iio-hwmon {
134		compatible = "iio-hwmon";
135		io-channels = <&pm8921_xoadc 0x00 0x01>, /* Battery */
136			      <&pm8921_xoadc 0x00 0x02>, /* DC in (charger) */
137			      <&pm8921_xoadc 0x00 0x04>, /* VPH the main system voltage */
138			      <&pm8921_xoadc 0x00 0x0b>, /* Die temperature */
139			      <&pm8921_xoadc 0x00 0x0c>, /* Reference voltage 1.25V */
140			      <&pm8921_xoadc 0x00 0x0d>, /* Reference voltage 0.625V */
141			      <&pm8921_xoadc 0x00 0x0e>; /* Charger temperature */
142	};
143};
144