blob: bfd3f1c734b8d84dec4a622032e1b29efa07b83d [file] [log] [blame]
Arnd Bergmann5d0769f2012-03-02 23:07:21 +00001/*
2 * Copyright 2012 Linaro Ltd
3 *
4 * The code contained herein is licensed under the GNU General Public
5 * License. You may obtain a copy of the GNU General Public License
6 * Version 2 or later at the following locations:
7 *
8 * http://www.opensource.org/licenses/gpl-license.html
9 * http://www.gnu.org/copyleft/gpl.html
10 */
11
Linus Walleij90c40252013-05-29 19:15:39 +020012#include <dt-bindings/interrupt-controller/irq.h>
Lee Jones841cd0c2013-09-18 09:53:10 +010013#include <dt-bindings/mfd/dbx500-prcmu.h>
Ulf Hansson067adde2014-10-14 11:12:59 +020014#include <dt-bindings/arm/ux500_pm_domains.h>
Gabriel Fernandez807e8832013-05-27 15:30:53 +020015#include "skeleton.dtsi"
Arnd Bergmann5d0769f2012-03-02 23:07:21 +000016
17/ {
Gabriel Fernandezb1ba1432013-03-01 14:38:07 +010018 soc {
Arnd Bergmann5d0769f2012-03-02 23:07:21 +000019 #address-cells = <1>;
20 #size-cells = <1>;
Lee Jones7e0ce272012-03-15 16:46:17 +000021 compatible = "stericsson,db8500";
Lee Jonesdab64872012-03-07 17:22:30 +000022 interrupt-parent = <&intc>;
Arnd Bergmann5d0769f2012-03-02 23:07:21 +000023 ranges;
Lee Jones7e0ce272012-03-15 16:46:17 +000024
Lee Jonesdab64872012-03-07 17:22:30 +000025 intc: interrupt-controller@a0411000 {
26 compatible = "arm,cortex-a9-gic";
27 #interrupt-cells = <3>;
28 #address-cells = <1>;
29 interrupt-controller;
Lee Jonesdab64872012-03-07 17:22:30 +000030 reg = <0xa0411000 0x1000>,
31 <0xa0410100 0x100>;
32 };
33
Lee Jonesf1949ea2012-03-08 09:02:02 +000034 L2: l2-cache {
35 compatible = "arm,pl310-cache";
36 reg = <0xa0412000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +020037 interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesf1949ea2012-03-08 09:02:02 +000038 cache-unified;
39 cache-level = <2>;
40 };
41
Lee Jones7e0ce272012-03-15 16:46:17 +000042 pmu {
43 compatible = "arm,cortex-a9-pmu";
Linus Walleij90c40252013-05-29 19:15:39 +020044 interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones7e0ce272012-03-15 16:46:17 +000045 };
46
Ulf Hansson6c669352014-10-14 11:12:58 +020047 pm_domains: pm_domains0 {
48 compatible = "stericsson,ux500-pm-domains";
49 #power-domain-cells = <1>;
50 };
Lee Jones8132ed12013-09-18 09:54:07 +010051
Lee Jones841cd0c2013-09-18 09:53:10 +010052 clocks {
53 compatible = "stericsson,u8500-clks";
54
55 prcmu_clk: prcmu-clock {
56 #clock-cells = <1>;
57 };
Lee Jonesfcbe5e92013-06-06 10:51:04 +010058
59 prcc_pclk: prcc-periph-clock {
60 #clock-cells = <2>;
61 };
Lee Jones2588fea2013-06-06 10:52:50 +010062
63 prcc_kclk: prcc-kernel-clock {
64 #clock-cells = <2>;
65 };
Lee Jones589d9832013-06-06 10:54:27 +010066
67 rtc_clk: rtc32k-clock {
68 #clock-cells = <0>;
69 };
Lee Jones309012d2013-06-06 10:54:48 +010070
71 smp_twd_clk: smp-twd-clock {
72 #clock-cells = <0>;
73 };
Lee Jones841cd0c2013-09-18 09:53:10 +010074 };
75
Lee Jones8132ed12013-09-18 09:54:07 +010076 mtu@a03c6000 {
77 /* Nomadik System Timer */
78 compatible = "st,nomadik-mtu";
79 reg = <0xa03c6000 0x1000>;
80 interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>;
81
82 clocks = <&prcmu_clk PRCMU_TIMCLK>, <&prcc_pclk 6 6>;
83 clock-names = "timclk", "apb_pclk";
84 };
85
Lee Jones71de5c42012-03-16 09:53:24 +000086 timer@a0410600 {
87 compatible = "arm,cortex-a9-twd-timer";
88 reg = <0xa0410600 0x20>;
Linus Walleij90c40252013-05-29 19:15:39 +020089 interrupts = <1 13 0x304>; /* IRQ level high per-CPU */
Lee Jonesa8acb1e2013-06-05 12:26:52 +010090
91 clocks = <&smp_twd_clk>;
Lee Jones71de5c42012-03-16 09:53:24 +000092 };
93
Lee Jones7e0ce272012-03-15 16:46:17 +000094 rtc@80154000 {
Lee Jonesddb3b992012-05-26 07:01:31 +010095 compatible = "arm,rtc-pl031", "arm,primecell";
Lee Jones7e0ce272012-03-15 16:46:17 +000096 reg = <0x80154000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +020097 interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesd299b5a2013-06-05 12:27:24 +010098
99 clocks = <&rtc_clk>;
100 clock-names = "apb_pclk";
Lee Jones7e0ce272012-03-15 16:46:17 +0000101 };
102
103 gpio0: gpio@8012e000 {
104 compatible = "stericsson,db8500-gpio",
Lee Jonesfd9a80b2012-04-13 15:05:03 +0100105 "st,nomadik-gpio";
Lee Jones7e0ce272012-03-15 16:46:17 +0000106 reg = <0x8012e000 0x80>;
Linus Walleij90c40252013-05-29 19:15:39 +0200107 interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones93b56982012-05-29 14:17:36 +0800108 interrupt-controller;
109 #interrupt-cells = <2>;
Lee Jones61be4982012-06-14 11:16:03 +0100110 st,supports-sleepmode;
Lee Jones7e0ce272012-03-15 16:46:17 +0000111 gpio-controller;
Lee Jonesc0b133b2012-04-13 15:05:05 +0100112 #gpio-cells = <2>;
113 gpio-bank = <0>;
Lee Jones9d891072013-06-03 13:07:51 +0100114
115 clocks = <&prcc_pclk 1 9>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000116 };
117
118 gpio1: gpio@8012e080 {
119 compatible = "stericsson,db8500-gpio",
Lee Jonesfd9a80b2012-04-13 15:05:03 +0100120 "st,nomadik-gpio";
Lee Jones7e0ce272012-03-15 16:46:17 +0000121 reg = <0x8012e080 0x80>;
Linus Walleij90c40252013-05-29 19:15:39 +0200122 interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones93b56982012-05-29 14:17:36 +0800123 interrupt-controller;
124 #interrupt-cells = <2>;
Lee Jones61be4982012-06-14 11:16:03 +0100125 st,supports-sleepmode;
Lee Jones7e0ce272012-03-15 16:46:17 +0000126 gpio-controller;
Lee Jonesc0b133b2012-04-13 15:05:05 +0100127 #gpio-cells = <2>;
128 gpio-bank = <1>;
Lee Jones9d891072013-06-03 13:07:51 +0100129
130 clocks = <&prcc_pclk 1 9>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000131 };
132
133 gpio2: gpio@8000e000 {
134 compatible = "stericsson,db8500-gpio",
Lee Jonesfd9a80b2012-04-13 15:05:03 +0100135 "st,nomadik-gpio";
Lee Jones7e0ce272012-03-15 16:46:17 +0000136 reg = <0x8000e000 0x80>;
Linus Walleij90c40252013-05-29 19:15:39 +0200137 interrupts = <0 121 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones93b56982012-05-29 14:17:36 +0800138 interrupt-controller;
139 #interrupt-cells = <2>;
Lee Jones61be4982012-06-14 11:16:03 +0100140 st,supports-sleepmode;
Lee Jones7e0ce272012-03-15 16:46:17 +0000141 gpio-controller;
Lee Jonesc0b133b2012-04-13 15:05:05 +0100142 #gpio-cells = <2>;
143 gpio-bank = <2>;
Lee Jones9d891072013-06-03 13:07:51 +0100144
145 clocks = <&prcc_pclk 3 8>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000146 };
147
148 gpio3: gpio@8000e080 {
149 compatible = "stericsson,db8500-gpio",
Lee Jonesfd9a80b2012-04-13 15:05:03 +0100150 "st,nomadik-gpio";
Lee Jones7e0ce272012-03-15 16:46:17 +0000151 reg = <0x8000e080 0x80>;
Linus Walleij90c40252013-05-29 19:15:39 +0200152 interrupts = <0 122 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones93b56982012-05-29 14:17:36 +0800153 interrupt-controller;
154 #interrupt-cells = <2>;
Lee Jones61be4982012-06-14 11:16:03 +0100155 st,supports-sleepmode;
Lee Jones7e0ce272012-03-15 16:46:17 +0000156 gpio-controller;
Lee Jonesc0b133b2012-04-13 15:05:05 +0100157 #gpio-cells = <2>;
158 gpio-bank = <3>;
Lee Jones9d891072013-06-03 13:07:51 +0100159
160 clocks = <&prcc_pclk 3 8>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000161 };
162
163 gpio4: gpio@8000e100 {
164 compatible = "stericsson,db8500-gpio",
Lee Jonesfd9a80b2012-04-13 15:05:03 +0100165 "st,nomadik-gpio";
Lee Jones7e0ce272012-03-15 16:46:17 +0000166 reg = <0x8000e100 0x80>;
Linus Walleij90c40252013-05-29 19:15:39 +0200167 interrupts = <0 123 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones93b56982012-05-29 14:17:36 +0800168 interrupt-controller;
169 #interrupt-cells = <2>;
Lee Jones61be4982012-06-14 11:16:03 +0100170 st,supports-sleepmode;
Lee Jones7e0ce272012-03-15 16:46:17 +0000171 gpio-controller;
Lee Jonesc0b133b2012-04-13 15:05:05 +0100172 #gpio-cells = <2>;
173 gpio-bank = <4>;
Lee Jones9d891072013-06-03 13:07:51 +0100174
175 clocks = <&prcc_pclk 3 8>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000176 };
177
178 gpio5: gpio@8000e180 {
179 compatible = "stericsson,db8500-gpio",
Lee Jonesfd9a80b2012-04-13 15:05:03 +0100180 "st,nomadik-gpio";
Lee Jones7e0ce272012-03-15 16:46:17 +0000181 reg = <0x8000e180 0x80>;
Linus Walleij90c40252013-05-29 19:15:39 +0200182 interrupts = <0 124 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones93b56982012-05-29 14:17:36 +0800183 interrupt-controller;
184 #interrupt-cells = <2>;
Lee Jones61be4982012-06-14 11:16:03 +0100185 st,supports-sleepmode;
Lee Jones7e0ce272012-03-15 16:46:17 +0000186 gpio-controller;
Lee Jonesc0b133b2012-04-13 15:05:05 +0100187 #gpio-cells = <2>;
188 gpio-bank = <5>;
Lee Jones9d891072013-06-03 13:07:51 +0100189
190 clocks = <&prcc_pclk 3 8>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000191 };
192
193 gpio6: gpio@8011e000 {
194 compatible = "stericsson,db8500-gpio",
Lee Jonesfd9a80b2012-04-13 15:05:03 +0100195 "st,nomadik-gpio";
Lee Jones7e0ce272012-03-15 16:46:17 +0000196 reg = <0x8011e000 0x80>;
Linus Walleij90c40252013-05-29 19:15:39 +0200197 interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones93b56982012-05-29 14:17:36 +0800198 interrupt-controller;
199 #interrupt-cells = <2>;
Lee Jones61be4982012-06-14 11:16:03 +0100200 st,supports-sleepmode;
Lee Jones7e0ce272012-03-15 16:46:17 +0000201 gpio-controller;
Lee Jonesc0b133b2012-04-13 15:05:05 +0100202 #gpio-cells = <2>;
203 gpio-bank = <6>;
Lee Jones9d891072013-06-03 13:07:51 +0100204
Linus Walleijd5916402013-10-18 09:49:21 +0200205 clocks = <&prcc_pclk 2 11>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000206 };
207
208 gpio7: gpio@8011e080 {
209 compatible = "stericsson,db8500-gpio",
Lee Jonesfd9a80b2012-04-13 15:05:03 +0100210 "st,nomadik-gpio";
Lee Jones7e0ce272012-03-15 16:46:17 +0000211 reg = <0x8011e080 0x80>;
Linus Walleij90c40252013-05-29 19:15:39 +0200212 interrupts = <0 126 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones93b56982012-05-29 14:17:36 +0800213 interrupt-controller;
214 #interrupt-cells = <2>;
Lee Jones61be4982012-06-14 11:16:03 +0100215 st,supports-sleepmode;
Lee Jones7e0ce272012-03-15 16:46:17 +0000216 gpio-controller;
Lee Jonesc0b133b2012-04-13 15:05:05 +0100217 #gpio-cells = <2>;
218 gpio-bank = <7>;
Lee Jones9d891072013-06-03 13:07:51 +0100219
Linus Walleijd5916402013-10-18 09:49:21 +0200220 clocks = <&prcc_pclk 2 11>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000221 };
222
223 gpio8: gpio@a03fe000 {
224 compatible = "stericsson,db8500-gpio",
Lee Jonesfd9a80b2012-04-13 15:05:03 +0100225 "st,nomadik-gpio";
Lee Jones7e0ce272012-03-15 16:46:17 +0000226 reg = <0xa03fe000 0x80>;
Linus Walleij90c40252013-05-29 19:15:39 +0200227 interrupts = <0 127 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones93b56982012-05-29 14:17:36 +0800228 interrupt-controller;
229 #interrupt-cells = <2>;
Lee Jones61be4982012-06-14 11:16:03 +0100230 st,supports-sleepmode;
Lee Jones7e0ce272012-03-15 16:46:17 +0000231 gpio-controller;
Lee Jonesc0b133b2012-04-13 15:05:05 +0100232 #gpio-cells = <2>;
233 gpio-bank = <8>;
Lee Jones9d891072013-06-03 13:07:51 +0100234
Linus Walleij84873cb2013-10-18 09:45:07 +0200235 clocks = <&prcc_pclk 5 1>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000236 };
237
Lee Jones8979cfe2013-01-11 15:45:28 +0000238 pinctrl {
Lee Jones818d99a2013-05-22 15:22:55 +0100239 compatible = "stericsson,db8500-pinctrl";
Lee Jones8979cfe2013-01-11 15:45:28 +0000240 prcm = <&prcmu>;
Lee Jones5910de92012-05-26 06:25:36 +0100241 };
242
Lee Jonesb32dc862013-05-03 15:31:51 +0100243 usb_per5@a03e0000 {
Sebastian Andrzej Siewior4a6cd432013-08-20 18:40:27 +0200244 compatible = "stericsson,db8500-musb";
Lee Jones7e0ce272012-03-15 16:46:17 +0000245 reg = <0xa03e0000 0x10000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200246 interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesb32dc862013-05-03 15:31:51 +0100247 interrupt-names = "mc";
248
249 dr_mode = "otg";
250
251 dmas = <&dma 38 0 0x2>, /* Logical - DevToMem */
252 <&dma 38 0 0x0>, /* Logical - MemToDev */
253 <&dma 37 0 0x2>, /* Logical - DevToMem */
254 <&dma 37 0 0x0>, /* Logical - MemToDev */
255 <&dma 36 0 0x2>, /* Logical - DevToMem */
256 <&dma 36 0 0x0>, /* Logical - MemToDev */
257 <&dma 19 0 0x2>, /* Logical - DevToMem */
258 <&dma 19 0 0x0>, /* Logical - MemToDev */
259 <&dma 18 0 0x2>, /* Logical - DevToMem */
260 <&dma 18 0 0x0>, /* Logical - MemToDev */
261 <&dma 17 0 0x2>, /* Logical - DevToMem */
262 <&dma 17 0 0x0>, /* Logical - MemToDev */
263 <&dma 16 0 0x2>, /* Logical - DevToMem */
264 <&dma 16 0 0x0>, /* Logical - MemToDev */
265 <&dma 39 0 0x2>, /* Logical - DevToMem */
266 <&dma 39 0 0x0>; /* Logical - MemToDev */
267
268 dma-names = "iep_1_9", "oep_1_9",
269 "iep_2_10", "oep_2_10",
270 "iep_3_11", "oep_3_11",
271 "iep_4_12", "oep_4_12",
272 "iep_5_13", "oep_5_13",
273 "iep_6_14", "oep_6_14",
274 "iep_7_15", "oep_7_15",
275 "iep_8", "oep_8";
Lee Jonese47339f2013-06-03 13:08:26 +0100276
277 clocks = <&prcc_pclk 5 0>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000278 };
279
Lee Jonesba074ae2013-05-03 15:31:48 +0100280 dma: dma-controller@801C0000 {
281 compatible = "stericsson,db8500-dma40", "stericsson,dma40";
Lee Jones7e0ce272012-03-15 16:46:17 +0000282 reg = <0x801C0000 0x1000 0x40010000 0x800>;
Lee Jones70d39a82013-05-03 15:31:47 +0100283 reg-names = "base", "lcpa";
Linus Walleij90c40252013-05-29 19:15:39 +0200284 interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesba074ae2013-05-03 15:31:48 +0100285
286 #dma-cells = <3>;
Lee Jonesd37fcdb2013-05-03 15:31:52 +0100287 memcpy-channels = <56 57 58 59 60>;
Lee Jonese064cb22013-06-03 13:13:54 +0100288
289 clocks = <&prcmu_clk PRCMU_DMACLK>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000290 };
291
Lee Jones8979cfe2013-01-11 15:45:28 +0000292 prcmu: prcmu@80157000 {
Lee Jones7e0ce272012-03-15 16:46:17 +0000293 compatible = "stericsson,db8500-prcmu";
Linus Torvalds4d26aa32013-05-02 08:56:55 -0700294 reg = <0x80157000 0x2000>, <0x801b0000 0x8000>, <0x801b8000 0x1000>;
Lee Jonese73081d2013-03-26 10:26:15 +0000295 reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm";
Linus Walleij90c40252013-05-29 19:15:39 +0200296 interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000297 #address-cells = <1>;
Lee Jones3de3d742012-04-24 10:00:15 +0100298 #size-cells = <1>;
Lee Jonesc09090b2012-08-03 15:42:25 +0100299 interrupt-controller;
300 #interrupt-cells = <2>;
Lee Jones3de3d742012-04-24 10:00:15 +0100301 ranges;
302
Lee Jonesccf74f72012-05-28 16:50:49 +0800303 prcmu-timer-4@80157450 {
Lee Jones3de3d742012-04-24 10:00:15 +0100304 compatible = "stericsson,db8500-prcmu-timer-4";
305 reg = <0x80157450 0xC>;
306 };
Lee Jones7e0ce272012-03-15 16:46:17 +0000307
Lee Jones98585612013-09-18 16:07:44 +0100308 cpufreq {
309 compatible = "stericsson,cpufreq-ux500";
310 clocks = <&prcmu_clk PRCMU_ARMSS>;
311 clock-names = "armss";
312 status = "disabled";
313 };
314
hongbo.zhangdc1956b2012-11-15 18:56:43 +0800315 thermal@801573c0 {
316 compatible = "stericsson,db8500-thermal";
317 reg = <0x801573c0 0x40>;
Linus Walleij90c40252013-05-29 19:15:39 +0200318 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>,
319 <22 IRQ_TYPE_LEVEL_HIGH>;
hongbo.zhangdc1956b2012-11-15 18:56:43 +0800320 interrupt-names = "IRQ_HOTMON_LOW", "IRQ_HOTMON_HIGH";
321 status = "disabled";
Lee Jones1d3f99f2013-06-06 12:21:15 +0100322 };
hongbo.zhangdc1956b2012-11-15 18:56:43 +0800323
Lee Jonese5999f22012-05-04 13:32:34 +0100324 db8500-prcmu-regulators {
325 compatible = "stericsson,db8500-prcmu-regulator";
326
327 // DB8500_REGULATOR_VAPE
328 db8500_vape_reg: db8500_vape {
Laxman Dewanganda268482012-06-20 17:53:05 +0530329 regulator-compatible = "db8500_vape";
Lee Jonese5999f22012-05-04 13:32:34 +0100330 regulator-always-on;
331 };
332
333 // DB8500_REGULATOR_VARM
334 db8500_varm_reg: db8500_varm {
Laxman Dewanganda268482012-06-20 17:53:05 +0530335 regulator-compatible = "db8500_varm";
Lee Jonese5999f22012-05-04 13:32:34 +0100336 };
337
338 // DB8500_REGULATOR_VMODEM
339 db8500_vmodem_reg: db8500_vmodem {
Laxman Dewanganda268482012-06-20 17:53:05 +0530340 regulator-compatible = "db8500_vmodem";
Lee Jonese5999f22012-05-04 13:32:34 +0100341 };
342
343 // DB8500_REGULATOR_VPLL
344 db8500_vpll_reg: db8500_vpll {
Laxman Dewanganda268482012-06-20 17:53:05 +0530345 regulator-compatible = "db8500_vpll";
Lee Jonese5999f22012-05-04 13:32:34 +0100346 };
347
348 // DB8500_REGULATOR_VSMPS1
349 db8500_vsmps1_reg: db8500_vsmps1 {
Laxman Dewanganda268482012-06-20 17:53:05 +0530350 regulator-compatible = "db8500_vsmps1";
Lee Jonese5999f22012-05-04 13:32:34 +0100351 };
352
353 // DB8500_REGULATOR_VSMPS2
354 db8500_vsmps2_reg: db8500_vsmps2 {
Laxman Dewanganda268482012-06-20 17:53:05 +0530355 regulator-compatible = "db8500_vsmps2";
Lee Jonese5999f22012-05-04 13:32:34 +0100356 };
357
358 // DB8500_REGULATOR_VSMPS3
359 db8500_vsmps3_reg: db8500_vsmps3 {
Laxman Dewanganda268482012-06-20 17:53:05 +0530360 regulator-compatible = "db8500_vsmps3";
Lee Jonese5999f22012-05-04 13:32:34 +0100361 };
362
363 // DB8500_REGULATOR_VRF1
364 db8500_vrf1_reg: db8500_vrf1 {
Laxman Dewanganda268482012-06-20 17:53:05 +0530365 regulator-compatible = "db8500_vrf1";
Lee Jonese5999f22012-05-04 13:32:34 +0100366 };
367
368 // DB8500_REGULATOR_SWITCH_SVAMMDSP
369 db8500_sva_mmdsp_reg: db8500_sva_mmdsp {
Laxman Dewanganda268482012-06-20 17:53:05 +0530370 regulator-compatible = "db8500_sva_mmdsp";
Lee Jonese5999f22012-05-04 13:32:34 +0100371 };
372
373 // DB8500_REGULATOR_SWITCH_SVAMMDSPRET
374 db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret {
Laxman Dewanganda268482012-06-20 17:53:05 +0530375 regulator-compatible = "db8500_sva_mmdsp_ret";
Lee Jonese5999f22012-05-04 13:32:34 +0100376 };
377
378 // DB8500_REGULATOR_SWITCH_SVAPIPE
379 db8500_sva_pipe_reg: db8500_sva_pipe {
Laxman Dewanganda268482012-06-20 17:53:05 +0530380 regulator-compatible = "db8500_sva_pipe";
Lee Jonese5999f22012-05-04 13:32:34 +0100381 };
382
383 // DB8500_REGULATOR_SWITCH_SIAMMDSP
384 db8500_sia_mmdsp_reg: db8500_sia_mmdsp {
Laxman Dewanganda268482012-06-20 17:53:05 +0530385 regulator-compatible = "db8500_sia_mmdsp";
Lee Jonese5999f22012-05-04 13:32:34 +0100386 };
387
388 // DB8500_REGULATOR_SWITCH_SIAMMDSPRET
389 db8500_sia_mmdsp_ret_reg: db8500_sia_mmdsp_ret {
Lee Jonese5999f22012-05-04 13:32:34 +0100390 };
391
392 // DB8500_REGULATOR_SWITCH_SIAPIPE
393 db8500_sia_pipe_reg: db8500_sia_pipe {
Laxman Dewanganda268482012-06-20 17:53:05 +0530394 regulator-compatible = "db8500_sia_pipe";
Lee Jonese5999f22012-05-04 13:32:34 +0100395 };
396
397 // DB8500_REGULATOR_SWITCH_SGA
398 db8500_sga_reg: db8500_sga {
Laxman Dewanganda268482012-06-20 17:53:05 +0530399 regulator-compatible = "db8500_sga";
Lee Jonese5999f22012-05-04 13:32:34 +0100400 vin-supply = <&db8500_vape_reg>;
401 };
402
403 // DB8500_REGULATOR_SWITCH_B2R2_MCDE
404 db8500_b2r2_mcde_reg: db8500_b2r2_mcde {
Laxman Dewanganda268482012-06-20 17:53:05 +0530405 regulator-compatible = "db8500_b2r2_mcde";
Lee Jonese5999f22012-05-04 13:32:34 +0100406 vin-supply = <&db8500_vape_reg>;
407 };
408
409 // DB8500_REGULATOR_SWITCH_ESRAM12
410 db8500_esram12_reg: db8500_esram12 {
Laxman Dewanganda268482012-06-20 17:53:05 +0530411 regulator-compatible = "db8500_esram12";
Lee Jonese5999f22012-05-04 13:32:34 +0100412 };
413
414 // DB8500_REGULATOR_SWITCH_ESRAM12RET
415 db8500_esram12_ret_reg: db8500_esram12_ret {
Laxman Dewanganda268482012-06-20 17:53:05 +0530416 regulator-compatible = "db8500_esram12_ret";
Lee Jonese5999f22012-05-04 13:32:34 +0100417 };
418
419 // DB8500_REGULATOR_SWITCH_ESRAM34
420 db8500_esram34_reg: db8500_esram34 {
Laxman Dewanganda268482012-06-20 17:53:05 +0530421 regulator-compatible = "db8500_esram34";
Lee Jonese5999f22012-05-04 13:32:34 +0100422 };
423
424 // DB8500_REGULATOR_SWITCH_ESRAM34RET
425 db8500_esram34_ret_reg: db8500_esram34_ret {
Laxman Dewanganda268482012-06-20 17:53:05 +0530426 regulator-compatible = "db8500_esram34_ret";
Lee Jonese5999f22012-05-04 13:32:34 +0100427 };
428 };
429
Arnd Bergmannd52701d32013-03-12 09:39:01 +0100430 ab8500 {
Lee Jones7e0ce272012-03-15 16:46:17 +0000431 compatible = "stericsson,ab8500";
Lee Jones8d4c6d42012-08-03 20:37:35 +0100432 interrupt-parent = <&intc>;
Linus Walleij90c40252013-05-29 19:15:39 +0200433 interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones732973c2012-05-29 10:49:33 +0800434 interrupt-controller;
435 #interrupt-cells = <2>;
Lee Jones4a85c7f2012-05-29 14:29:53 +0800436
Lee Jones348f3bc2013-06-18 09:51:57 +0100437 ab8500_gpio: ab8500-gpio {
438 gpio-controller;
439 #gpio-cells = <2>;
440 };
441
Lee Jonesd4b29ac2012-05-26 07:03:48 +0100442 ab8500-rtc {
443 compatible = "stericsson,ab8500-rtc";
Linus Walleij90c40252013-05-29 19:15:39 +0200444 interrupts = <17 IRQ_TYPE_LEVEL_HIGH
445 18 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesd4b29ac2012-05-26 07:03:48 +0100446 interrupt-names = "60S", "ALARM";
447 };
448
Lee Jones4eda9122012-05-28 16:59:26 +0800449 ab8500-gpadc {
450 compatible = "stericsson,ab8500-gpadc";
Linus Walleij90c40252013-05-29 19:15:39 +0200451 interrupts = <32 IRQ_TYPE_LEVEL_HIGH
452 39 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones4eda9122012-05-28 16:59:26 +0800453 interrupt-names = "HW_CONV_END", "SW_CONV_END";
454 vddadc-supply = <&ab8500_ldo_tvout_reg>;
455 };
456
Rajanikanth H.Ve0f1abe2012-11-18 18:45:41 -0800457 ab8500_battery: ab8500_battery {
458 stericsson,battery-type = "LIPO";
459 thermistor-on-batctrl;
460 };
461
462 ab8500_fg {
463 compatible = "stericsson,ab8500-fg";
464 battery = <&ab8500_battery>;
465 };
466
Rajanikanth H.Vbd9e8ab2012-11-18 19:16:58 -0800467 ab8500_btemp {
468 compatible = "stericsson,ab8500-btemp";
469 battery = <&ab8500_battery>;
470 };
471
Rajanikanth H.V4aef72d2012-11-18 19:17:47 -0800472 ab8500_charger {
473 compatible = "stericsson,ab8500-charger";
474 battery = <&ab8500_battery>;
475 vddadc-supply = <&ab8500_ldo_tvout_reg>;
476 };
477
Rajanikanth H.Va12810a2012-10-31 15:40:33 +0000478 ab8500_chargalg {
479 compatible = "stericsson,ab8500-chargalg";
480 battery = <&ab8500_battery>;
481 };
482
Rajanikanth H.Ve0f1abe2012-11-18 18:45:41 -0800483 ab8500_usb {
Lee Jonesee189ce2012-05-03 14:40:24 +0100484 compatible = "stericsson,ab8500-usb";
Linus Walleij90c40252013-05-29 19:15:39 +0200485 interrupts = < 90 IRQ_TYPE_LEVEL_HIGH
486 96 IRQ_TYPE_LEVEL_HIGH
487 14 IRQ_TYPE_LEVEL_HIGH
488 15 IRQ_TYPE_LEVEL_HIGH
489 79 IRQ_TYPE_LEVEL_HIGH
490 74 IRQ_TYPE_LEVEL_HIGH
491 75 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesee189ce2012-05-03 14:40:24 +0100492 interrupt-names = "ID_WAKEUP_R",
493 "ID_WAKEUP_F",
494 "VBUS_DET_F",
495 "VBUS_DET_R",
496 "USB_LINK_STATUS",
497 "USB_ADP_PROBE_PLUG",
498 "USB_ADP_PROBE_UNPLUG";
Fabio Baltieri99b38ee2013-04-09 11:16:56 +0200499 vddulpivio18-supply = <&ab8500_ldo_intcore_reg>;
Lee Jonesee189ce2012-05-03 14:40:24 +0100500 v-ape-supply = <&db8500_vape_reg>;
501 musb_1v8-supply = <&db8500_vsmps2_reg>;
502 };
503
Lee Jones12cb7bd2012-05-02 08:45:40 +0100504 ab8500-ponkey {
Lee Jones74630702012-08-09 13:00:12 +0100505 compatible = "stericsson,ab8500-poweron-key";
Linus Walleij90c40252013-05-29 19:15:39 +0200506 interrupts = <6 IRQ_TYPE_LEVEL_HIGH
507 7 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones12cb7bd2012-05-02 08:45:40 +0100508 interrupt-names = "ONKEY_DBF", "ONKEY_DBR";
509 };
510
Lee Jones401cd1b2012-05-03 12:53:55 +0100511 ab8500-sysctrl {
512 compatible = "stericsson,ab8500-sysctrl";
513 };
514
Lee Jones78451de2012-05-03 13:03:59 +0100515 ab8500-pwm {
516 compatible = "stericsson,ab8500-pwm";
517 };
518
Lee Jones215891e2012-05-01 16:11:19 +0100519 ab8500-debugfs {
520 compatible = "stericsson,ab8500-debug";
521 };
Lee Jones4a85c7f2012-05-29 14:29:53 +0800522
Lee Jones9c06af32012-07-25 12:50:13 +0100523 codec: ab8500-codec {
524 compatible = "stericsson,ab8500-codec";
525
Fabio Baltierif99808a62013-05-30 15:27:43 +0200526 V-AUD-supply = <&ab8500_ldo_audio_reg>;
527 V-AMIC1-supply = <&ab8500_ldo_anamic1_reg>;
528 V-AMIC2-supply = <&ab8500_ldo_anamic2_reg>;
529 V-DMIC-supply = <&ab8500_ldo_dmic_reg>;
530
Lee Jones9c06af32012-07-25 12:50:13 +0100531 stericsson,earpeice-cmv = <950>; /* Units in mV. */
532 };
533
Lee Jones62ebfe62013-06-07 17:11:19 +0100534 ext_regulators: ab8500-ext-regulators {
535 compatible = "stericsson,ab8500-ext-regulator";
536
537 ab8500_ext1_reg: ab8500_ext1 {
538 regulator-compatible = "ab8500_ext1";
539 regulator-min-microvolt = <1800000>;
540 regulator-max-microvolt = <1800000>;
541 regulator-boot-on;
542 regulator-always-on;
543 };
544
545 ab8500_ext2_reg: ab8500_ext2 {
546 regulator-compatible = "ab8500_ext2";
547 regulator-min-microvolt = <1360000>;
548 regulator-max-microvolt = <1360000>;
549 regulator-boot-on;
550 regulator-always-on;
551 };
552
553 ab8500_ext3_reg: ab8500_ext3 {
554 regulator-compatible = "ab8500_ext3";
555 regulator-min-microvolt = <3400000>;
556 regulator-max-microvolt = <3400000>;
557 regulator-boot-on;
558 };
559 };
560
Lee Jones4a85c7f2012-05-29 14:29:53 +0800561 ab8500-regulators {
562 compatible = "stericsson,ab8500-regulator";
Lee Jones75f0999a2013-06-07 17:11:20 +0100563 vin-supply = <&ab8500_ext3_reg>;
Lee Jones4a85c7f2012-05-29 14:29:53 +0800564
565 // supplies to the display/camera
566 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
Laxman Dewanganda268482012-06-20 17:53:05 +0530567 regulator-compatible = "ab8500_ldo_aux1";
Lee Jones4a85c7f2012-05-29 14:29:53 +0800568 regulator-min-microvolt = <2500000>;
569 regulator-max-microvolt = <2900000>;
570 regulator-boot-on;
571 /* BUG: If turned off MMC will be affected. */
572 regulator-always-on;
573 };
574
575 // supplies to the on-board eMMC
576 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
Laxman Dewanganda268482012-06-20 17:53:05 +0530577 regulator-compatible = "ab8500_ldo_aux2";
Lee Jones4a85c7f2012-05-29 14:29:53 +0800578 regulator-min-microvolt = <1100000>;
579 regulator-max-microvolt = <3300000>;
580 };
581
582 // supply for VAUX3; SDcard slots
583 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
Laxman Dewanganda268482012-06-20 17:53:05 +0530584 regulator-compatible = "ab8500_ldo_aux3";
Lee Jones4a85c7f2012-05-29 14:29:53 +0800585 regulator-min-microvolt = <1100000>;
586 regulator-max-microvolt = <3300000>;
587 };
588
589 // supply for v-intcore12; VINTCORE12 LDO
Fabio Baltieri99b38ee2013-04-09 11:16:56 +0200590 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
591 regulator-compatible = "ab8500_ldo_intcore";
Lee Jones4a85c7f2012-05-29 14:29:53 +0800592 };
593
594 // supply for tvout; gpadc; TVOUT LDO
595 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
Laxman Dewanganda268482012-06-20 17:53:05 +0530596 regulator-compatible = "ab8500_ldo_tvout";
Lee Jones4a85c7f2012-05-29 14:29:53 +0800597 };
598
599 // supply for ab8500-usb; USB LDO
600 ab8500_ldo_usb_reg: ab8500_ldo_usb {
Laxman Dewanganda268482012-06-20 17:53:05 +0530601 regulator-compatible = "ab8500_ldo_usb";
Lee Jones4a85c7f2012-05-29 14:29:53 +0800602 };
603
604 // supply for ab8500-vaudio; VAUDIO LDO
605 ab8500_ldo_audio_reg: ab8500_ldo_audio {
Laxman Dewanganda268482012-06-20 17:53:05 +0530606 regulator-compatible = "ab8500_ldo_audio";
Lee Jones4a85c7f2012-05-29 14:29:53 +0800607 };
608
Fabio Baltieri4aa44872013-05-30 15:27:41 +0200609 // supply for v-anamic1 VAMIC1 LDO
Lee Jones4a85c7f2012-05-29 14:29:53 +0800610 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
Laxman Dewanganda268482012-06-20 17:53:05 +0530611 regulator-compatible = "ab8500_ldo_anamic1";
Lee Jones4a85c7f2012-05-29 14:29:53 +0800612 };
613
614 // supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1
Fabio Baltieri5510ed92013-05-30 15:27:42 +0200615 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
616 regulator-compatible = "ab8500_ldo_anamic2";
Lee Jones4a85c7f2012-05-29 14:29:53 +0800617 };
618
619 // supply for v-dmic; VDMIC LDO
620 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
Laxman Dewanganda268482012-06-20 17:53:05 +0530621 regulator-compatible = "ab8500_ldo_dmic";
Lee Jones4a85c7f2012-05-29 14:29:53 +0800622 };
623
624 // supply for U8500 CSI/DSI; VANA LDO
625 ab8500_ldo_ana_reg: ab8500_ldo_ana {
Laxman Dewanganda268482012-06-20 17:53:05 +0530626 regulator-compatible = "ab8500_ldo_ana";
Lee Jones4a85c7f2012-05-29 14:29:53 +0800627 };
628 };
Lee Jones7e0ce272012-03-15 16:46:17 +0000629 };
630 };
631
632 i2c@80004000 {
Lee Jonesd524fa72012-06-18 09:55:44 +0100633 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
Lee Jones7e0ce272012-03-15 16:46:17 +0000634 reg = <0x80004000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200635 interrupts = <0 21 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones35b33d22012-10-24 11:07:02 +0100636
Lee Jones7e0ce272012-03-15 16:46:17 +0000637 #address-cells = <1>;
638 #size-cells = <0>;
Lee Jonesd524fa72012-06-18 09:55:44 +0100639 v-i2c-supply = <&db8500_vape_reg>;
640
641 clock-frequency = <400000>;
Lee Jonesafd653e2013-06-03 13:15:22 +0100642 clocks = <&prcc_kclk 3 3>, <&prcc_pclk 3 3>;
643 clock-names = "i2cclk", "apb_pclk";
Ulf Hansson29417fe2014-10-14 11:13:01 +0200644 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000645 };
646
647 i2c@80122000 {
Lee Jonesd524fa72012-06-18 09:55:44 +0100648 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
Lee Jones7e0ce272012-03-15 16:46:17 +0000649 reg = <0x80122000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200650 interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones35b33d22012-10-24 11:07:02 +0100651
Lee Jones7e0ce272012-03-15 16:46:17 +0000652 #address-cells = <1>;
653 #size-cells = <0>;
Lee Jonesd524fa72012-06-18 09:55:44 +0100654 v-i2c-supply = <&db8500_vape_reg>;
655
656 clock-frequency = <400000>;
Lee Jonesafd653e2013-06-03 13:15:22 +0100657
658 clocks = <&prcc_kclk 1 2>, <&prcc_pclk 1 2>;
659 clock-names = "i2cclk", "apb_pclk";
Ulf Hansson29417fe2014-10-14 11:13:01 +0200660 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000661 };
662
663 i2c@80128000 {
Lee Jonesd524fa72012-06-18 09:55:44 +0100664 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
Lee Jones7e0ce272012-03-15 16:46:17 +0000665 reg = <0x80128000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200666 interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones35b33d22012-10-24 11:07:02 +0100667
Lee Jones7e0ce272012-03-15 16:46:17 +0000668 #address-cells = <1>;
669 #size-cells = <0>;
Lee Jonesd524fa72012-06-18 09:55:44 +0100670 v-i2c-supply = <&db8500_vape_reg>;
671
672 clock-frequency = <400000>;
Lee Jonesafd653e2013-06-03 13:15:22 +0100673
674 clocks = <&prcc_kclk 1 6>, <&prcc_pclk 1 6>;
675 clock-names = "i2cclk", "apb_pclk";
Ulf Hansson29417fe2014-10-14 11:13:01 +0200676 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000677 };
678
679 i2c@80110000 {
Lee Jonesd524fa72012-06-18 09:55:44 +0100680 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
Lee Jones7e0ce272012-03-15 16:46:17 +0000681 reg = <0x80110000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200682 interrupts = <0 12 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones35b33d22012-10-24 11:07:02 +0100683
Lee Jones7e0ce272012-03-15 16:46:17 +0000684 #address-cells = <1>;
685 #size-cells = <0>;
Lee Jonesd524fa72012-06-18 09:55:44 +0100686 v-i2c-supply = <&db8500_vape_reg>;
687
688 clock-frequency = <400000>;
Lee Jonesafd653e2013-06-03 13:15:22 +0100689
690 clocks = <&prcc_kclk 2 0>, <&prcc_pclk 2 0>;
691 clock-names = "i2cclk", "apb_pclk";
Ulf Hansson29417fe2014-10-14 11:13:01 +0200692 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000693 };
694
695 i2c@8012a000 {
Lee Jonesd524fa72012-06-18 09:55:44 +0100696 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
Lee Jones7e0ce272012-03-15 16:46:17 +0000697 reg = <0x8012a000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200698 interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones35b33d22012-10-24 11:07:02 +0100699
Lee Jones7e0ce272012-03-15 16:46:17 +0000700 #address-cells = <1>;
701 #size-cells = <0>;
Lee Jonesd524fa72012-06-18 09:55:44 +0100702 v-i2c-supply = <&db8500_vape_reg>;
703
704 clock-frequency = <400000>;
Lee Jonesafd653e2013-06-03 13:15:22 +0100705
Linus Walleij72b3e242013-10-18 10:39:58 +0200706 clocks = <&prcc_kclk 1 9>, <&prcc_pclk 1 10>;
Lee Jonesafd653e2013-06-03 13:15:22 +0100707 clock-names = "i2cclk", "apb_pclk";
Ulf Hansson29417fe2014-10-14 11:13:01 +0200708 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000709 };
710
711 ssp@80002000 {
712 compatible = "arm,pl022", "arm,primecell";
Lee Jonesc164fa62012-09-07 12:09:34 +0100713 reg = <0x80002000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200714 interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000715 #address-cells = <1>;
716 #size-cells = <0>;
Linus Walleij6e1484c2013-10-18 10:25:52 +0200717 clocks = <&prcc_kclk 3 1>, <&prcc_pclk 3 1>;
Linus Walleij80fbe302014-02-24 13:30:15 +0100718 clock-names = "SSPCLK", "apb_pclk";
Linus Walleij6e1484c2013-10-18 10:25:52 +0200719 dmas = <&dma 8 0 0x2>, /* Logical - DevToMem */
720 <&dma 8 0 0x0>; /* Logical - MemToDev */
721 dma-names = "rx", "tx";
Ulf Hansson770e2f62014-10-14 11:13:00 +0200722 power-domains = <&pm_domains DOMAIN_VAPE>;
Linus Walleij6e1484c2013-10-18 10:25:52 +0200723 };
724
725 ssp@80003000 {
726 compatible = "arm,pl022", "arm,primecell";
727 reg = <0x80003000 0x1000>;
728 interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
729 #address-cells = <1>;
730 #size-cells = <0>;
731 clocks = <&prcc_kclk 3 2>, <&prcc_pclk 3 2>;
Linus Walleij80fbe302014-02-24 13:30:15 +0100732 clock-names = "SSPCLK", "apb_pclk";
Linus Walleij6e1484c2013-10-18 10:25:52 +0200733 dmas = <&dma 9 0 0x2>, /* Logical - DevToMem */
734 <&dma 9 0 0x0>; /* Logical - MemToDev */
735 dma-names = "rx", "tx";
Ulf Hansson770e2f62014-10-14 11:13:00 +0200736 power-domains = <&pm_domains DOMAIN_VAPE>;
Linus Walleij6e1484c2013-10-18 10:25:52 +0200737 };
738
739 spi@8011a000 {
740 compatible = "arm,pl022", "arm,primecell";
741 reg = <0x8011a000 0x1000>;
742 interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
743 #address-cells = <1>;
744 #size-cells = <0>;
745 /* Same clock wired to kernel and pclk */
746 clocks = <&prcc_pclk 2 8>, <&prcc_pclk 2 8>;
Linus Walleij80fbe302014-02-24 13:30:15 +0100747 clock-names = "SSPCLK", "apb_pclk";
Linus Walleij6e1484c2013-10-18 10:25:52 +0200748 dmas = <&dma 0 0 0x2>, /* Logical - DevToMem */
749 <&dma 0 0 0x0>; /* Logical - MemToDev */
750 dma-names = "rx", "tx";
Ulf Hansson770e2f62014-10-14 11:13:00 +0200751 power-domains = <&pm_domains DOMAIN_VAPE>;
Linus Walleij6e1484c2013-10-18 10:25:52 +0200752 };
753
754 spi@80112000 {
755 compatible = "arm,pl022", "arm,primecell";
756 reg = <0x80112000 0x1000>;
757 interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
758 #address-cells = <1>;
759 #size-cells = <0>;
760 /* Same clock wired to kernel and pclk */
761 clocks = <&prcc_pclk 2 2>, <&prcc_pclk 2 2>;
Linus Walleij80fbe302014-02-24 13:30:15 +0100762 clock-names = "SSPCLK", "apb_pclk";
Linus Walleij6e1484c2013-10-18 10:25:52 +0200763 dmas = <&dma 35 0 0x2>, /* Logical - DevToMem */
764 <&dma 35 0 0x0>; /* Logical - MemToDev */
765 dma-names = "rx", "tx";
Ulf Hansson770e2f62014-10-14 11:13:00 +0200766 power-domains = <&pm_domains DOMAIN_VAPE>;
Linus Walleij6e1484c2013-10-18 10:25:52 +0200767 };
768
769 spi@80111000 {
770 compatible = "arm,pl022", "arm,primecell";
771 reg = <0x80111000 0x1000>;
772 interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
773 #address-cells = <1>;
774 #size-cells = <0>;
775 /* Same clock wired to kernel and pclk */
776 clocks = <&prcc_pclk 2 1>, <&prcc_pclk 2 1>;
Linus Walleij80fbe302014-02-24 13:30:15 +0100777 clock-names = "SSPCLK", "apb_pclk";
Linus Walleij6e1484c2013-10-18 10:25:52 +0200778 dmas = <&dma 33 0 0x2>, /* Logical - DevToMem */
779 <&dma 33 0 0x0>; /* Logical - MemToDev */
780 dma-names = "rx", "tx";
Ulf Hansson770e2f62014-10-14 11:13:00 +0200781 power-domains = <&pm_domains DOMAIN_VAPE>;
Linus Walleij6e1484c2013-10-18 10:25:52 +0200782 };
783
784 spi@80129000 {
785 compatible = "arm,pl022", "arm,primecell";
786 reg = <0x80129000 0x1000>;
787 interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
788 #address-cells = <1>;
789 #size-cells = <0>;
790 /* Same clock wired to kernel and pclk */
791 clocks = <&prcc_pclk 1 7>, <&prcc_pclk 1 7>;
Linus Walleij80fbe302014-02-24 13:30:15 +0100792 clock-names = "SSPCLK", "apb_pclk";
Linus Walleij6e1484c2013-10-18 10:25:52 +0200793 dmas = <&dma 40 0 0x2>, /* Logical - DevToMem */
794 <&dma 40 0 0x0>; /* Logical - MemToDev */
795 dma-names = "rx", "tx";
Ulf Hansson770e2f62014-10-14 11:13:00 +0200796 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000797 };
798
799 uart@80120000 {
800 compatible = "arm,pl011", "arm,primecell";
801 reg = <0x80120000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200802 interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfbff01c2013-05-03 15:31:49 +0100803
804 dmas = <&dma 13 0 0x2>, /* Logical - DevToMem */
805 <&dma 13 0 0x0>; /* Logical - MemToDev */
806 dma-names = "rx", "tx";
807
Lee Jones5a323fb2013-06-03 13:17:17 +0100808 clocks = <&prcc_kclk 1 0>, <&prcc_pclk 1 0>;
809 clock-names = "uart", "apb_pclk";
810
Lee Jones7e0ce272012-03-15 16:46:17 +0000811 status = "disabled";
812 };
Lee Jonesfbff01c2013-05-03 15:31:49 +0100813
Lee Jones7e0ce272012-03-15 16:46:17 +0000814 uart@80121000 {
815 compatible = "arm,pl011", "arm,primecell";
816 reg = <0x80121000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200817 interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfbff01c2013-05-03 15:31:49 +0100818
819 dmas = <&dma 12 0 0x2>, /* Logical - DevToMem */
820 <&dma 12 0 0x0>; /* Logical - MemToDev */
821 dma-names = "rx", "tx";
822
Lee Jones5a323fb2013-06-03 13:17:17 +0100823 clocks = <&prcc_kclk 1 1>, <&prcc_pclk 1 1>;
824 clock-names = "uart", "apb_pclk";
825
Lee Jones7e0ce272012-03-15 16:46:17 +0000826 status = "disabled";
827 };
Lee Jonesfbff01c2013-05-03 15:31:49 +0100828
Lee Jones7e0ce272012-03-15 16:46:17 +0000829 uart@80007000 {
830 compatible = "arm,pl011", "arm,primecell";
831 reg = <0x80007000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200832 interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfbff01c2013-05-03 15:31:49 +0100833
834 dmas = <&dma 11 0 0x2>, /* Logical - DevToMem */
835 <&dma 11 0 0x0>; /* Logical - MemToDev */
836 dma-names = "rx", "tx";
837
Lee Jones5a323fb2013-06-03 13:17:17 +0100838 clocks = <&prcc_kclk 3 6>, <&prcc_pclk 3 6>;
839 clock-names = "uart", "apb_pclk";
840
Lee Jones7e0ce272012-03-15 16:46:17 +0000841 status = "disabled";
842 };
843
Lee Jones81bf8c22012-09-26 12:55:56 +0100844 sdi0_per1@80126000 {
Lee Jones7e0ce272012-03-15 16:46:17 +0000845 compatible = "arm,pl18x", "arm,primecell";
846 reg = <0x80126000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200847 interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones498315b92013-05-03 15:31:50 +0100848
849 dmas = <&dma 29 0 0x2>, /* Logical - DevToMem */
850 <&dma 29 0 0x0>; /* Logical - MemToDev */
851 dma-names = "rx", "tx";
852
Lee Jones604be892013-06-06 12:28:50 +0100853 clocks = <&prcc_kclk 1 5>, <&prcc_pclk 1 5>;
854 clock-names = "sdi", "apb_pclk";
Ulf Hansson067adde2014-10-14 11:12:59 +0200855 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones604be892013-06-06 12:28:50 +0100856
Lee Jones7e0ce272012-03-15 16:46:17 +0000857 status = "disabled";
858 };
Lee Jones76ff4e42012-10-24 11:10:05 +0100859
Lee Jones81bf8c22012-09-26 12:55:56 +0100860 sdi1_per2@80118000 {
Lee Jones7e0ce272012-03-15 16:46:17 +0000861 compatible = "arm,pl18x", "arm,primecell";
862 reg = <0x80118000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200863 interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones498315b92013-05-03 15:31:50 +0100864
865 dmas = <&dma 32 0 0x2>, /* Logical - DevToMem */
866 <&dma 32 0 0x0>; /* Logical - MemToDev */
867 dma-names = "rx", "tx";
868
Lee Jones604be892013-06-06 12:28:50 +0100869 clocks = <&prcc_kclk 2 4>, <&prcc_pclk 2 6>;
870 clock-names = "sdi", "apb_pclk";
Ulf Hansson067adde2014-10-14 11:12:59 +0200871 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones604be892013-06-06 12:28:50 +0100872
Lee Jones7e0ce272012-03-15 16:46:17 +0000873 status = "disabled";
874 };
Lee Jones76ff4e42012-10-24 11:10:05 +0100875
Lee Jones81bf8c22012-09-26 12:55:56 +0100876 sdi2_per3@80005000 {
Lee Jones7e0ce272012-03-15 16:46:17 +0000877 compatible = "arm,pl18x", "arm,primecell";
878 reg = <0x80005000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200879 interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones498315b92013-05-03 15:31:50 +0100880
881 dmas = <&dma 28 0 0x2>, /* Logical - DevToMem */
882 <&dma 28 0 0x0>; /* Logical - MemToDev */
883 dma-names = "rx", "tx";
884
Lee Jones604be892013-06-06 12:28:50 +0100885 clocks = <&prcc_kclk 3 4>, <&prcc_pclk 3 4>;
886 clock-names = "sdi", "apb_pclk";
Ulf Hansson067adde2014-10-14 11:12:59 +0200887 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones604be892013-06-06 12:28:50 +0100888
Lee Jones7e0ce272012-03-15 16:46:17 +0000889 status = "disabled";
890 };
Lee Jones76ff4e42012-10-24 11:10:05 +0100891
Lee Jones81bf8c22012-09-26 12:55:56 +0100892 sdi3_per2@80119000 {
Lee Jones7e0ce272012-03-15 16:46:17 +0000893 compatible = "arm,pl18x", "arm,primecell";
894 reg = <0x80119000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200895 interrupts = <0 59 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones604be892013-06-06 12:28:50 +0100896
Linus Walleij14cdf8c2014-06-11 10:45:50 +0200897 dmas = <&dma 41 0 0x2>, /* Logical - DevToMem */
898 <&dma 41 0 0x0>; /* Logical - MemToDev */
899 dma-names = "rx", "tx";
900
Lee Jones604be892013-06-06 12:28:50 +0100901 clocks = <&prcc_kclk 2 5>, <&prcc_pclk 2 7>;
902 clock-names = "sdi", "apb_pclk";
Ulf Hansson067adde2014-10-14 11:12:59 +0200903 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones604be892013-06-06 12:28:50 +0100904
Lee Jones7e0ce272012-03-15 16:46:17 +0000905 status = "disabled";
906 };
Lee Jones76ff4e42012-10-24 11:10:05 +0100907
Lee Jones81bf8c22012-09-26 12:55:56 +0100908 sdi4_per2@80114000 {
Lee Jones7e0ce272012-03-15 16:46:17 +0000909 compatible = "arm,pl18x", "arm,primecell";
910 reg = <0x80114000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200911 interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones498315b92013-05-03 15:31:50 +0100912
913 dmas = <&dma 42 0 0x2>, /* Logical - DevToMem */
914 <&dma 42 0 0x0>; /* Logical - MemToDev */
915 dma-names = "rx", "tx";
916
Lee Jones604be892013-06-06 12:28:50 +0100917 clocks = <&prcc_kclk 2 2>, <&prcc_pclk 2 4>;
918 clock-names = "sdi", "apb_pclk";
Ulf Hansson067adde2014-10-14 11:12:59 +0200919 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones604be892013-06-06 12:28:50 +0100920
Lee Jones7e0ce272012-03-15 16:46:17 +0000921 status = "disabled";
922 };
Lee Jones76ff4e42012-10-24 11:10:05 +0100923
Lee Jones81bf8c22012-09-26 12:55:56 +0100924 sdi5_per3@80008000 {
Lee Jones7e0ce272012-03-15 16:46:17 +0000925 compatible = "arm,pl18x", "arm,primecell";
Lee Jones76ff4e42012-10-24 11:10:05 +0100926 reg = <0x80008000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200927 interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones604be892013-06-06 12:28:50 +0100928
Linus Walleij14cdf8c2014-06-11 10:45:50 +0200929 dmas = <&dma 43 0 0x2>, /* Logical - DevToMem */
930 <&dma 43 0 0x0>; /* Logical - MemToDev */
931 dma-names = "rx", "tx";
932
Lee Jones604be892013-06-06 12:28:50 +0100933 clocks = <&prcc_kclk 3 7>, <&prcc_pclk 3 7>;
934 clock-names = "sdi", "apb_pclk";
Ulf Hansson067adde2014-10-14 11:12:59 +0200935 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones604be892013-06-06 12:28:50 +0100936
Lee Jones7e0ce272012-03-15 16:46:17 +0000937 status = "disabled";
938 };
Lee Jonesbf76e062012-04-24 10:53:18 +0100939
Lee Jonesfe164522012-07-31 12:37:16 +0100940 msp0: msp@80123000 {
941 compatible = "stericsson,ux500-msp-i2s";
942 reg = <0x80123000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200943 interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfe164522012-07-31 12:37:16 +0100944 v-ape-supply = <&db8500_vape_reg>;
Lee Jones133e6022013-06-03 13:18:00 +0100945
Lee Jones618111c2013-11-06 10:16:16 +0000946 dmas = <&dma 31 0 0x12>, /* Logical - DevToMem - HighPrio */
947 <&dma 31 0 0x10>; /* Logical - MemToDev - HighPrio */
948 dma-names = "rx", "tx";
949
Lee Jones133e6022013-06-03 13:18:00 +0100950 clocks = <&prcc_kclk 1 3>, <&prcc_pclk 1 3>;
951 clock-names = "msp", "apb_pclk";
952
Lee Jonesfe164522012-07-31 12:37:16 +0100953 status = "disabled";
954 };
955
956 msp1: msp@80124000 {
957 compatible = "stericsson,ux500-msp-i2s";
958 reg = <0x80124000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200959 interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfe164522012-07-31 12:37:16 +0100960 v-ape-supply = <&db8500_vape_reg>;
Lee Jones133e6022013-06-03 13:18:00 +0100961
Linus Walleij14cdf8c2014-06-11 10:45:50 +0200962 /* This DMA channel only exist on DB8500 v1 */
Lee Jones618111c2013-11-06 10:16:16 +0000963 dmas = <&dma 30 0 0x10>; /* Logical - MemToDev - HighPrio */
964 dma-names = "tx";
965
Lee Jones133e6022013-06-03 13:18:00 +0100966 clocks = <&prcc_kclk 1 4>, <&prcc_pclk 1 4>;
967 clock-names = "msp", "apb_pclk";
968
Lee Jonesfe164522012-07-31 12:37:16 +0100969 status = "disabled";
970 };
971
972 // HDMI sound
973 msp2: msp@80117000 {
974 compatible = "stericsson,ux500-msp-i2s";
975 reg = <0x80117000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200976 interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfe164522012-07-31 12:37:16 +0100977 v-ape-supply = <&db8500_vape_reg>;
Lee Jones133e6022013-06-03 13:18:00 +0100978
Lee Jones618111c2013-11-06 10:16:16 +0000979 dmas = <&dma 14 0 0x12>, /* Logical - DevToMem - HighPrio */
980 <&dma 14 1 0x19>; /* Physical Chan 1 - MemToDev
981 HighPrio - Fixed */
982 dma-names = "rx", "tx";
983
Lee Jones133e6022013-06-03 13:18:00 +0100984 clocks = <&prcc_kclk 2 3>, <&prcc_pclk 2 5>;
985 clock-names = "msp", "apb_pclk";
986
Lee Jonesfe164522012-07-31 12:37:16 +0100987 status = "disabled";
988 };
989
990 msp3: msp@80125000 {
991 compatible = "stericsson,ux500-msp-i2s";
992 reg = <0x80125000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200993 interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfe164522012-07-31 12:37:16 +0100994 v-ape-supply = <&db8500_vape_reg>;
Lee Jones133e6022013-06-03 13:18:00 +0100995
Linus Walleij14cdf8c2014-06-11 10:45:50 +0200996 /* This DMA channel only exist on DB8500 v2 */
Lee Jones618111c2013-11-06 10:16:16 +0000997 dmas = <&dma 30 0 0x12>; /* Logical - DevToMem - HighPrio */
998 dma-names = "rx";
999
Lee Jones133e6022013-06-03 13:18:00 +01001000 clocks = <&prcc_kclk 1 10>, <&prcc_pclk 1 11>;
1001 clock-names = "msp", "apb_pclk";
1002
Lee Jonesfe164522012-07-31 12:37:16 +01001003 status = "disabled";
1004 };
1005
Lee Jonesbf76e062012-04-24 10:53:18 +01001006 external-bus@50000000 {
1007 compatible = "simple-bus";
1008 reg = <0x50000000 0x4000000>;
1009 #address-cells = <1>;
1010 #size-cells = <1>;
1011 ranges = <0 0x50000000 0x4000000>;
1012 status = "disabled";
1013 };
hongbo.zhangdc1956b2012-11-15 18:56:43 +08001014
1015 cpufreq-cooling {
1016 compatible = "stericsson,db8500-cpufreq-cooling";
1017 status = "disabled";
Lee Jonesd460d282013-09-18 16:05:04 +01001018 };
hongbo.zhangdc1956b2012-11-15 18:56:43 +08001019
Lee Jones0563f632012-10-24 11:18:14 +01001020 vmmci: regulator-gpio {
1021 compatible = "regulator-gpio";
1022
1023 regulator-min-microvolt = <1800000>;
Lee Jones4f902b42012-12-06 14:00:01 +00001024 regulator-max-microvolt = <2900000>;
Lee Jones0563f632012-10-24 11:18:14 +01001025 regulator-name = "mmci-reg";
1026 regulator-type = "voltage";
1027
Lee Jones874c9202012-12-07 13:46:01 +00001028 startup-delay-us = <100>;
Lee Jonese7bda302012-12-06 15:00:46 +00001029 enable-active-high;
1030
Lee Jones0563f632012-10-24 11:18:14 +01001031 states = <1800000 0x1
1032 2900000 0x0>;
Lee Jonesc94a4ab2012-11-15 13:02:16 +00001033
1034 status = "disabled";
Lee Jones0563f632012-10-24 11:18:14 +01001035 };
Lee Jonesfe2e9f92013-05-16 12:27:21 +01001036
Linus Walleij6e9a88a2013-11-14 15:21:00 +01001037 mcde@a0350000 {
1038 compatible = "stericsson,mcde";
1039 reg = <0xa0350000 0x1000>, /* MCDE */
1040 <0xa0351000 0x1000>, /* DSI link 1 */
1041 <0xa0352000 0x1000>, /* DSI link 2 */
1042 <0xa0353000 0x1000>; /* DSI link 3 */
1043 interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>;
1044 clocks = <&prcmu_clk PRCMU_MCDECLK>, /* Main MCDE clock */
1045 <&prcmu_clk PRCMU_LCDCLK>, /* LCD clock */
1046 <&prcmu_clk PRCMU_PLLDSI>, /* HDMI clock */
1047 <&prcmu_clk PRCMU_DSI0CLK>, /* DSI 0 */
1048 <&prcmu_clk PRCMU_DSI1CLK>, /* DSI 1 */
1049 <&prcmu_clk PRCMU_DSI0ESCCLK>, /* TVout clock 0 */
1050 <&prcmu_clk PRCMU_DSI1ESCCLK>, /* TVout clock 1 */
1051 <&prcmu_clk PRCMU_DSI2ESCCLK>; /* TVout clock 2 */
1052 };
1053
Lee Jonesfe2e9f92013-05-16 12:27:21 +01001054 cryp@a03cb000 {
1055 compatible = "stericsson,ux500-cryp";
1056 reg = <0xa03cb000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +02001057 interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfe2e9f92013-05-16 12:27:21 +01001058
1059 v-ape-supply = <&db8500_vape_reg>;
Lee Jonesd2f898c2013-09-18 16:05:52 +01001060 clocks = <&prcc_pclk 6 1>;
Lee Jonesfe2e9f92013-05-16 12:27:21 +01001061 };
Lee Jones61122cf2013-05-16 12:27:22 +01001062
1063 hash@a03c2000 {
1064 compatible = "stericsson,ux500-hash";
1065 reg = <0xa03c2000 0x1000>;
1066
1067 v-ape-supply = <&db8500_vape_reg>;
Lee Jones024cfe82013-09-18 16:07:27 +01001068 clocks = <&prcc_pclk 6 2>;
Lee Jones61122cf2013-05-16 12:27:22 +01001069 };
Arnd Bergmann5d0769f2012-03-02 23:07:21 +00001070 };
1071};