blob: 984b797779846096e83342646eec8a24981616e9 [file] [log] [blame]
Tom Rini93743d22024-04-01 09:08:13 -04001// 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};