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