Linux 3.17-rc2
[linux/fpc-iii.git] / arch / powerpc / boot / dts / ac14xx.dts
bloba1b883730b3169d8171c06c4fdc2d50cfe874b41
1 /*
2  * Device Tree Source for the MPC5121e based ac14xx board
3  *
4  * Copyright 2012 Anatolij Gustschin <agust@denx.de>
5  *
6  * This program is free software; you can redistribute  it and/or modify it
7  * under  the terms of  the GNU General  Public License as published by the
8  * Free Software Foundation;  either version 2 of the  License, or (at your
9  * option) any later version.
10  */
13 #include <mpc5121.dtsi>
15 / {
16         model = "ac14xx";
17         compatible = "ifm,ac14xx", "fsl,mpc5121";
18         #address-cells = <1>;
19         #size-cells = <1>;
21         aliases {
22                 serial0 = &serial0;
23                 serial1 = &serial7;
24                 spi4 = &spi4;
25                 spi5 = &spi5;
26         };
28         cpus {
29                 PowerPC,5121@0 {
30                         timebase-frequency = <40000000>;        /*  40 MHz (csb/4) */
31                         bus-frequency = <160000000>;            /* 160 MHz csb bus */
32                         clock-frequency = <400000000>;          /* 400 MHz ppc core */
33                 };
34         };
36         memory {
37                 reg = <0x00000000 0x10000000>;                  /* 256MB at 0 */
38         };
40         nfc@40000000 {
41                 status = "disabled";
42         };
44         localbus@80000020 {
45                 ranges = <0x0 0x0 0xfc000000 0x04000000 /* CS0: NOR flash */
46                           0x1 0x0 0xe0000000 0x00010000 /* CS1: FRAM */
47                           0x2 0x0 0xe0100000 0x00080000 /* CS2: asi1 */
48                           0x3 0x0 0xe0300000 0x00020000 /* CS3: comm */
49                           0x5 0x0 0xe0400000 0x00010000 /* CS5: safety */
50                           0x6 0x0 0xe0200000 0x00080000>; /* CS6: asi2 */
52                 flash@0,0 {
53                         compatible = "cfi-flash";
54                         reg = <0 0x00000000 0x04000000>;
55                         #address-cells = <1>;
56                         #size-cells = <1>;
57                         bank-width = <2>;
58                         device-width = <2>;
60                         partition@0 {
61                                 label = "dtb-kernel-production";
62                                 reg = <0x00000000 0x00400000>;
63                         };
64                         partition@1 {
65                                 label = "filesystem-production";
66                                 reg = <0x00400000 0x03400000>;
67                         };
69                         partition@2 {
70                                 label = "recovery";
71                                 reg = <0x03800000 0x00700000>;
72                         };
74                         partition@3 {
75                                 label = "uboot-code";
76                                 reg = <0x03f00000 0x00040000>;
77                         };
78                         partition@4 {
79                                 label = "uboot-env1";
80                                 reg = <0x03f40000 0x00020000>;
81                         };
82                         partition@5 {
83                                 label = "uboot-env2";
84                                 reg = <0x03f60000 0x00020000>;
85                         };
86                 };
88                 fram@1,0 {
89                         compatible = "ifm,ac14xx-fram", "linux,uio-pdrv-genirq";
90                         reg = <1 0x00000000 0x00010000>;
91                 };
93                 asi@2,0 {
94                         /* masters mapping: CS, CS offset, size */
95                         reg = <2 0x00000000 0x00080000
96                                6 0x00000000 0x00080000>;
97                         #address-cells = <1>;
98                         #size-cells = <1>;
99                         compatible = "ifm,ac14xx-asi-fpga";
100                         gpios = <
101                                 &gpio_pic 26 0  /* prog */
102                                 &gpio_pic 27 0  /* done */
103                                 &gpio_pic 10 0  /* reset */
104                                 >;
106                         master@1 {
107                                 interrupts = <20 0x2>;
108                                 interrupt-parent = <&gpio_pic>;
109                                 chipselect = <2 0x00009000 0x00009100>;
110                                 label = "AS-i master 1";
111                         };
113                         master@2 {
114                                 interrupts = <21 0x2>;
115                                 interrupt-parent = <&gpio_pic>;
116                                 chipselect = <6 0x00009000 0x00009100>;
117                                 label = "AS-i master 2";
118                         };
119                 };
121                 netx@3,0 {
122                         compatible = "ifm,netx";
123                         reg = <0x3 0x00000000 0x00020000>;
124                         chipselect = <3 0x00101140 0x00203100>;
125                         interrupts = <17 0x8>;
126                         gpios = <&gpio_pic 15 0>;
127                 };
129                 safety@5,0 {
130                         compatible = "ifm,safety";
131                         reg = <0x5 0x00000000 0x00010000>;
132                         chipselect = <5 0x00009000 0x00009100>;
133                         interrupts = <22 0x2>;
134                         interrupt-parent = <&gpio_pic>;
135                         gpios = <
136                                 &gpio_pic 12 0  /* prog */
137                                 &gpio_pic 11 0  /* done */
138                                 >;
139                 };
140         };
142         clocks {
143                 osc {
144                         clock-frequency = <25000000>;
145                 };
146         };
148         soc@80000000 {
149                 bus-frequency = <80000000>;     /* 80 MHz ips bus */
151                 clock@f00 {
152                         compatible = "fsl,mpc5121rev2-clock", "fsl,mpc5121-clock";
153                 };
155                 /*
156                  * GPIO PIC:
157                  * interrupts cell = <pin nr, sense>
158                  * sense == 8: Level, low assertion
159                  * sense == 2: Edge, high-to-low change
160                  */
161                 gpio_pic: gpio@1100 {
162                         gpio-controller;
163                         #gpio-cells = <2>;
164                         interrupt-controller;
165                         #interrupt-cells = <2>;
166                 };
168                 sdhc@1500 {
169                         cd-gpios = <&gpio_pic 23 0>;    /* card detect */
170                         wp-gpios = <&gpio_pic 24 0>;    /* write protect */
171                         wp-inverted;                    /* WP active high */
172                 };
174                 i2c@1700 {
175                         /* use Fast-mode */
176                         clock-frequency = <400000>;
178                         at24@30 {
179                                 compatible = "at24,24c01";
180                                 reg = <0x30>;
181                         };
183                         at24@31 {
184                                 compatible = "at24,24c01";
185                                 reg = <0x31>;
186                         };
188                         temp@48 {
189                                 compatible = "ad,ad7414";
190                                 reg = <0x48>;
191                         };
193                         at24@50 {
194                                 compatible = "at24,24c01";
195                                 reg = <0x50>;
196                         };
198                         at24@51 {
199                                 compatible = "at24,24c01";
200                                 reg = <0x51>;
201                         };
203                         at24@52 {
204                                 compatible = "at24,24c01";
205                                 reg = <0x52>;
206                         };
208                         at24@53 {
209                                 compatible = "at24,24c01";
210                                 reg = <0x53>;
211                         };
213                         at24@54 {
214                                 compatible = "at24,24c01";
215                                 reg = <0x54>;
216                         };
218                         at24@55 {
219                                 compatible = "at24,24c01";
220                                 reg = <0x55>;
221                         };
223                         at24@56 {
224                                 compatible = "at24,24c01";
225                                 reg = <0x56>;
226                         };
228                         at24@57 {
229                                 compatible = "at24,24c01";
230                                 reg = <0x57>;
231                         };
233                         rtc@68 {
234                                 compatible = "stm,m41t00";
235                                 reg = <0x68>;
236                         };
237                 };
239                 axe_pic: axe-base@2000 {
240                         compatible = "fsl,mpc5121-axe-base";
241                         reg = <0x2000 0x100>;
242                         interrupts = <42 0x8>;
243                         interrupt-controller;
244                         #interrupt-cells = <2>;
245                 };
247                 axe-app {
248                         compatible = "fsl,mpc5121-axe-app";
249                         interrupt-parent = <&axe_pic>;
250                         interrupts = <
251                                         /* soft interrupts */
252                                         0 0x0   1 0x0   2 0x0   3 0x0
253                                         4 0x0   5 0x0   6 0x0   7 0x0
254                                         /* fifo interrupts */
255                                         8 0x0   9 0x0   10 0x0  11 0x0
256                                 >;
257                 };
259                 display@2100 {
260                         edid = [00 FF FF FF FF FF FF 00 14 94 00 00 00 00 00 00
261                                 0A 12 01 03 80 1C 23 78 CA 88 FF 94 52 54 8E 27
262                                 1E 4C 50 00 00 00 01 01 01 01 01 01 01 01 01 01
263                                 01 01 01 01 01 01 FB 00 B0 14 00 DC 05 00 08 04
264                                 21 00 1C 23 00 00 00 18 00 00 00 FD 00 38 3C 1F
265                                 3C 01 0A 20 20 20 20 20 20 20 00 00 00 FC 00 45
266                                 54 30 31 38 30 30 33 44 4D 55 0A 0A 00 00 00 10
267                                 00 41 30 30 30 30 30 30 30 30 30 30 30 31 00 D5];
268                 };
270                 can@2300 {
271                         status = "disabled";
272                 };
274                 can@2380 {
275                         status = "disabled";
276                 };
278                 viu@2400 {
279                         status = "disabled";
280                 };
282                 mdio@2800 {
283                         phy0: ethernet-phy@1f {
284                                 compatible = "smsc,lan8700";
285                                 reg = <0x1f>;
286                         };
287                 };
289                 enet: ethernet@2800 {
290                         phy-handle = <&phy0>;
291                 };
293                 usb@3000 {
294                         status = "disabled";
295                 };
297                 usb@4000 {
298                         status = "disabled";
299                 };
301                 /* PSC3 serial port A, aka ttyPSC0 */
302                 serial0: psc@11300 {
303                         compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
304                         fsl,rx-fifo-size = <512>;
305                         fsl,tx-fifo-size = <512>;
306                 };
308                 /* PSC4 in SPI mode */
309                 spi4: psc@11400 {
310                         compatible = "fsl,mpc5121-psc-spi", "fsl,mpc5121-psc";
311                         fsl,rx-fifo-size = <768>;
312                         fsl,tx-fifo-size = <768>;
313                         #address-cells = <1>;
314                         #size-cells = <0>;
315                         num-cs = <1>;
316                         cs-gpios = <&gpio_pic 25 0>;
318                         flash: m25p128@0 {
319                                 compatible = "st,m25p128";
320                                 spi-max-frequency = <20000000>;
321                                 reg = <0>;
322                                 #address-cells = <1>;
323                                 #size-cells = <1>;
325                                 partition@0 {
326                                         label = "spi-flash0";
327                                         reg = <0x00000000 0x01000000>;
328                                 };
329                         };
330                 };
332                 /* PSC5 in SPI mode */
333                 spi5: psc@11500 {
334                         compatible = "fsl,mpc5121-psc-spi", "fsl,mpc5121-psc";
335                         fsl,mode = "spi-master";
336                         fsl,rx-fifo-size = <128>;
337                         fsl,tx-fifo-size = <128>;
338                         #address-cells = <1>;
339                         #size-cells = <0>;
341                         lcd@0 {
342                                 compatible = "ilitek,ili922x";
343                                 reg = <0>;
344                                 spi-max-frequency = <100000>;
345                                 spi-cpol;
346                                 spi-cpha;
347                         };
348                 };
350                 /* PSC7 serial port C, aka ttyPSC2 */
351                 serial7: psc@11700 {
352                         compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
353                         fsl,rx-fifo-size = <512>;
354                         fsl,tx-fifo-size = <512>;
355                 };
357                 matrix_keypad@0 {
358                         compatible = "gpio-matrix-keypad";
359                         debounce-delay-ms = <5>;
360                         col-scan-delay-us = <1>;
361                         gpio-activelow;
362                         col-gpios-binary;
363                         col-switch-delay-ms = <200>;
365                         col-gpios = <&gpio_pic 1 0>;    /* pin1 */
367                         row-gpios = <&gpio_pic 2 0      /* pin2 */
368                                      &gpio_pic 3 0      /* pin3 */
369                                      &gpio_pic 4 0>;    /* pin4 */
371                         linux,keymap = <0x0000006e      /* FN LEFT */
372                                         0x01000067      /* UP */
373                                         0x02000066      /* FN RIGHT */
374                                         0x00010069      /* LEFT */
375                                         0x0101006a      /* DOWN */
376                                         0x0201006c>;    /* RIGHT */
377                 };
378         };
380         leds {
381                 compatible = "gpio-leds";
383                 backlight {
384                         label = "backlight";
385                         gpios = <&gpio_pic 0 0>;
386                         default-state = "keep";
387                 };
388                 green {
389                         label = "green";
390                         gpios = <&gpio_pic 18 0>;
391                         default-state = "keep";
392                 };
393                 red {
394                         label = "red";
395                         gpios = <&gpio_pic 19 0>;
396                         default-state = "keep";
397                 };
398         };