]> git.karo-electronics.de Git - karo-tx-linux.git/blob - arch/arm/boot/dts/gemini.dtsi
Merge tag 'arm-soc/for-4.13/devicetree' of http://github.com/Broadcom/stblinux into...
[karo-tx-linux.git] / arch / arm / boot / dts / gemini.dtsi
1 /*
2  * Device Tree file for Cortina systems Gemini SoC
3  */
4
5 /include/ "skeleton.dtsi"
6
7 #include <dt-bindings/interrupt-controller/irq.h>
8 #include <dt-bindings/gpio/gpio.h>
9
10 / {
11         soc {
12                 #address-cells = <1>;
13                 #size-cells = <1>;
14                 ranges;
15                 compatible = "simple-bus";
16                 interrupt-parent = <&intcon>;
17
18                 flash@30000000 {
19                         compatible = "cortina,gemini-flash", "cfi-flash";
20                         syscon = <&syscon>;
21                         bank-width = <2>;
22                         #address-cells = <1>;
23                         #size-cells = <1>;
24                         status = "disabled";
25                 };
26
27                 syscon: syscon@40000000 {
28                         compatible = "cortina,gemini-syscon",
29                                      "syscon", "simple-mfd";
30                         reg = <0x40000000 0x1000>;
31                         #clock-cells = <1>;
32                         #reset-cells = <1>;
33
34                         syscon-reboot {
35                                 compatible = "syscon-reboot";
36                                 regmap = <&syscon>;
37                                 /* GLOBAL_RESET register */
38                                 offset = <0x0c>;
39                                 /* RESET_GLOBAL | RESET_CPU1 */
40                                 mask = <0xC0000000>;
41                         };
42                 };
43
44                 watchdog@41000000 {
45                         compatible = "cortina,gemini-watchdog";
46                         reg = <0x41000000 0x1000>;
47                         interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
48                         resets = <&syscon 23>;
49                         clocks = <&syscon 2>;
50                 };
51
52                 uart0: serial@42000000 {
53                         compatible = "ns16550a";
54                         reg = <0x42000000 0x100>;
55                         resets = <&syscon 18>;
56                         clocks = <&syscon 6>;
57                         interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
58                         reg-shift = <2>;
59                 };
60
61                 timer@43000000 {
62                         compatible = "faraday,fttmr010";
63                         reg = <0x43000000 0x1000>;
64                         interrupt-parent = <&intcon>;
65                         interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */
66                                      <15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */
67                                      <16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */
68                         resets = <&syscon 17>;
69                         /* APB clock or RTC clock */
70                         clocks = <&syscon 2>, <&syscon 0>;
71                         clock-names = "PCLK", "EXTCLK";
72                         syscon = <&syscon>;
73                 };
74
75                 rtc@45000000 {
76                         compatible = "cortina,gemini-rtc";
77                         reg = <0x45000000 0x100>;
78                         interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
79                         resets = <&syscon 16>;
80                         clocks = <&syscon 2>, <&syscon 0>;
81                         clock-names = "PCLK", "EXTCLK";
82                 };
83
84                 intcon: interrupt-controller@48000000 {
85                         compatible = "faraday,ftintc010";
86                         reg = <0x48000000 0x1000>;
87                         resets = <&syscon 14>;
88                         interrupt-controller;
89                         #interrupt-cells = <2>;
90                 };
91
92                 power-controller@4b000000 {
93                         compatible = "cortina,gemini-power-controller";
94                         reg = <0x4b000000 0x100>;
95                         interrupts = <26 IRQ_TYPE_EDGE_RISING>;
96                 };
97
98                 gpio0: gpio@4d000000 {
99                         compatible = "cortina,gemini-gpio", "faraday,ftgpio010";
100                         reg = <0x4d000000 0x100>;
101                         interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
102                         resets = <&syscon 20>;
103                         clocks = <&syscon 2>;
104                         gpio-controller;
105                         #gpio-cells = <2>;
106                         interrupt-controller;
107                         #interrupt-cells = <2>;
108                 };
109
110                 gpio1: gpio@4e000000 {
111                         compatible = "cortina,gemini-gpio", "faraday,ftgpio010";
112                         reg = <0x4e000000 0x100>;
113                         interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
114                         resets = <&syscon 21>;
115                         clocks = <&syscon 2>;
116                         gpio-controller;
117                         #gpio-cells = <2>;
118                         interrupt-controller;
119                         #interrupt-cells = <2>;
120                 };
121
122                 gpio2: gpio@4f000000 {
123                         compatible = "cortina,gemini-gpio", "faraday,ftgpio010";
124                         reg = <0x4f000000 0x100>;
125                         interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
126                         resets = <&syscon 22>;
127                         clocks = <&syscon 2>;
128                         gpio-controller;
129                         #gpio-cells = <2>;
130                         interrupt-controller;
131                         #interrupt-cells = <2>;
132                 };
133
134                 pci@50000000 {
135                         compatible = "cortina,gemini-pci", "faraday,ftpci100";
136                         /*
137                          * The first 256 bytes in the IO range is actually used
138                          * to configure the host bridge.
139                          */
140                         reg = <0x50000000 0x100>;
141                         resets = <&syscon 7>;
142                         clocks = <&syscon 15>, <&syscon 4>;
143                         clock-names = "PCLK", "PCICLK";
144                         #address-cells = <3>;
145                         #size-cells = <2>;
146                         #interrupt-cells = <1>;
147                         status = "disabled";
148
149                         bus-range = <0x00 0xff>;
150                         /* PCI ranges mappings */
151                         ranges =
152                         /* 1MiB I/O space 0x50000000-0x500fffff */
153                         <0x01000000 0 0          0x50000000 0 0x00100000>,
154                         /* 128MiB non-prefetchable memory 0x58000000-0x5fffffff */
155                         <0x02000000 0 0x58000000 0x58000000 0 0x08000000>;
156
157                         /* DMA ranges */
158                         dma-ranges =
159                         /* 128MiB at 0x00000000-0x07ffffff */
160                         <0x02000000 0 0x00000000 0x00000000 0 0x08000000>,
161                         /* 64MiB at 0x00000000-0x03ffffff */
162                         <0x02000000 0 0x00000000 0x00000000 0 0x04000000>,
163                         /* 64MiB at 0x00000000-0x03ffffff */
164                         <0x02000000 0 0x00000000 0x00000000 0 0x04000000>;
165
166                         /*
167                          * This PCI host bridge variant has a cascaded interrupt
168                          * controller embedded in the host bridge.
169                          */
170                         pci_intc: interrupt-controller {
171                                 interrupt-parent = <&intcon>;
172                                 interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
173                                 interrupt-controller;
174                                 #address-cells = <0>;
175                                 #interrupt-cells = <1>;
176                         };
177                 };
178         };
179 };