bd6bf6d9300fb9f5da8569f20e7210ef50794f8f
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / pxa2xx.dtsi
1 /*
2  * pxa2xx.dtsi - Device Tree Include file for Marvell PXA2xx family SoC
3  *
4  * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
5  *
6  * Licensed under GPLv2 or later.
7  */
8
9 #include "dt-bindings/clock/pxa-clock.h"
10
11 #define PMGROUP(pin) #pin
12 #define PMMUX(func, pin, af)                    \
13         mux- ## func {                          \
14                 groups = PMGROUP(P ## pin);     \
15                 function = #af;                 \
16         }
17 #define PMMUX_LPM_LOW(func, pin, af)            \
18         mux- ## func {                          \
19                 groups = PMGROUP(P ## pin);     \
20                 function = #af;                 \
21                 low-power-disable;              \
22         }
23 #define PMMUX_LPM_HIGH(func, pin, af)           \
24         mux- ## func {                          \
25                 groups = PMGROUP(P ## pin);     \
26                 function = #af;                 \
27                 low-power-enable;               \
28         }
29
30 / {
31         #address-cells = <1>;
32         #size-cells = <1>;
33         model = "Marvell PXA2xx family SoC";
34         compatible = "marvell,pxa2xx";
35         interrupt-parent = <&pxairq>;
36
37         aliases {
38                 serial0 = &ffuart;
39                 serial1 = &btuart;
40                 serial2 = &stuart;
41                 serial3 = &hwuart;
42                 i2c0 = &pwri2c;
43                 i2c1 = &pxai2c1;
44         };
45
46         cpus {
47                 cpu {
48                         compatible = "marvell,xscale";
49                         device_type = "cpu";
50                 };
51         };
52
53         pxabus {
54                 compatible = "simple-bus";
55                 #address-cells = <1>;
56                 #size-cells = <1>;
57                 ranges;
58
59                 pxairq: interrupt-controller@40d00000 {
60                         #interrupt-cells = <1>;
61                         compatible = "marvell,pxa-intc";
62                         interrupt-controller;
63                         interrupt-parent;
64                         marvell,intc-nr-irqs = <32>;
65                         reg = <0x40d00000 0xd0>;
66                 };
67
68                 gpio: gpio@40e00000 {
69                         compatible = "mrvl,pxa-gpio";
70                         #address-cells = <0x1>;
71                         #size-cells = <0x1>;
72                         reg = <0x40e00000 0x10000>;
73                         gpio-controller;
74                         #gpio-cells = <0x2>;
75                         interrupts = <8>, <9>, <10>;
76                         interrupt-names = "gpio0", "gpio1", "gpio_mux";
77                         interrupt-controller;
78                         #interrupt-cells = <0x2>;
79                         ranges;
80
81                         gcb0: gpio@40e00000 {
82                                 reg = <0x40e00000 0x4>;
83                         };
84
85                         gcb1: gpio@40e00004 {
86                                 reg = <0x40e00004 0x4>;
87                         };
88
89                         gcb2: gpio@40e00008 {
90                                 reg = <0x40e00008 0x4>;
91                         };
92                         gcb3: gpio@40e0000c {
93                                 reg = <0x40e0000c 0x4>;
94                         };
95                 };
96
97                 ffuart: serial@40100000 {
98                         compatible = "mrvl,pxa-uart";
99                         reg = <0x40100000 0x30>;
100                         interrupts = <22>;
101                         clocks = <&clks CLK_FFUART>;
102                         status = "disabled";
103                 };
104
105                 btuart: serial@40200000 {
106                         compatible = "mrvl,pxa-uart";
107                         reg = <0x40200000 0x30>;
108                         interrupts = <21>;
109                         clocks = <&clks CLK_BTUART>;
110                         status = "disabled";
111                 };
112
113                 stuart: serial@40700000 {
114                         compatible = "mrvl,pxa-uart";
115                         reg = <0x40700000 0x30>;
116                         interrupts = <20>;
117                         clocks = <&clks CLK_STUART>;
118                         status = "disabled";
119                 };
120
121                 hwuart: serial@41600000 {
122                         compatible = "mrvl,pxa-uart";
123                         reg = <0x41600000 0x30>;
124                         interrupts = <7>;
125                         status = "disabled";
126                 };
127
128                 pxai2c1: i2c@40301680 {
129                         compatible = "mrvl,pxa-i2c";
130                         reg = <0x40301680 0x30>;
131                         interrupts = <18>;
132                         clocks = <&clks CLK_I2C>;
133                         #address-cells = <0x1>;
134                         #size-cells = <0>;
135                         status = "disabled";
136                 };
137
138                 mmc0: mmc@41100000 {
139                         compatible = "marvell,pxa-mmc";
140                         reg = <0x41100000 0x1000>;
141                         interrupts = <23>;
142                         clocks = <&clks CLK_MMC>;
143                         dmas = <&pdma 21 3
144                                 &pdma 22 3>;
145                         dma-names = "rx", "tx";
146                         status = "disabled";
147                 };
148
149                 rtc@40900000 {
150                         compatible = "marvell,pxa-rtc";
151                         reg = <0x40900000 0x3c>;
152                         interrupts = <30 31>;
153                 };
154
155                 lcdc: lcd-controller@40500000 {
156                         compatible = "marvell,pxa2xx-lcdc";
157                         reg = <0x44000000 0x10000>;
158                         interrupts = <17>;
159                         clocks = <&clks CLK_LCD>;
160                         status = "disabled";
161                 };
162         };
163 };