xref: /linux/scripts/dtc/include-prefixes/arm/qcom/pm8058.dtsi (revision a195fb9165205985f8e335fe88ca769f957ffbdd)
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			interrupt-parent = <&pm8058>;
15			interrupts = <50 1>, <51 1>;
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			interrupt-parent = <&pm8058>;
64			interrupts = <74 1>, <75 1>;
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			interrupt-parent = <&pm8058>;
138			interrupts = <39 1>;
139			allow-set-time;
140		};
141	};
142};
143
144/ {
145	/*
146	 * These channels from the ADC are simply hardware monitors.
147	 * That is why the ADC is referred to as "HKADC" - HouseKeeping
148	 * ADC.
149	 */
150	iio-hwmon {
151		compatible = "iio-hwmon";
152		io-channels = <&pm8058_xoadc 0x00 0x01>, /* Battery */
153			      <&pm8058_xoadc 0x00 0x02>, /* DC in (charger) */
154			      <&pm8058_xoadc 0x00 0x04>, /* VPH the main system voltage */
155			      <&pm8058_xoadc 0x00 0x0b>, /* Die temperature */
156			      <&pm8058_xoadc 0x00 0x0c>, /* Reference voltage 1.25V */
157			      <&pm8058_xoadc 0x00 0x0d>, /* Reference voltage 0.625V */
158			      <&pm8058_xoadc 0x00 0x0e>; /* Reference voltage 0.325V */
159	};
160};
161