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