1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright 2012 Linaro Ltd
4*724ba675SRob Herring */
5*724ba675SRob Herring
6*724ba675SRob Herring#include <dt-bindings/clock/ste-ab8500.h>
7*724ba675SRob Herring
8*724ba675SRob Herring/ {
9*724ba675SRob Herring	/* Essential housekeeping hardware monitors */
10*724ba675SRob Herring	iio-hwmon {
11*724ba675SRob Herring		compatible = "iio-hwmon";
12*724ba675SRob Herring		io-channels = <&gpadc 0x02>, /* Battery temperature */
13*724ba675SRob Herring			      <&gpadc 0x08>, /* Main battery voltage */
14*724ba675SRob Herring			      <&gpadc 0x09>, /* VBUS */
15*724ba675SRob Herring			      <&gpadc 0x0b>, /* Charger current */
16*724ba675SRob Herring			      <&gpadc 0x0c>, /* Backup battery voltage */
17*724ba675SRob Herring			      <&gpadc 0x0d>; /* Die temperature */
18*724ba675SRob Herring	};
19*724ba675SRob Herring
20*724ba675SRob Herring	soc {
21*724ba675SRob Herring		prcmu@80157000 {
22*724ba675SRob Herring			ab8505 {
23*724ba675SRob Herring				compatible = "stericsson,ab8505";
24*724ba675SRob Herring				interrupt-parent = <&intc>;
25*724ba675SRob Herring				interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
26*724ba675SRob Herring				interrupt-controller;
27*724ba675SRob Herring				#interrupt-cells = <2>;
28*724ba675SRob Herring				#address-cells = <1>;
29*724ba675SRob Herring				#size-cells = <0>;
30*724ba675SRob Herring
31*724ba675SRob Herring				ab8500_clock: clock-controller {
32*724ba675SRob Herring					compatible = "stericsson,ab8500-clk";
33*724ba675SRob Herring					#clock-cells = <1>;
34*724ba675SRob Herring				};
35*724ba675SRob Herring
36*724ba675SRob Herring				ab8505_gpio: gpio {
37*724ba675SRob Herring					compatible = "stericsson,ab8505-gpio";
38*724ba675SRob Herring					gpio-controller;
39*724ba675SRob Herring					#gpio-cells = <2>;
40*724ba675SRob Herring				};
41*724ba675SRob Herring
42*724ba675SRob Herring				rtc {
43*724ba675SRob Herring					compatible = "stericsson,ab8500-rtc";
44*724ba675SRob Herring					interrupts = <17 IRQ_TYPE_LEVEL_HIGH>,
45*724ba675SRob Herring						     <18 IRQ_TYPE_LEVEL_HIGH>;
46*724ba675SRob Herring					interrupt-names = "60S", "ALARM";
47*724ba675SRob Herring				};
48*724ba675SRob Herring
49*724ba675SRob Herring				gpadc: adc {
50*724ba675SRob Herring					compatible = "stericsson,ab8500-gpadc";
51*724ba675SRob Herring					interrupts = <39 IRQ_TYPE_LEVEL_HIGH>;
52*724ba675SRob Herring					interrupt-names = "SW_CONV_END";
53*724ba675SRob Herring					vddadc-supply = <&ab8500_ldo_adc_reg>;
54*724ba675SRob Herring					#address-cells = <1>;
55*724ba675SRob Herring					#size-cells = <0>;
56*724ba675SRob Herring					#io-channel-cells = <1>;
57*724ba675SRob Herring
58*724ba675SRob Herring					/* GPADC channels */
59*724ba675SRob Herring					bat_ctrl: channel@1 {
60*724ba675SRob Herring						reg = <0x01>;
61*724ba675SRob Herring					};
62*724ba675SRob Herring					btemp_ball: channel@2 {
63*724ba675SRob Herring						reg = <0x02>;
64*724ba675SRob Herring					};
65*724ba675SRob Herring					acc_detect1: channel@4 {
66*724ba675SRob Herring						reg = <0x04>;
67*724ba675SRob Herring					};
68*724ba675SRob Herring					acc_detect2: channel@5 {
69*724ba675SRob Herring						reg = <0x05>;
70*724ba675SRob Herring					};
71*724ba675SRob Herring					adc_aux1: channel@6 {
72*724ba675SRob Herring						reg = <0x06>;
73*724ba675SRob Herring					};
74*724ba675SRob Herring					adc_aux2: channel@7 {
75*724ba675SRob Herring						reg = <0x07>;
76*724ba675SRob Herring					};
77*724ba675SRob Herring					main_batt_v: channel@8 {
78*724ba675SRob Herring						reg = <0x08>;
79*724ba675SRob Herring					};
80*724ba675SRob Herring					vbus_v: channel@9 {
81*724ba675SRob Herring						reg = <0x09>;
82*724ba675SRob Herring					};
83*724ba675SRob Herring					charger_c: channel@b {
84*724ba675SRob Herring						reg = <0x0b>;
85*724ba675SRob Herring					};
86*724ba675SRob Herring					bk_bat_v: channel@c {
87*724ba675SRob Herring						reg = <0x0c>;
88*724ba675SRob Herring					};
89*724ba675SRob Herring					die_temp: channel@d {
90*724ba675SRob Herring						reg = <0x0d>;
91*724ba675SRob Herring					};
92*724ba675SRob Herring					usb_id: channel@e {
93*724ba675SRob Herring						reg = <0x0e>;
94*724ba675SRob Herring					};
95*724ba675SRob Herring				};
96*724ba675SRob Herring
97*724ba675SRob Herring				thermal {
98*724ba675SRob Herring					compatible = "stericsson,abx500-temp";
99*724ba675SRob Herring					interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
100*724ba675SRob Herring					interrupt-names = "ABX500_TEMP_WARM";
101*724ba675SRob Herring				};
102*724ba675SRob Herring
103*724ba675SRob Herring				ab8500_fg {
104*724ba675SRob Herring					compatible = "stericsson,ab8500-fg";
105*724ba675SRob Herring					interrupts = <24 IRQ_TYPE_LEVEL_HIGH>,
106*724ba675SRob Herring						     <8 IRQ_TYPE_LEVEL_HIGH>,
107*724ba675SRob Herring						     <28 IRQ_TYPE_LEVEL_HIGH>,
108*724ba675SRob Herring						     <27 IRQ_TYPE_LEVEL_HIGH>,
109*724ba675SRob Herring						     <26 IRQ_TYPE_LEVEL_HIGH>;
110*724ba675SRob Herring					interrupt-names = "NCONV_ACCU",
111*724ba675SRob Herring							  "BATT_OVV",
112*724ba675SRob Herring							  "LOW_BAT_F",
113*724ba675SRob Herring							  "CC_INT_CALIB",
114*724ba675SRob Herring							  "CCEOC";
115*724ba675SRob Herring					monitored-battery = <&battery>;
116*724ba675SRob Herring					io-channels = <&gpadc 0x08>;
117*724ba675SRob Herring					io-channel-names = "main_bat_v";
118*724ba675SRob Herring				};
119*724ba675SRob Herring
120*724ba675SRob Herring				ab8500_btemp {
121*724ba675SRob Herring					compatible = "stericsson,ab8500-btemp";
122*724ba675SRob Herring					interrupts = <20 IRQ_TYPE_LEVEL_HIGH>,
123*724ba675SRob Herring						     <80 IRQ_TYPE_LEVEL_HIGH>,
124*724ba675SRob Herring						     <83 IRQ_TYPE_LEVEL_HIGH>,
125*724ba675SRob Herring						     <81 IRQ_TYPE_LEVEL_HIGH>,
126*724ba675SRob Herring						     <82 IRQ_TYPE_LEVEL_HIGH>;
127*724ba675SRob Herring					interrupt-names = "BAT_CTRL_INDB",
128*724ba675SRob Herring							  "BTEMP_LOW",
129*724ba675SRob Herring							  "BTEMP_HIGH",
130*724ba675SRob Herring							  "BTEMP_LOW_MEDIUM",
131*724ba675SRob Herring							  "BTEMP_MEDIUM_HIGH";
132*724ba675SRob Herring					monitored-battery = <&battery>;
133*724ba675SRob Herring					io-channels = <&gpadc 0x02>,
134*724ba675SRob Herring						      <&gpadc 0x01>;
135*724ba675SRob Herring					io-channel-names = "btemp_ball",
136*724ba675SRob Herring							  "bat_ctrl";
137*724ba675SRob Herring				};
138*724ba675SRob Herring
139*724ba675SRob Herring				ab8500_charger {
140*724ba675SRob Herring					compatible = "stericsson,ab8500-charger";
141*724ba675SRob Herring					interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
142*724ba675SRob Herring						     <11 IRQ_TYPE_LEVEL_HIGH>,
143*724ba675SRob Herring						     <0 IRQ_TYPE_LEVEL_HIGH>,
144*724ba675SRob Herring						     <107 IRQ_TYPE_LEVEL_HIGH>,
145*724ba675SRob Herring						     <106 IRQ_TYPE_LEVEL_HIGH>,
146*724ba675SRob Herring						     <14 IRQ_TYPE_LEVEL_HIGH>,
147*724ba675SRob Herring						     <15 IRQ_TYPE_LEVEL_HIGH>,
148*724ba675SRob Herring						     <79 IRQ_TYPE_LEVEL_HIGH>,
149*724ba675SRob Herring						     <105 IRQ_TYPE_LEVEL_HIGH>,
150*724ba675SRob Herring						     <104 IRQ_TYPE_LEVEL_HIGH>,
151*724ba675SRob Herring						     <89 IRQ_TYPE_LEVEL_HIGH>,
152*724ba675SRob Herring						     <22 IRQ_TYPE_LEVEL_HIGH>,
153*724ba675SRob Herring						     <21 IRQ_TYPE_LEVEL_HIGH>,
154*724ba675SRob Herring						     <16 IRQ_TYPE_LEVEL_HIGH>;
155*724ba675SRob Herring					interrupt-names = "MAIN_CH_UNPLUG_DET",
156*724ba675SRob Herring							  "MAIN_CHARGE_PLUG_DET",
157*724ba675SRob Herring							  "MAIN_EXT_CH_NOT_OK",
158*724ba675SRob Herring							  "MAIN_CH_TH_PROT_R",
159*724ba675SRob Herring							  "MAIN_CH_TH_PROT_F",
160*724ba675SRob Herring							  "VBUS_DET_F",
161*724ba675SRob Herring							  "VBUS_DET_R",
162*724ba675SRob Herring							  "USB_LINK_STATUS",
163*724ba675SRob Herring							  "USB_CH_TH_PROT_R",
164*724ba675SRob Herring							  "USB_CH_TH_PROT_F",
165*724ba675SRob Herring							  "USB_CHARGER_NOT_OKR",
166*724ba675SRob Herring							  "VBUS_OVV",
167*724ba675SRob Herring							  "CH_WD_EXP",
168*724ba675SRob Herring							  "VBUS_CH_DROP_END";
169*724ba675SRob Herring					monitored-battery = <&battery>;
170*724ba675SRob Herring					vddadc-supply = <&ab8500_ldo_adc_reg>;
171*724ba675SRob Herring					io-channels = <&gpadc 0x09>,
172*724ba675SRob Herring						      <&gpadc 0x0b>;
173*724ba675SRob Herring					io-channel-names = "vbus_v",
174*724ba675SRob Herring							  "usb_charger_c";
175*724ba675SRob Herring				};
176*724ba675SRob Herring
177*724ba675SRob Herring				ab8500_chargalg {
178*724ba675SRob Herring					compatible = "stericsson,ab8500-chargalg";
179*724ba675SRob Herring					monitored-battery = <&battery>;
180*724ba675SRob Herring				};
181*724ba675SRob Herring
182*724ba675SRob Herring				ab8500_usb: phy {
183*724ba675SRob Herring					compatible = "stericsson,ab8500-usb";
184*724ba675SRob Herring					interrupts = <90 IRQ_TYPE_LEVEL_HIGH>,
185*724ba675SRob Herring						     <96 IRQ_TYPE_LEVEL_HIGH>,
186*724ba675SRob Herring						     <14 IRQ_TYPE_LEVEL_HIGH>,
187*724ba675SRob Herring						     <15 IRQ_TYPE_LEVEL_HIGH>,
188*724ba675SRob Herring						     <79 IRQ_TYPE_LEVEL_HIGH>,
189*724ba675SRob Herring						     <74 IRQ_TYPE_LEVEL_HIGH>,
190*724ba675SRob Herring						     <75 IRQ_TYPE_LEVEL_HIGH>;
191*724ba675SRob Herring					interrupt-names = "ID_WAKEUP_R",
192*724ba675SRob Herring							  "ID_WAKEUP_F",
193*724ba675SRob Herring							  "VBUS_DET_F",
194*724ba675SRob Herring							  "VBUS_DET_R",
195*724ba675SRob Herring							  "USB_LINK_STATUS",
196*724ba675SRob Herring							  "USB_ADP_PROBE_PLUG",
197*724ba675SRob Herring							  "USB_ADP_PROBE_UNPLUG";
198*724ba675SRob Herring					vddulpivio18-supply = <&ab8500_ldo_intcore_reg>;
199*724ba675SRob Herring					v-ape-supply = <&db8500_vape_reg>;
200*724ba675SRob Herring					musb_1v8-supply = <&db8500_vsmps2_reg>;
201*724ba675SRob Herring					clocks = <&prcmu_clk PRCMU_SYSCLK>;
202*724ba675SRob Herring					clock-names = "sysclk";
203*724ba675SRob Herring					#phy-cells = <0>;
204*724ba675SRob Herring				};
205*724ba675SRob Herring
206*724ba675SRob Herring				key {
207*724ba675SRob Herring					compatible = "stericsson,ab8500-poweron-key";
208*724ba675SRob Herring					interrupts = <6 IRQ_TYPE_LEVEL_HIGH>,
209*724ba675SRob Herring						     <7 IRQ_TYPE_LEVEL_HIGH>;
210*724ba675SRob Herring					interrupt-names = "ONKEY_DBF", "ONKEY_DBR";
211*724ba675SRob Herring				};
212*724ba675SRob Herring
213*724ba675SRob Herring				ab8500-sysctrl {
214*724ba675SRob Herring					compatible = "stericsson,ab8500-sysctrl";
215*724ba675SRob Herring				};
216*724ba675SRob Herring
217*724ba675SRob Herring				pwm@1 {
218*724ba675SRob Herring					compatible = "stericsson,ab8500-pwm";
219*724ba675SRob Herring					reg = <1>;
220*724ba675SRob Herring					clocks = <&ab8500_clock AB8500_SYSCLK_INT>;
221*724ba675SRob Herring					clock-names = "intclk";
222*724ba675SRob Herring					#pwm-cells = <1>;
223*724ba675SRob Herring				};
224*724ba675SRob Herring
225*724ba675SRob Herring				codec: codec {
226*724ba675SRob Herring					compatible = "stericsson,ab8500-codec";
227*724ba675SRob Herring
228*724ba675SRob Herring					V-AUD-supply = <&ab8500_ldo_audio_reg>;
229*724ba675SRob Herring					V-AMIC1-supply = <&ab8500_ldo_anamic1_reg>;
230*724ba675SRob Herring					V-AMIC2-supply = <&ab8500_ldo_anamic2_reg>;
231*724ba675SRob Herring
232*724ba675SRob Herring					clocks = <&ab8500_clock AB8500_SYSCLK_AUDIO>;
233*724ba675SRob Herring					clock-names = "audioclk";
234*724ba675SRob Herring
235*724ba675SRob Herring					stericsson,earpeice-cmv = <950>; /* Units in mV. */
236*724ba675SRob Herring				};
237*724ba675SRob Herring
238*724ba675SRob Herring				regulator {
239*724ba675SRob Herring					compatible = "stericsson,ab8505-regulator";
240*724ba675SRob Herring
241*724ba675SRob Herring					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
242*724ba675SRob Herring						regulator-min-microvolt = <2800000>;
243*724ba675SRob Herring						regulator-max-microvolt = <3300000>;
244*724ba675SRob Herring					};
245*724ba675SRob Herring
246*724ba675SRob Herring					ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
247*724ba675SRob Herring						regulator-min-microvolt = <1100000>;
248*724ba675SRob Herring						regulator-max-microvolt = <3300000>;
249*724ba675SRob Herring					};
250*724ba675SRob Herring
251*724ba675SRob Herring					ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
252*724ba675SRob Herring						regulator-min-microvolt = <1100000>;
253*724ba675SRob Herring						regulator-max-microvolt = <3300000>;
254*724ba675SRob Herring					};
255*724ba675SRob Herring
256*724ba675SRob Herring					ab8500_ldo_aux4_reg: ab8500_ldo_aux4 {
257*724ba675SRob Herring						regulator-min-microvolt = <1100000>;
258*724ba675SRob Herring						regulator-max-microvolt = <3300000>;
259*724ba675SRob Herring					};
260*724ba675SRob Herring
261*724ba675SRob Herring					ab8500_ldo_aux5_reg: ab8500_ldo_aux5 {
262*724ba675SRob Herring						regulator-min-microvolt = <1050000>;
263*724ba675SRob Herring						regulator-max-microvolt = <2790000>;
264*724ba675SRob Herring					};
265*724ba675SRob Herring
266*724ba675SRob Herring					ab8500_ldo_aux6_reg: ab8500_ldo_aux6 {
267*724ba675SRob Herring						regulator-min-microvolt = <1050000>;
268*724ba675SRob Herring						regulator-max-microvolt = <2790000>;
269*724ba675SRob Herring					};
270*724ba675SRob Herring
271*724ba675SRob Herring					// supply for v-intcore12; VINTCORE12 LDO
272*724ba675SRob Herring					ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
273*724ba675SRob Herring						regulator-min-microvolt = <1250000>;
274*724ba675SRob Herring						regulator-max-microvolt = <1350000>;
275*724ba675SRob Herring					};
276*724ba675SRob Herring
277*724ba675SRob Herring					// supply for gpadc; ADC LDO
278*724ba675SRob Herring					ab8500_ldo_adc_reg: ab8500_ldo_adc {
279*724ba675SRob Herring					};
280*724ba675SRob Herring
281*724ba675SRob Herring					// supply for ab8500-vaudio; VAUDIO LDO
282*724ba675SRob Herring					ab8500_ldo_audio_reg: ab8500_ldo_audio {
283*724ba675SRob Herring					};
284*724ba675SRob Herring
285*724ba675SRob Herring					// supply for v-anamic1 VAMIC1 LDO
286*724ba675SRob Herring					ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
287*724ba675SRob Herring					};
288*724ba675SRob Herring
289*724ba675SRob Herring					// supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1
290*724ba675SRob Herring					ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
291*724ba675SRob Herring					};
292*724ba675SRob Herring
293*724ba675SRob Herring					// supply for v-aux8; VAUX8 LDO
294*724ba675SRob Herring					ab8500_ldo_aux8_reg: ab8500_ldo_aux8 {
295*724ba675SRob Herring					};
296*724ba675SRob Herring
297*724ba675SRob Herring					// supply for U8500 CSI/DSI; VANA LDO
298*724ba675SRob Herring					ab8500_ldo_ana_reg: ab8500_ldo_ana {
299*724ba675SRob Herring					};
300*724ba675SRob Herring				};
301*724ba675SRob Herring			};
302*724ba675SRob Herring		};
303*724ba675SRob Herring
304*724ba675SRob Herring		sound {
305*724ba675SRob Herring			stericsson,audio-codec = <&codec>;
306*724ba675SRob Herring			clocks = <&prcmu_clk PRCMU_SYSCLK>, <&ab8500_clock AB8500_SYSCLK_ULP>, <&ab8500_clock AB8500_SYSCLK_INT>;
307*724ba675SRob Herring			clock-names = "sysclk", "ulpclk", "intclk";
308*724ba675SRob Herring		};
309*724ba675SRob Herring
310*724ba675SRob Herring		mcde@a0350000 {
311*724ba675SRob Herring			vana-supply = <&ab8500_ldo_ana_reg>;
312*724ba675SRob Herring
313*724ba675SRob Herring			dsi@a0351000 {
314*724ba675SRob Herring				vana-supply = <&ab8500_ldo_ana_reg>;
315*724ba675SRob Herring			};
316*724ba675SRob Herring			dsi@a0352000 {
317*724ba675SRob Herring				vana-supply = <&ab8500_ldo_ana_reg>;
318*724ba675SRob Herring			};
319*724ba675SRob Herring			dsi@a0353000 {
320*724ba675SRob Herring				vana-supply = <&ab8500_ldo_ana_reg>;
321*724ba675SRob Herring			};
322*724ba675SRob Herring		};
323*724ba675SRob Herring
324*724ba675SRob Herring		usb_per5@a03e0000 {
325*724ba675SRob Herring			phys = <&ab8500_usb>;
326*724ba675SRob Herring			phy-names = "usb";
327*724ba675SRob Herring		};
328*724ba675SRob Herring	};
329*724ba675SRob Herring};
330