blob: 41009c1004f3fc5a7a1722e09f4aad77315f92bd [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 Baltierif99808a2013-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 Jones75f09992013-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";
Lee Jones7e0ce272012-03-15 16:46:17 +0000644 };
645
646 i2c@80122000 {
Lee Jonesd524fa72012-06-18 09:55:44 +0100647 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
Lee Jones7e0ce272012-03-15 16:46:17 +0000648 reg = <0x80122000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200649 interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones35b33d22012-10-24 11:07:02 +0100650
Lee Jones7e0ce272012-03-15 16:46:17 +0000651 #address-cells = <1>;
652 #size-cells = <0>;
Lee Jonesd524fa72012-06-18 09:55:44 +0100653 v-i2c-supply = <&db8500_vape_reg>;
654
655 clock-frequency = <400000>;
Lee Jonesafd653e2013-06-03 13:15:22 +0100656
657 clocks = <&prcc_kclk 1 2>, <&prcc_pclk 1 2>;
658 clock-names = "i2cclk", "apb_pclk";
Lee Jones7e0ce272012-03-15 16:46:17 +0000659 };
660
661 i2c@80128000 {
Lee Jonesd524fa72012-06-18 09:55:44 +0100662 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
Lee Jones7e0ce272012-03-15 16:46:17 +0000663 reg = <0x80128000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200664 interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones35b33d22012-10-24 11:07:02 +0100665
Lee Jones7e0ce272012-03-15 16:46:17 +0000666 #address-cells = <1>;
667 #size-cells = <0>;
Lee Jonesd524fa72012-06-18 09:55:44 +0100668 v-i2c-supply = <&db8500_vape_reg>;
669
670 clock-frequency = <400000>;
Lee Jonesafd653e2013-06-03 13:15:22 +0100671
672 clocks = <&prcc_kclk 1 6>, <&prcc_pclk 1 6>;
673 clock-names = "i2cclk", "apb_pclk";
Lee Jones7e0ce272012-03-15 16:46:17 +0000674 };
675
676 i2c@80110000 {
Lee Jonesd524fa72012-06-18 09:55:44 +0100677 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
Lee Jones7e0ce272012-03-15 16:46:17 +0000678 reg = <0x80110000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200679 interrupts = <0 12 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones35b33d22012-10-24 11:07:02 +0100680
Lee Jones7e0ce272012-03-15 16:46:17 +0000681 #address-cells = <1>;
682 #size-cells = <0>;
Lee Jonesd524fa72012-06-18 09:55:44 +0100683 v-i2c-supply = <&db8500_vape_reg>;
684
685 clock-frequency = <400000>;
Lee Jonesafd653e2013-06-03 13:15:22 +0100686
687 clocks = <&prcc_kclk 2 0>, <&prcc_pclk 2 0>;
688 clock-names = "i2cclk", "apb_pclk";
Lee Jones7e0ce272012-03-15 16:46:17 +0000689 };
690
691 i2c@8012a000 {
Lee Jonesd524fa72012-06-18 09:55:44 +0100692 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
Lee Jones7e0ce272012-03-15 16:46:17 +0000693 reg = <0x8012a000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200694 interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones35b33d22012-10-24 11:07:02 +0100695
Lee Jones7e0ce272012-03-15 16:46:17 +0000696 #address-cells = <1>;
697 #size-cells = <0>;
Lee Jonesd524fa72012-06-18 09:55:44 +0100698 v-i2c-supply = <&db8500_vape_reg>;
699
700 clock-frequency = <400000>;
Lee Jonesafd653e2013-06-03 13:15:22 +0100701
Linus Walleij72b3e242013-10-18 10:39:58 +0200702 clocks = <&prcc_kclk 1 9>, <&prcc_pclk 1 10>;
Lee Jonesafd653e2013-06-03 13:15:22 +0100703 clock-names = "i2cclk", "apb_pclk";
Lee Jones7e0ce272012-03-15 16:46:17 +0000704 };
705
706 ssp@80002000 {
707 compatible = "arm,pl022", "arm,primecell";
Lee Jonesc164fa62012-09-07 12:09:34 +0100708 reg = <0x80002000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200709 interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000710 #address-cells = <1>;
711 #size-cells = <0>;
Linus Walleij6e1484c2013-10-18 10:25:52 +0200712 clocks = <&prcc_kclk 3 1>, <&prcc_pclk 3 1>;
Linus Walleij80fbe302014-02-24 13:30:15 +0100713 clock-names = "SSPCLK", "apb_pclk";
Linus Walleij6e1484c2013-10-18 10:25:52 +0200714 dmas = <&dma 8 0 0x2>, /* Logical - DevToMem */
715 <&dma 8 0 0x0>; /* Logical - MemToDev */
716 dma-names = "rx", "tx";
717 };
718
719 ssp@80003000 {
720 compatible = "arm,pl022", "arm,primecell";
721 reg = <0x80003000 0x1000>;
722 interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
723 #address-cells = <1>;
724 #size-cells = <0>;
725 clocks = <&prcc_kclk 3 2>, <&prcc_pclk 3 2>;
Linus Walleij80fbe302014-02-24 13:30:15 +0100726 clock-names = "SSPCLK", "apb_pclk";
Linus Walleij6e1484c2013-10-18 10:25:52 +0200727 dmas = <&dma 9 0 0x2>, /* Logical - DevToMem */
728 <&dma 9 0 0x0>; /* Logical - MemToDev */
729 dma-names = "rx", "tx";
730 };
731
732 spi@8011a000 {
733 compatible = "arm,pl022", "arm,primecell";
734 reg = <0x8011a000 0x1000>;
735 interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
736 #address-cells = <1>;
737 #size-cells = <0>;
738 /* Same clock wired to kernel and pclk */
739 clocks = <&prcc_pclk 2 8>, <&prcc_pclk 2 8>;
Linus Walleij80fbe302014-02-24 13:30:15 +0100740 clock-names = "SSPCLK", "apb_pclk";
Linus Walleij6e1484c2013-10-18 10:25:52 +0200741 dmas = <&dma 0 0 0x2>, /* Logical - DevToMem */
742 <&dma 0 0 0x0>; /* Logical - MemToDev */
743 dma-names = "rx", "tx";
744 };
745
746 spi@80112000 {
747 compatible = "arm,pl022", "arm,primecell";
748 reg = <0x80112000 0x1000>;
749 interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
750 #address-cells = <1>;
751 #size-cells = <0>;
752 /* Same clock wired to kernel and pclk */
753 clocks = <&prcc_pclk 2 2>, <&prcc_pclk 2 2>;
Linus Walleij80fbe302014-02-24 13:30:15 +0100754 clock-names = "SSPCLK", "apb_pclk";
Linus Walleij6e1484c2013-10-18 10:25:52 +0200755 dmas = <&dma 35 0 0x2>, /* Logical - DevToMem */
756 <&dma 35 0 0x0>; /* Logical - MemToDev */
757 dma-names = "rx", "tx";
758 };
759
760 spi@80111000 {
761 compatible = "arm,pl022", "arm,primecell";
762 reg = <0x80111000 0x1000>;
763 interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
764 #address-cells = <1>;
765 #size-cells = <0>;
766 /* Same clock wired to kernel and pclk */
767 clocks = <&prcc_pclk 2 1>, <&prcc_pclk 2 1>;
Linus Walleij80fbe302014-02-24 13:30:15 +0100768 clock-names = "SSPCLK", "apb_pclk";
Linus Walleij6e1484c2013-10-18 10:25:52 +0200769 dmas = <&dma 33 0 0x2>, /* Logical - DevToMem */
770 <&dma 33 0 0x0>; /* Logical - MemToDev */
771 dma-names = "rx", "tx";
772 };
773
774 spi@80129000 {
775 compatible = "arm,pl022", "arm,primecell";
776 reg = <0x80129000 0x1000>;
777 interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
778 #address-cells = <1>;
779 #size-cells = <0>;
780 /* Same clock wired to kernel and pclk */
781 clocks = <&prcc_pclk 1 7>, <&prcc_pclk 1 7>;
Linus Walleij80fbe302014-02-24 13:30:15 +0100782 clock-names = "SSPCLK", "apb_pclk";
Linus Walleij6e1484c2013-10-18 10:25:52 +0200783 dmas = <&dma 40 0 0x2>, /* Logical - DevToMem */
784 <&dma 40 0 0x0>; /* Logical - MemToDev */
785 dma-names = "rx", "tx";
Lee Jones7e0ce272012-03-15 16:46:17 +0000786 };
787
788 uart@80120000 {
789 compatible = "arm,pl011", "arm,primecell";
790 reg = <0x80120000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200791 interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfbff01c2013-05-03 15:31:49 +0100792
793 dmas = <&dma 13 0 0x2>, /* Logical - DevToMem */
794 <&dma 13 0 0x0>; /* Logical - MemToDev */
795 dma-names = "rx", "tx";
796
Lee Jones5a323fb2013-06-03 13:17:17 +0100797 clocks = <&prcc_kclk 1 0>, <&prcc_pclk 1 0>;
798 clock-names = "uart", "apb_pclk";
799
Lee Jones7e0ce272012-03-15 16:46:17 +0000800 status = "disabled";
801 };
Lee Jonesfbff01c2013-05-03 15:31:49 +0100802
Lee Jones7e0ce272012-03-15 16:46:17 +0000803 uart@80121000 {
804 compatible = "arm,pl011", "arm,primecell";
805 reg = <0x80121000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200806 interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfbff01c2013-05-03 15:31:49 +0100807
808 dmas = <&dma 12 0 0x2>, /* Logical - DevToMem */
809 <&dma 12 0 0x0>; /* Logical - MemToDev */
810 dma-names = "rx", "tx";
811
Lee Jones5a323fb2013-06-03 13:17:17 +0100812 clocks = <&prcc_kclk 1 1>, <&prcc_pclk 1 1>;
813 clock-names = "uart", "apb_pclk";
814
Lee Jones7e0ce272012-03-15 16:46:17 +0000815 status = "disabled";
816 };
Lee Jonesfbff01c2013-05-03 15:31:49 +0100817
Lee Jones7e0ce272012-03-15 16:46:17 +0000818 uart@80007000 {
819 compatible = "arm,pl011", "arm,primecell";
820 reg = <0x80007000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200821 interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfbff01c2013-05-03 15:31:49 +0100822
823 dmas = <&dma 11 0 0x2>, /* Logical - DevToMem */
824 <&dma 11 0 0x0>; /* Logical - MemToDev */
825 dma-names = "rx", "tx";
826
Lee Jones5a323fb2013-06-03 13:17:17 +0100827 clocks = <&prcc_kclk 3 6>, <&prcc_pclk 3 6>;
828 clock-names = "uart", "apb_pclk";
829
Lee Jones7e0ce272012-03-15 16:46:17 +0000830 status = "disabled";
831 };
832
Lee Jones81bf8c22012-09-26 12:55:56 +0100833 sdi0_per1@80126000 {
Lee Jones7e0ce272012-03-15 16:46:17 +0000834 compatible = "arm,pl18x", "arm,primecell";
835 reg = <0x80126000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200836 interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones498315b92013-05-03 15:31:50 +0100837
838 dmas = <&dma 29 0 0x2>, /* Logical - DevToMem */
839 <&dma 29 0 0x0>; /* Logical - MemToDev */
840 dma-names = "rx", "tx";
841
Lee Jones604be892013-06-06 12:28:50 +0100842 clocks = <&prcc_kclk 1 5>, <&prcc_pclk 1 5>;
843 clock-names = "sdi", "apb_pclk";
Ulf Hansson067adde2014-10-14 11:12:59 +0200844 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones604be892013-06-06 12:28:50 +0100845
Lee Jones7e0ce272012-03-15 16:46:17 +0000846 status = "disabled";
847 };
Lee Jones76ff4e42012-10-24 11:10:05 +0100848
Lee Jones81bf8c22012-09-26 12:55:56 +0100849 sdi1_per2@80118000 {
Lee Jones7e0ce272012-03-15 16:46:17 +0000850 compatible = "arm,pl18x", "arm,primecell";
851 reg = <0x80118000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200852 interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones498315b92013-05-03 15:31:50 +0100853
854 dmas = <&dma 32 0 0x2>, /* Logical - DevToMem */
855 <&dma 32 0 0x0>; /* Logical - MemToDev */
856 dma-names = "rx", "tx";
857
Lee Jones604be892013-06-06 12:28:50 +0100858 clocks = <&prcc_kclk 2 4>, <&prcc_pclk 2 6>;
859 clock-names = "sdi", "apb_pclk";
Ulf Hansson067adde2014-10-14 11:12:59 +0200860 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones604be892013-06-06 12:28:50 +0100861
Lee Jones7e0ce272012-03-15 16:46:17 +0000862 status = "disabled";
863 };
Lee Jones76ff4e42012-10-24 11:10:05 +0100864
Lee Jones81bf8c22012-09-26 12:55:56 +0100865 sdi2_per3@80005000 {
Lee Jones7e0ce272012-03-15 16:46:17 +0000866 compatible = "arm,pl18x", "arm,primecell";
867 reg = <0x80005000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200868 interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones498315b92013-05-03 15:31:50 +0100869
870 dmas = <&dma 28 0 0x2>, /* Logical - DevToMem */
871 <&dma 28 0 0x0>; /* Logical - MemToDev */
872 dma-names = "rx", "tx";
873
Lee Jones604be892013-06-06 12:28:50 +0100874 clocks = <&prcc_kclk 3 4>, <&prcc_pclk 3 4>;
875 clock-names = "sdi", "apb_pclk";
Ulf Hansson067adde2014-10-14 11:12:59 +0200876 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones604be892013-06-06 12:28:50 +0100877
Lee Jones7e0ce272012-03-15 16:46:17 +0000878 status = "disabled";
879 };
Lee Jones76ff4e42012-10-24 11:10:05 +0100880
Lee Jones81bf8c22012-09-26 12:55:56 +0100881 sdi3_per2@80119000 {
Lee Jones7e0ce272012-03-15 16:46:17 +0000882 compatible = "arm,pl18x", "arm,primecell";
883 reg = <0x80119000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200884 interrupts = <0 59 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones604be892013-06-06 12:28:50 +0100885
Linus Walleij14cdf8c2014-06-11 10:45:50 +0200886 dmas = <&dma 41 0 0x2>, /* Logical - DevToMem */
887 <&dma 41 0 0x0>; /* Logical - MemToDev */
888 dma-names = "rx", "tx";
889
Lee Jones604be892013-06-06 12:28:50 +0100890 clocks = <&prcc_kclk 2 5>, <&prcc_pclk 2 7>;
891 clock-names = "sdi", "apb_pclk";
Ulf Hansson067adde2014-10-14 11:12:59 +0200892 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones604be892013-06-06 12:28:50 +0100893
Lee Jones7e0ce272012-03-15 16:46:17 +0000894 status = "disabled";
895 };
Lee Jones76ff4e42012-10-24 11:10:05 +0100896
Lee Jones81bf8c22012-09-26 12:55:56 +0100897 sdi4_per2@80114000 {
Lee Jones7e0ce272012-03-15 16:46:17 +0000898 compatible = "arm,pl18x", "arm,primecell";
899 reg = <0x80114000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200900 interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones498315b92013-05-03 15:31:50 +0100901
902 dmas = <&dma 42 0 0x2>, /* Logical - DevToMem */
903 <&dma 42 0 0x0>; /* Logical - MemToDev */
904 dma-names = "rx", "tx";
905
Lee Jones604be892013-06-06 12:28:50 +0100906 clocks = <&prcc_kclk 2 2>, <&prcc_pclk 2 4>;
907 clock-names = "sdi", "apb_pclk";
Ulf Hansson067adde2014-10-14 11:12:59 +0200908 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones604be892013-06-06 12:28:50 +0100909
Lee Jones7e0ce272012-03-15 16:46:17 +0000910 status = "disabled";
911 };
Lee Jones76ff4e42012-10-24 11:10:05 +0100912
Lee Jones81bf8c22012-09-26 12:55:56 +0100913 sdi5_per3@80008000 {
Lee Jones7e0ce272012-03-15 16:46:17 +0000914 compatible = "arm,pl18x", "arm,primecell";
Lee Jones76ff4e42012-10-24 11:10:05 +0100915 reg = <0x80008000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200916 interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
Lee Jones604be892013-06-06 12:28:50 +0100917
Linus Walleij14cdf8c2014-06-11 10:45:50 +0200918 dmas = <&dma 43 0 0x2>, /* Logical - DevToMem */
919 <&dma 43 0 0x0>; /* Logical - MemToDev */
920 dma-names = "rx", "tx";
921
Lee Jones604be892013-06-06 12:28:50 +0100922 clocks = <&prcc_kclk 3 7>, <&prcc_pclk 3 7>;
923 clock-names = "sdi", "apb_pclk";
Ulf Hansson067adde2014-10-14 11:12:59 +0200924 power-domains = <&pm_domains DOMAIN_VAPE>;
Lee Jones604be892013-06-06 12:28:50 +0100925
Lee Jones7e0ce272012-03-15 16:46:17 +0000926 status = "disabled";
927 };
Lee Jonesbf76e062012-04-24 10:53:18 +0100928
Lee Jonesfe164522012-07-31 12:37:16 +0100929 msp0: msp@80123000 {
930 compatible = "stericsson,ux500-msp-i2s";
931 reg = <0x80123000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200932 interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfe164522012-07-31 12:37:16 +0100933 v-ape-supply = <&db8500_vape_reg>;
Lee Jones133e6022013-06-03 13:18:00 +0100934
Lee Jones618111c2013-11-06 10:16:16 +0000935 dmas = <&dma 31 0 0x12>, /* Logical - DevToMem - HighPrio */
936 <&dma 31 0 0x10>; /* Logical - MemToDev - HighPrio */
937 dma-names = "rx", "tx";
938
Lee Jones133e6022013-06-03 13:18:00 +0100939 clocks = <&prcc_kclk 1 3>, <&prcc_pclk 1 3>;
940 clock-names = "msp", "apb_pclk";
941
Lee Jonesfe164522012-07-31 12:37:16 +0100942 status = "disabled";
943 };
944
945 msp1: msp@80124000 {
946 compatible = "stericsson,ux500-msp-i2s";
947 reg = <0x80124000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200948 interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfe164522012-07-31 12:37:16 +0100949 v-ape-supply = <&db8500_vape_reg>;
Lee Jones133e6022013-06-03 13:18:00 +0100950
Linus Walleij14cdf8c2014-06-11 10:45:50 +0200951 /* This DMA channel only exist on DB8500 v1 */
Lee Jones618111c2013-11-06 10:16:16 +0000952 dmas = <&dma 30 0 0x10>; /* Logical - MemToDev - HighPrio */
953 dma-names = "tx";
954
Lee Jones133e6022013-06-03 13:18:00 +0100955 clocks = <&prcc_kclk 1 4>, <&prcc_pclk 1 4>;
956 clock-names = "msp", "apb_pclk";
957
Lee Jonesfe164522012-07-31 12:37:16 +0100958 status = "disabled";
959 };
960
961 // HDMI sound
962 msp2: msp@80117000 {
963 compatible = "stericsson,ux500-msp-i2s";
964 reg = <0x80117000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200965 interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfe164522012-07-31 12:37:16 +0100966 v-ape-supply = <&db8500_vape_reg>;
Lee Jones133e6022013-06-03 13:18:00 +0100967
Lee Jones618111c2013-11-06 10:16:16 +0000968 dmas = <&dma 14 0 0x12>, /* Logical - DevToMem - HighPrio */
969 <&dma 14 1 0x19>; /* Physical Chan 1 - MemToDev
970 HighPrio - Fixed */
971 dma-names = "rx", "tx";
972
Lee Jones133e6022013-06-03 13:18:00 +0100973 clocks = <&prcc_kclk 2 3>, <&prcc_pclk 2 5>;
974 clock-names = "msp", "apb_pclk";
975
Lee Jonesfe164522012-07-31 12:37:16 +0100976 status = "disabled";
977 };
978
979 msp3: msp@80125000 {
980 compatible = "stericsson,ux500-msp-i2s";
981 reg = <0x80125000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200982 interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfe164522012-07-31 12:37:16 +0100983 v-ape-supply = <&db8500_vape_reg>;
Lee Jones133e6022013-06-03 13:18:00 +0100984
Linus Walleij14cdf8c2014-06-11 10:45:50 +0200985 /* This DMA channel only exist on DB8500 v2 */
Lee Jones618111c2013-11-06 10:16:16 +0000986 dmas = <&dma 30 0 0x12>; /* Logical - DevToMem - HighPrio */
987 dma-names = "rx";
988
Lee Jones133e6022013-06-03 13:18:00 +0100989 clocks = <&prcc_kclk 1 10>, <&prcc_pclk 1 11>;
990 clock-names = "msp", "apb_pclk";
991
Lee Jonesfe164522012-07-31 12:37:16 +0100992 status = "disabled";
993 };
994
Lee Jonesbf76e062012-04-24 10:53:18 +0100995 external-bus@50000000 {
996 compatible = "simple-bus";
997 reg = <0x50000000 0x4000000>;
998 #address-cells = <1>;
999 #size-cells = <1>;
1000 ranges = <0 0x50000000 0x4000000>;
1001 status = "disabled";
1002 };
hongbo.zhangdc1956b2012-11-15 18:56:43 +08001003
1004 cpufreq-cooling {
1005 compatible = "stericsson,db8500-cpufreq-cooling";
1006 status = "disabled";
Lee Jonesd460d282013-09-18 16:05:04 +01001007 };
hongbo.zhangdc1956b2012-11-15 18:56:43 +08001008
Lee Jones0563f632012-10-24 11:18:14 +01001009 vmmci: regulator-gpio {
1010 compatible = "regulator-gpio";
1011
1012 regulator-min-microvolt = <1800000>;
Lee Jones4f902b42012-12-06 14:00:01 +00001013 regulator-max-microvolt = <2900000>;
Lee Jones0563f632012-10-24 11:18:14 +01001014 regulator-name = "mmci-reg";
1015 regulator-type = "voltage";
1016
Lee Jones874c9202012-12-07 13:46:01 +00001017 startup-delay-us = <100>;
Lee Jonese7bda302012-12-06 15:00:46 +00001018 enable-active-high;
1019
Lee Jones0563f632012-10-24 11:18:14 +01001020 states = <1800000 0x1
1021 2900000 0x0>;
Lee Jonesc94a4ab2012-11-15 13:02:16 +00001022
1023 status = "disabled";
Lee Jones0563f632012-10-24 11:18:14 +01001024 };
Lee Jonesfe2e9f92013-05-16 12:27:21 +01001025
Linus Walleij6e9a88a2013-11-14 15:21:00 +01001026 mcde@a0350000 {
1027 compatible = "stericsson,mcde";
1028 reg = <0xa0350000 0x1000>, /* MCDE */
1029 <0xa0351000 0x1000>, /* DSI link 1 */
1030 <0xa0352000 0x1000>, /* DSI link 2 */
1031 <0xa0353000 0x1000>; /* DSI link 3 */
1032 interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>;
1033 clocks = <&prcmu_clk PRCMU_MCDECLK>, /* Main MCDE clock */
1034 <&prcmu_clk PRCMU_LCDCLK>, /* LCD clock */
1035 <&prcmu_clk PRCMU_PLLDSI>, /* HDMI clock */
1036 <&prcmu_clk PRCMU_DSI0CLK>, /* DSI 0 */
1037 <&prcmu_clk PRCMU_DSI1CLK>, /* DSI 1 */
1038 <&prcmu_clk PRCMU_DSI0ESCCLK>, /* TVout clock 0 */
1039 <&prcmu_clk PRCMU_DSI1ESCCLK>, /* TVout clock 1 */
1040 <&prcmu_clk PRCMU_DSI2ESCCLK>; /* TVout clock 2 */
1041 };
1042
Lee Jonesfe2e9f92013-05-16 12:27:21 +01001043 cryp@a03cb000 {
1044 compatible = "stericsson,ux500-cryp";
1045 reg = <0xa03cb000 0x1000>;
Linus Walleij90c40252013-05-29 19:15:39 +02001046 interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>;
Lee Jonesfe2e9f92013-05-16 12:27:21 +01001047
1048 v-ape-supply = <&db8500_vape_reg>;
Lee Jonesd2f898c2013-09-18 16:05:52 +01001049 clocks = <&prcc_pclk 6 1>;
Lee Jonesfe2e9f92013-05-16 12:27:21 +01001050 };
Lee Jones61122cf2013-05-16 12:27:22 +01001051
1052 hash@a03c2000 {
1053 compatible = "stericsson,ux500-hash";
1054 reg = <0xa03c2000 0x1000>;
1055
1056 v-ape-supply = <&db8500_vape_reg>;
Lee Jones024cfe82013-09-18 16:07:27 +01001057 clocks = <&prcc_pclk 6 2>;
Lee Jones61122cf2013-05-16 12:27:22 +01001058 };
Arnd Bergmann5d0769f2012-03-02 23:07:21 +00001059 };
1060};