ARM: nomadik: move the pin configuration to DT
[deliverable/linux.git] / arch / arm / boot / dts / ste-nomadik-stn8815.dtsi
CommitLineData
f8635abd
LW
1/*
2 * Device Tree for the ST-Ericsson Nomadik 8815 STn8815 SoC
3 */
4/include/ "skeleton.dtsi"
5
6/ {
7 #address-cells = <1>;
8 #size-cells = <1>;
9
10 memory {
11 reg = <0x00000000 0x04000000>,
12 <0x08000000 0x04000000>;
13 };
14
15 L2: l2-cache {
16 compatible = "arm,l210-cache";
17 reg = <0x10210000 0x1000>;
18 interrupt-parent = <&vica>;
19 interrupts = <30>;
20 cache-unified;
21 cache-level = <2>;
22 };
23
7690fbb2 24 mtu0: mtu@101e2000 {
f8635abd 25 /* Nomadik system timer */
7690fbb2 26 compatible = "st,nomadik-mtu";
f8635abd
LW
27 reg = <0x101e2000 0x1000>;
28 interrupt-parent = <&vica>;
29 interrupts = <4>;
7690fbb2
LW
30 clocks = <&timclk>, <&pclk>;
31 clock-names = "timclk", "apb_pclk";
f8635abd
LW
32 };
33
7690fbb2 34 mtu1: mtu@101e3000 {
f8635abd
LW
35 /* Secondary timer */
36 reg = <0x101e3000 0x1000>;
37 interrupt-parent = <&vica>;
38 interrupts = <5>;
7690fbb2
LW
39 clocks = <&timclk>, <&pclk>;
40 clock-names = "timclk", "apb_pclk";
f8635abd
LW
41 };
42
6010d403
LW
43 gpio0: gpio@101e4000 {
44 compatible = "st,nomadik-gpio";
45 reg = <0x101e4000 0x80>;
46 interrupt-parent = <&vica>;
47 interrupts = <6>;
48 interrupt-controller;
49 #interrupt-cells = <2>;
50 gpio-controller;
51 #gpio-cells = <2>;
52 gpio-bank = <0>;
6e2b07a1 53 clocks = <&pclk>;
6010d403
LW
54 };
55
56 gpio1: gpio@101e5000 {
57 compatible = "st,nomadik-gpio";
58 reg = <0x101e5000 0x80>;
59 interrupt-parent = <&vica>;
60 interrupts = <7>;
61 interrupt-controller;
62 #interrupt-cells = <2>;
63 gpio-controller;
64 #gpio-cells = <2>;
65 gpio-bank = <1>;
6e2b07a1 66 clocks = <&pclk>;
6010d403
LW
67 };
68
69 gpio2: gpio@101e6000 {
70 compatible = "st,nomadik-gpio";
71 reg = <0x101e6000 0x80>;
72 interrupt-parent = <&vica>;
73 interrupts = <8>;
74 interrupt-controller;
75 #interrupt-cells = <2>;
76 gpio-controller;
77 #gpio-cells = <2>;
78 gpio-bank = <2>;
6e2b07a1 79 clocks = <&pclk>;
6010d403
LW
80 };
81
82 gpio3: gpio@101e7000 {
83 compatible = "st,nomadik-gpio";
84 reg = <0x101e7000 0x80>;
85 interrupt-parent = <&vica>;
86 interrupts = <9>;
87 interrupt-controller;
88 #interrupt-cells = <2>;
89 gpio-controller;
90 #gpio-cells = <2>;
91 gpio-bank = <3>;
6e2b07a1 92 clocks = <&pclk>;
6010d403
LW
93 };
94
95 pinctrl {
96 compatible = "stericsson,nmk-pinctrl-stn8815";
49932f5e
LW
97 /* Pin configurations */
98 uart0 {
99 uart0_default_mux: uart0_mux {
100 u0_default_mux {
101 ste,function = "u0";
102 ste,pins = "u0_a_1";
103 };
104 };
105 };
106 uart1 {
107 uart1_default_mux: uart1_mux {
108 u1_default_mux {
109 ste,function = "u1";
110 ste,pins = "u1_a_1";
111 };
112 };
113 };
114 mmcsd {
115 mmcsd_default_mux: mmcsd_mux {
116 mmcsd_default_mux {
117 ste,function = "mmcsd";
118 ste,pins = "mmcsd_a_1";
119 };
120 };
121 mmcsd_default_mode: mmcsd_default {
122 mmcsd_default_cfg1 {
123 /* MCCLK */
124 ste,pins = "GPIO8_B10";
125 ste,output = <0>;
126 };
127 mmcsd_default_cfg2 {
128 /* MCCMDDIR, MCDAT0DIR, MCDAT31DIR */
129 ste,pins = "GPIO10_C11", "GPIO15_A12",
130 "GPIO16_C13";
131 ste,output = <1>;
132 };
133 mmcsd_default_cfg3 {
134 /* MCCMD, MCDAT3-0, MCMSFBCLK */
135 ste,pins = "GPIO9_A10", "GPIO11_B11",
136 "GPIO12_A11", "GPIO13_C12",
137 "GPIO14_B12", "GPIO24_C15";
138 ste,input = <1>;
139 };
140 };
141 };
142 i2c0 {
143 i2c0_default_mode: i2c0_default {
144 i2c0_default_cfg {
145 ste,pins = "GPIO62_D3", "GPIO63_D2";
146 ste,input = <1>;
147 };
148 };
149 };
150 i2c1 {
151 i2c1_default_mode: i2c1_default {
152 i2c1_default_cfg {
153 ste,pins = "GPIO53_L4", "GPIO54_L3";
154 ste,input = <1>;
155 };
156 };
157 };
158 i2c2 {
159 i2c2_default_mode: i2c2_default {
160 i2c2_default_cfg {
161 ste,pins = "GPIO73_C21", "GPIO74_C20";
162 ste,input = <1>;
163 };
164 };
165 };
6010d403
LW
166 };
167
6e2b07a1
LW
168 src: src@101e0000 {
169 compatible = "stericsson,nomadik-src";
170 reg = <0x101e0000 0x1000>;
171 clocks {
172 /*
173 * Dummy clock for primecells
174 */
175 pclk: pclk@0 {
176 #clock-cells = <0>;
177 compatible = "fixed-clock";
7690fbb2 178 clock-frequency = <0>;
6e2b07a1
LW
179 };
180 /*
181 * The 2.4 MHz TIMCLK reference clock is active at
182 * boot time, this is actually the MXTALCLK @19.2 MHz
183 * divided by 8. This clock is used by the timers and
184 * watchdog. See page 105 ff.
185 */
186 timclk: timclk@2.4M {
187 #clock-cells = <0>;
188 compatible = "fixed-clock";
189 clock-frequency = <2400000>;
190 };
191 /*
192 * At boot time, PLL2 is set to generate a set of
193 * fixed clocks, one of them is CLK48, the 48 MHz
194 * clock, routed to the UART, MMC/SD, I2C, IrDA,
195 * USB and SSP blocks.
196 */
197 clk48: clk48@48M {
198 #clock-cells = <0>;
199 compatible = "fixed-clock";
200 clock-frequency = <48000000>;
201 };
202 };
203 };
204
ba785205
LW
205 /* A NAND flash of 128 MiB */
206 fsmc: flash@40000000 {
207 compatible = "stericsson,fsmc-nand";
208 #address-cells = <1>;
209 #size-cells = <1>;
210 reg = <0x10100000 0x1000>, /* FSMC Register*/
211 <0x40000000 0x2000>, /* NAND Base DATA */
212 <0x41000000 0x2000>, /* NAND Base ADDR */
213 <0x40800000 0x2000>; /* NAND Base CMD */
214 reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
6e2b07a1 215 clocks = <&pclk>;
ba785205
LW
216 status = "okay";
217
218 partition@0 {
219 label = "X-Loader(NAND)";
220 reg = <0x0 0x40000>;
221 };
222 partition@40000 {
223 label = "MemInit(NAND)";
224 reg = <0x40000 0x40000>;
225 };
226 partition@80000 {
227 label = "BootLoader(NAND)";
228 reg = <0x80000 0x200000>;
229 };
230 partition@280000 {
231 label = "Kernel zImage(NAND)";
232 reg = <0x280000 0x300000>;
233 };
234 partition@580000 {
235 label = "Root Filesystem(NAND)";
236 reg = <0x580000 0x1600000>;
237 };
238 partition@1b80000 {
239 label = "User Filesystem(NAND)";
240 reg = <0x1b80000 0x6480000>;
241 };
242 };
243
2ad6e398
LW
244 external-bus@34000000 {
245 compatible = "simple-bus";
246 reg = <0x34000000 0x1000000>;
247 #address-cells = <1>;
248 #size-cells = <1>;
249 ranges = <0 0x34000000 0x1000000>;
250 ethernet@300 {
251 compatible = "smsc,lan91c111";
252 reg = <0x300 0x0fd00>;
253 };
254 };
255
09e02f4d
LW
256 /* I2C0 connected to the STw4811 power management chip */
257 i2c0 {
258 compatible = "i2c-gpio";
259 gpios = <&gpio1 31 0>, /* sda */
260 <&gpio1 30 0>; /* scl */
261 #address-cells = <1>;
262 #size-cells = <0>;
49932f5e
LW
263 pinctrl-names = "default";
264 pinctrl-0 = <&i2c0_default_mode>;
09e02f4d
LW
265
266 stw4811@2d {
267 compatible = "st,stw4811";
268 reg = <0x2d>;
269 };
270 };
271
272 /* I2C1 connected to various sensors */
273 i2c1 {
274 compatible = "i2c-gpio";
275 gpios = <&gpio1 22 0>, /* sda */
276 <&gpio1 21 0>; /* scl */
277 #address-cells = <1>;
278 #size-cells = <0>;
49932f5e
LW
279 pinctrl-names = "default";
280 pinctrl-0 = <&i2c1_default_mode>;
09e02f4d
LW
281
282 camera@2d {
283 compatible = "st,camera";
284 reg = <0x10>;
285 };
286 stw5095@1a {
287 compatible = "st,stw5095";
288 reg = <0x1a>;
289 };
290 lis3lv02dl@1d {
291 compatible = "st,lis3lv02dl";
292 reg = <0x1d>;
293 };
294 };
295
296 /* I2C2 connected to the USB portions of the STw4811 only */
297 i2c2 {
298 compatible = "i2c-gpio";
299 gpios = <&gpio2 10 0>, /* sda */
300 <&gpio2 9 0>; /* scl */
301 #address-cells = <1>;
302 #size-cells = <0>;
49932f5e
LW
303 pinctrl-names = "default";
304 pinctrl-0 = <&i2c2_default_mode>;
305
09e02f4d
LW
306 stw4811@2d {
307 compatible = "st,stw4811-usb";
308 reg = <0x2d>;
309 };
310 };
311
f8635abd
LW
312 amba {
313 compatible = "arm,amba-bus";
314 #address-cells = <1>;
315 #size-cells = <1>;
316 ranges;
317
318 vica: intc@0x10140000 {
319 compatible = "arm,versatile-vic";
320 interrupt-controller;
321 #interrupt-cells = <1>;
322 reg = <0x10140000 0x20>;
323 };
324
325 vicb: intc@0x10140020 {
326 compatible = "arm,versatile-vic";
327 interrupt-controller;
328 #interrupt-cells = <1>;
329 reg = <0x10140020 0x20>;
330 };
331
332 uart0: uart@101fd000 {
333 compatible = "arm,pl011", "arm,primecell";
334 reg = <0x101fd000 0x1000>;
335 interrupt-parent = <&vica>;
336 interrupts = <12>;
6e2b07a1
LW
337 clocks = <&clk48>, <&pclk>;
338 clock-names = "uartclk", "apb_pclk";
49932f5e
LW
339 pinctrl-names = "default";
340 pinctrl-0 = <&uart0_default_mux>;
f8635abd
LW
341 };
342
343 uart1: uart@101fb000 {
344 compatible = "arm,pl011", "arm,primecell";
345 reg = <0x101fb000 0x1000>;
346 interrupt-parent = <&vica>;
347 interrupts = <17>;
6e2b07a1
LW
348 clocks = <&clk48>, <&pclk>;
349 clock-names = "uartclk", "apb_pclk";
49932f5e
LW
350 pinctrl-names = "default";
351 pinctrl-0 = <&uart1_default_mux>;
f8635abd
LW
352 };
353
354 uart2: uart@101f2000 {
355 compatible = "arm,pl011", "arm,primecell";
356 reg = <0x101f2000 0x1000>;
357 interrupt-parent = <&vica>;
358 interrupts = <28>;
6e2b07a1
LW
359 clocks = <&clk48>, <&pclk>;
360 clock-names = "uartclk", "apb_pclk";
f8635abd
LW
361 status = "disabled";
362 };
27bda036
LW
363
364 rng: rng@101b0000 {
365 compatible = "arm,primecell";
366 reg = <0x101b0000 0x1000>;
6e2b07a1
LW
367 clocks = <&clk48>, <&pclk>;
368 clock-names = "rng", "apb_pclk";
27bda036
LW
369 };
370
371 rtc: rtc@101e8000 {
372 compatible = "arm,pl031", "arm,primecell";
373 reg = <0x101e8000 0x1000>;
6e2b07a1
LW
374 clocks = <&pclk>;
375 clock-names = "apb_pclk";
27bda036
LW
376 interrupt-parent = <&vica>;
377 interrupts = <10>;
378 };
4fd243c6
LW
379
380 mmcsd: sdi@101f6000 {
381 compatible = "arm,pl18x", "arm,primecell";
382 reg = <0x101f6000 0x1000>;
6e2b07a1
LW
383 clocks = <&clk48>, <&pclk>;
384 clock-names = "mclk", "apb_pclk";
4fd243c6
LW
385 interrupt-parent = <&vica>;
386 interrupts = <22>;
387 max-frequency = <48000000>;
388 bus-width = <4>;
389 mmc-cap-mmc-highspeed;
390 mmc-cap-sd-highspeed;
391 cd-gpios = <&gpio3 15 0x1>;
392 cd-inverted;
49932f5e
LW
393 pinctrl-names = "default";
394 pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
4fd243c6 395 };
f8635abd
LW
396 };
397};
This page took 0.06442 seconds and 5 git commands to generate.