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