blob: b8a8ddb5abff25da4b617d8126c019d41e6ae236 [file] [log] [blame]
Linus Walleij978577e2013-04-08 11:38:50 +02001/*
2 * Device Tree for the ST-Ericsson U300 Machine and SoC
3 */
4
5/dts-v1/;
6/include/ "skeleton.dtsi"
7
8/ {
9 model = "ST-Ericsson U300";
10 compatible = "stericsson,u300";
11 #address-cells = <1>;
12 #size-cells = <1>;
13
14 chosen {
15 bootargs = "root=/dev/ram0 console=ttyAMA0,115200n8 earlyprintk";
16 };
17
18 aliases {
19 serial0 = &uart0;
20 serial1 = &uart1;
21 };
22
23 memory {
24 reg = <0x48000000 0x03c00000>;
25 };
26
Linus Walleijecf5b392013-04-19 10:51:59 +020027 s365 {
28 compatible = "stericsson,s365";
29 vana15-supply = <&ab3100_ldo_d_reg>;
30 };
31
Linus Walleij978577e2013-04-08 11:38:50 +020032 timer: timer@c0014000 {
33 compatible = "stericsson,u300-apptimer";
34 reg = <0xc0014000 0x1000>;
35 interrupt-parent = <&vica>;
36 interrupts = <24 25 26 27>;
37 };
38
39 gpio: gpio@c0016000 {
40 compatible = "stericsson,gpio-coh901";
41 reg = <0xc0016000 0x1000>;
42 interrupt-parent = <&vicb>;
43 interrupts = <0 1 2 18 21 22 23>;
44 interrupt-names = "gpio0", "gpio1", "gpio2", "gpio3",
45 "gpio4", "gpio5", "gpio6";
46 interrupt-controller;
47 #interrupt-cells = <2>;
48 gpio-controller;
49 #gpio-cells = <2>;
50 };
51
52 pinctrl: pinctrl@c0011000 {
53 compatible = "stericsson,pinctrl-u300";
54 reg = <0xc0011000 0x1000>;
55 };
56
Linus Walleij63a62ec2013-04-19 12:59:59 +020057 watchdog: watchdog@c0012000 {
58 compatible = "stericsson,coh901327";
59 reg = <0xc0012000 0x1000>;
60 interrupt-parent = <&vicb>;
61 interrupts = <3>;
62 };
63
Linus Walleijae87bb82013-04-19 13:22:57 +020064 rtc: rtc@c0017000 {
65 compatible = "stericsson,coh901331";
66 reg = <0xc0017000 0x1000>;
67 interrupt-parent = <&vicb>;
68 interrupts = <10>;
69 };
70
Linus Walleij39738cc2013-04-19 13:44:25 +020071 dmac: dma-controller@c00020000 {
72 compatible = "stericsson,coh901318";
73 reg = <0xc0020000 0x1000>;
74 interrupt-parent = <&vica>;
75 interrupts = <2>;
76 #dma-cells = <1>;
77 dma-channels = <40>;
78 };
79
Linus Walleijd1346362013-04-22 11:00:02 +020080 /* A NAND flash of 128 MiB */
81 fsmc: flash@40000000 {
82 compatible = "stericsson,fsmc-nand";
83 #address-cells = <1>;
84 #size-cells = <1>;
85 reg = <0x9f800000 0x1000>, /* FSMC Register*/
86 <0x80000000 0x4000>, /* NAND Base DATA */
87 <0x80020000 0x4000>, /* NAND Base ADDR */
88 <0x80010000 0x4000>; /* NAND Base CMD */
89 reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
90 nand-skip-bbtscan;
91
92 partition@0 {
93 label = "boot records";
94 reg = <0x0 0x20000>;
95 };
96 partition@20000 {
97 label = "free";
98 reg = <0x20000 0x7e0000>;
99 };
100 partition@800000 {
101 label = "platform";
102 reg = <0x800000 0xf800000>;
103 };
104 };
105
Linus Walleijc023b8b2013-04-11 15:13:39 +0200106 i2c0: i2c@c0004000 {
107 compatible = "st,ddci2c";
108 reg = <0xc0004000 0x1000>;
109 interrupt-parent = <&vicb>;
110 interrupts = <8>;
111 #address-cells = <1>;
112 #size-cells = <0>;
Linus Walleijecf5b392013-04-19 10:51:59 +0200113 ab3100: ab3100@0x48 {
114 compatible = "stericsson,ab3100";
115 reg = <0x48>;
116 interrupt-parent = <&vica>;
117 interrupts = <0>; /* EXT0 IRQ */
118 ab3100-regulators {
119 compatible = "stericsson,ab3100-regulators";
120 ab3100_ldo_a_reg: ab3100_ldo_a {
121 regulator-compatible = "ab3100_ldo_a";
122 startup-delay-us = <200>;
123 regulator-always-on;
124 regulator-boot-on;
125 };
126 ab3100_ldo_c_reg: ab3100_ldo_c {
127 regulator-compatible = "ab3100_ldo_c";
128 startup-delay-us = <200>;
129 };
130 ab3100_ldo_d_reg: ab3100_ldo_d {
131 regulator-compatible = "ab3100_ldo_d";
132 startup-delay-us = <200>;
133 };
134 ab3100_ldo_e_reg: ab3100_ldo_e {
135 regulator-compatible = "ab3100_ldo_e";
136 regulator-min-microvolt = <1800000>;
137 regulator-max-microvolt = <1800000>;
138 startup-delay-us = <200>;
139 regulator-always-on;
140 regulator-boot-on;
141 };
142 ab3100_ldo_f_reg: ab3100_ldo_f {
143 regulator-compatible = "ab3100_ldo_f";
144 regulator-min-microvolt = <2500000>;
145 regulator-max-microvolt = <2500000>;
146 startup-delay-us = <600>;
147 regulator-always-on;
148 regulator-boot-on;
149 };
150 ab3100_ldo_g_reg: ab3100_ldo_g {
151 regulator-compatible = "ab3100_ldo_g";
152 regulator-min-microvolt = <1500000>;
153 regulator-max-microvolt = <2850000>;
154 startup-delay-us = <400>;
155 };
156 ab3100_ldo_h_reg: ab3100_ldo_h {
157 regulator-compatible = "ab3100_ldo_h";
158 regulator-min-microvolt = <1200000>;
159 regulator-max-microvolt = <2750000>;
160 startup-delay-us = <200>;
161 };
162 ab3100_ldo_k_reg: ab3100_ldo_k {
163 regulator-compatible = "ab3100_ldo_k";
164 regulator-min-microvolt = <1800000>;
165 regulator-max-microvolt = <2750000>;
166 startup-delay-us = <200>;
167 };
168 ab3100_ext_reg: ab3100_ext {
169 regulator-compatible = "ab3100_ext";
170 };
171 ab3100_buck_reg: ab3100_buck {
172 regulator-compatible = "ab3100_buck";
173 regulator-min-microvolt = <1200000>;
174 regulator-max-microvolt = <1800000>;
175 startup-delay-us = <1000>;
176 regulator-always-on;
177 regulator-boot-on;
178 };
179 };
180 };
Linus Walleijc023b8b2013-04-11 15:13:39 +0200181 };
182
183 i2c1: i2c@c0005000 {
184 compatible = "st,ddci2c";
185 reg = <0xc0005000 0x1000>;
186 interrupt-parent = <&vicb>;
187 interrupts = <9>;
188 #address-cells = <1>;
189 #size-cells = <0>;
Linus Walleijecf5b392013-04-19 10:51:59 +0200190 fwcam0: fwcam@0x10 {
191 reg = <0x10>;
192 };
193 fwcam1: fwcam@0x5d {
194 reg = <0x5d>;
195 };
Linus Walleijc023b8b2013-04-11 15:13:39 +0200196 };
197
Linus Walleij978577e2013-04-08 11:38:50 +0200198 amba {
199 compatible = "arm,amba-bus";
200 #address-cells = <1>;
201 #size-cells = <1>;
202 ranges;
203
204 vica: interrupt-controller@a0001000 {
205 compatible = "arm,versatile-vic";
206 interrupt-controller;
207 #interrupt-cells = <1>;
208 reg = <0xa0001000 0x20>;
209 };
210
211 vicb: interrupt-controller@a0002000 {
212 compatible = "arm,versatile-vic";
213 interrupt-controller;
214 #interrupt-cells = <1>;
215 reg = <0xa0002000 0x20>;
216 };
217
218 uart0: serial@c0013000 {
219 compatible = "arm,pl011", "arm,primecell";
220 reg = <0xc0013000 0x1000>;
221 interrupt-parent = <&vica>;
222 interrupts = <22>;
Linus Walleijefb9bc22013-05-02 10:38:52 +0200223 dmas = <&dmac 17 &dmac 18>;
224 dma-names = "tx", "rx";
Linus Walleij978577e2013-04-08 11:38:50 +0200225 };
226
227 uart1: serial@c0007000 {
228 compatible = "arm,pl011", "arm,primecell";
229 reg = <0xc0007000 0x1000>;
230 interrupt-parent = <&vicb>;
231 interrupts = <20>;
Linus Walleijefb9bc22013-05-02 10:38:52 +0200232 dmas = <&dmac 38 &dmac 39>;
233 dma-names = "tx", "rx";
Linus Walleij978577e2013-04-08 11:38:50 +0200234 };
Linus Walleijba078d12013-04-10 14:34:00 +0200235
236 mmcsd: mmcsd@c0001000 {
237 compatible = "arm,pl18x", "arm,primecell";
238 reg = <0xc0001000 0x1000>;
239 interrupt-parent = <&vicb>;
240 interrupts = <6 7>;
241 max-frequency = <24000000>;
242 bus-width = <4>; // SD-card slot
243 mmc-cap-mmc-highspeed;
244 mmc-cap-sd-highspeed;
245 cd-gpios = <&gpio 12 0x4>;
246 cd-inverted;
247 vmmc-supply = <&ab3100_ldo_g_reg>;
Linus Walleijefb9bc22013-05-02 10:38:52 +0200248 dmas = <&dmac 14>;
249 dma-names = "rx";
Linus Walleijba078d12013-04-10 14:34:00 +0200250 };
Linus Walleijcf4af862013-04-19 14:56:46 +0200251
252 spi: ssp@c0006000 {
253 compatible = "arm,pl022", "arm,primecell";
254 reg = <0xc0006000 0x1000>;
255 interrupt-parent = <&vica>;
256 interrupts = <23>;
257 dmas = <&dmac 27 &dmac 28>;
258 dma-names = "tx", "rx";
259 num-cs = <3>;
260 #address-cells = <1>;
261 #size-cells = <0>;
Linus Walleij20d4af62013-04-21 21:39:46 +0200262 spi-dummy@1 {
263 compatible = "arm,pl022-dummy";
264 reg = <1>;
265 spi-max-frequency = <20000000>;
266 };
Linus Walleijcf4af862013-04-19 14:56:46 +0200267 };
Linus Walleij978577e2013-04-08 11:38:50 +0200268 };
269};