1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright 2012 Linaro Ltd
4 */
5
6#include <dt-bindings/clock/ste-ab8500.h>
7
8/ {
9	soc {
10		prcmu@80157000 {
11			ab8500 {
12				compatible = "stericsson,ab8500";
13				interrupt-parent = <&intc>;
14				interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
15				interrupt-controller;
16				#interrupt-cells = <2>;
17
18				ab8500_clock: clock-controller {
19					compatible = "stericsson,ab8500-clk";
20					#clock-cells = <1>;
21				};
22
23				ab8500_gpio: ab8500-gpio {
24					compatible = "stericsson,ab8500-gpio";
25					gpio-controller;
26					#gpio-cells = <2>;
27				};
28
29				ab8500-rtc {
30					compatible = "stericsson,ab8500-rtc";
31					interrupts = <17 IRQ_TYPE_LEVEL_HIGH
32						      18 IRQ_TYPE_LEVEL_HIGH>;
33					interrupt-names = "60S", "ALARM";
34				};
35
36				ab8500-gpadc {
37					compatible = "stericsson,ab8500-gpadc";
38					interrupts = <32 IRQ_TYPE_LEVEL_HIGH
39						      39 IRQ_TYPE_LEVEL_HIGH>;
40					interrupt-names = "HW_CONV_END", "SW_CONV_END";
41					vddadc-supply = <&ab8500_ldo_tvout_reg>;
42				};
43
44				ab8500_battery: ab8500_battery {
45					stericsson,battery-type = "LIPO";
46					thermistor-on-batctrl;
47				};
48
49				ab8500_fg {
50					compatible = "stericsson,ab8500-fg";
51					battery	   = <&ab8500_battery>;
52				};
53
54				ab8500_btemp {
55					compatible = "stericsson,ab8500-btemp";
56					battery	   = <&ab8500_battery>;
57				};
58
59				ab8500_charger {
60					compatible	= "stericsson,ab8500-charger";
61					battery		= <&ab8500_battery>;
62					vddadc-supply	= <&ab8500_ldo_tvout_reg>;
63				};
64
65				ab8500_chargalg {
66					compatible	= "stericsson,ab8500-chargalg";
67					battery		= <&ab8500_battery>;
68				};
69
70				ab8500_usb {
71					compatible = "stericsson,ab8500-usb";
72					interrupts = < 90 IRQ_TYPE_LEVEL_HIGH
73						       96 IRQ_TYPE_LEVEL_HIGH
74						       14 IRQ_TYPE_LEVEL_HIGH
75						       15 IRQ_TYPE_LEVEL_HIGH
76						       79 IRQ_TYPE_LEVEL_HIGH
77						       74 IRQ_TYPE_LEVEL_HIGH
78						       75 IRQ_TYPE_LEVEL_HIGH>;
79					interrupt-names = "ID_WAKEUP_R",
80							  "ID_WAKEUP_F",
81							  "VBUS_DET_F",
82							  "VBUS_DET_R",
83							  "USB_LINK_STATUS",
84							  "USB_ADP_PROBE_PLUG",
85							  "USB_ADP_PROBE_UNPLUG";
86					vddulpivio18-supply = <&ab8500_ldo_intcore_reg>;
87					v-ape-supply = <&db8500_vape_reg>;
88					musb_1v8-supply = <&db8500_vsmps2_reg>;
89					clocks = <&prcmu_clk PRCMU_SYSCLK>;
90					clock-names = "sysclk";
91				};
92
93				ab8500-ponkey {
94					compatible = "stericsson,ab8500-poweron-key";
95					interrupts = <6 IRQ_TYPE_LEVEL_HIGH
96						      7 IRQ_TYPE_LEVEL_HIGH>;
97					interrupt-names = "ONKEY_DBF", "ONKEY_DBR";
98				};
99
100				ab8500-sysctrl {
101					compatible = "stericsson,ab8500-sysctrl";
102				};
103
104				ab8500-pwm {
105					compatible = "stericsson,ab8500-pwm";
106					clocks = <&ab8500_clock AB8500_SYSCLK_INT>;
107					clock-names = "intclk";
108				};
109
110				ab8500-debugfs {
111					compatible = "stericsson,ab8500-debug";
112				};
113
114				codec: ab8500-codec {
115					compatible = "stericsson,ab8500-codec";
116
117					V-AUD-supply = <&ab8500_ldo_audio_reg>;
118					V-AMIC1-supply = <&ab8500_ldo_anamic1_reg>;
119					V-AMIC2-supply = <&ab8500_ldo_anamic2_reg>;
120					V-DMIC-supply = <&ab8500_ldo_dmic_reg>;
121
122					clocks = <&ab8500_clock AB8500_SYSCLK_AUDIO>;
123					clock-names = "audioclk";
124
125					stericsson,earpeice-cmv = <950>; /* Units in mV. */
126				};
127
128				ext_regulators: ab8500-ext-regulators {
129					compatible = "stericsson,ab8500-ext-regulator";
130
131					ab8500_ext1_reg: ab8500_ext1 {
132						regulator-min-microvolt = <1800000>;
133						regulator-max-microvolt = <1800000>;
134						regulator-boot-on;
135						regulator-always-on;
136					};
137
138					ab8500_ext2_reg: ab8500_ext2 {
139						regulator-min-microvolt = <1360000>;
140						regulator-max-microvolt = <1360000>;
141						regulator-boot-on;
142						regulator-always-on;
143					};
144
145					ab8500_ext3_reg: ab8500_ext3 {
146						regulator-min-microvolt = <3400000>;
147						regulator-max-microvolt = <3400000>;
148						regulator-boot-on;
149					};
150				};
151
152				ab8500-regulators {
153					compatible = "stericsson,ab8500-regulator";
154					vin-supply = <&ab8500_ext3_reg>;
155
156					// supplies to the display/camera
157					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
158						regulator-min-microvolt = <2500000>;
159						regulator-max-microvolt = <2900000>;
160						regulator-boot-on;
161						/* BUG: If turned off MMC will be affected. */
162						regulator-always-on;
163					};
164
165					// supplies to the on-board eMMC
166					ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
167						regulator-min-microvolt = <1100000>;
168						regulator-max-microvolt = <3300000>;
169					};
170
171					// supply for VAUX3; SDcard slots
172					ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
173						regulator-min-microvolt = <1100000>;
174						regulator-max-microvolt = <3300000>;
175					};
176
177					// supply for v-intcore12; VINTCORE12 LDO
178					ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
179					};
180
181					// supply for tvout; gpadc; TVOUT LDO
182					ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
183					};
184
185					// supply for ab8500-vaudio; VAUDIO LDO
186					ab8500_ldo_audio_reg: ab8500_ldo_audio {
187					};
188
189					// supply for v-anamic1 VAMIC1 LDO
190					ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
191					};
192
193					// supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1
194					ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
195					};
196
197					// supply for v-dmic; VDMIC LDO
198					ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
199					};
200
201					// supply for U8500 CSI/DSI; VANA LDO
202					ab8500_ldo_ana_reg: ab8500_ldo_ana {
203					};
204				};
205			};
206		};
207
208		sound {
209			stericsson,audio-codec = <&codec>;
210			clocks = <&prcmu_clk PRCMU_SYSCLK>, <&ab8500_clock AB8500_SYSCLK_ULP>, <&ab8500_clock AB8500_SYSCLK_INT>;
211			clock-names = "sysclk", "ulpclk", "intclk";
212		};
213
214		mcde@a0350000 {
215			vana-supply = <&ab8500_ldo_ana_reg>;
216
217			dsi@a0351000 {
218				vana-supply = <&ab8500_ldo_ana_reg>;
219			};
220			dsi@a0352000 {
221				vana-supply = <&ab8500_ldo_ana_reg>;
222			};
223			dsi@a0353000 {
224				vana-supply = <&ab8500_ldo_ana_reg>;
225			};
226		};
227	};
228};
229