ARM: dts: at91: sama5d2_icp: fix i2c eeprom compatible
[platform/kernel/u-boot.git] / arch / arm / dts / sun8i-v3s.dtsi
1 /*
2  * Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz>
3  *
4  * This file is dual-licensed: you can use it either under the terms
5  * of the GPL or the X11 license, at your option. Note that this dual
6  * licensing only applies to this file, and not this project as a
7  * whole.
8  *
9  *  a) This file is free software; you can redistribute it and/or
10  *     modify it under the terms of the GNU General Public License as
11  *     published by the Free Software Foundation; either version 2 of the
12  *     License, or (at your option) any later version.
13  *
14  *     This file is distributed in the hope that it will be useful,
15  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  *     GNU General Public License for more details.
18  *
19  * Or, alternatively,
20  *
21  *  b) Permission is hereby granted, free of charge, to any person
22  *     obtaining a copy of this software and associated documentation
23  *     files (the "Software"), to deal in the Software without
24  *     restriction, including without limitation the rights to use,
25  *     copy, modify, merge, publish, distribute, sublicense, and/or
26  *     sell copies of the Software, and to permit persons to whom the
27  *     Software is furnished to do so, subject to the following
28  *     conditions:
29  *
30  *     The above copyright notice and this permission notice shall be
31  *     included in all copies or substantial portions of the Software.
32  *
33  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40  *     OTHER DEALINGS IN THE SOFTWARE.
41  */
42
43 #include <dt-bindings/clock/sun8i-v3s-ccu.h>
44 #include <dt-bindings/reset/sun8i-v3s-ccu.h>
45 #include <dt-bindings/interrupt-controller/arm-gic.h>
46 #include <dt-bindings/pinctrl/sun4i-a10.h>
47
48 / {
49         #address-cells = <1>;
50         #size-cells = <1>;
51         interrupt-parent = <&gic>;
52
53         cpus {
54                 #address-cells = <1>;
55                 #size-cells = <0>;
56
57                 cpu@0 {
58                         compatible = "arm,cortex-a7";
59                         device_type = "cpu";
60                         reg = <0>;
61                         clocks = <&ccu CLK_CPU>;
62                 };
63         };
64
65         timer {
66                 compatible = "arm,armv7-timer";
67                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
68                              <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
69                              <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
70                              <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
71         };
72
73         clocks {
74                 #address-cells = <1>;
75                 #size-cells = <1>;
76                 ranges;
77
78                 osc24M: osc24M_clk {
79                         #clock-cells = <0>;
80                         compatible = "fixed-clock";
81                         clock-frequency = <24000000>;
82                         clock-output-names = "osc24M";
83                 };
84
85                 osc32k: osc32k_clk {
86                         #clock-cells = <0>;
87                         compatible = "fixed-clock";
88                         clock-frequency = <32768>;
89                         clock-output-names = "osc32k";
90                 };
91         };
92
93         soc {
94                 compatible = "simple-bus";
95                 #address-cells = <1>;
96                 #size-cells = <1>;
97                 ranges;
98
99                 mmc0: mmc@01c0f000 {
100                         compatible = "allwinner,sun7i-a20-mmc";
101                         reg = <0x01c0f000 0x1000>;
102                         clocks = <&ccu CLK_BUS_MMC0>,
103                                  <&ccu CLK_MMC0>,
104                                  <&ccu CLK_MMC0_OUTPUT>,
105                                  <&ccu CLK_MMC0_SAMPLE>;
106                         clock-names = "ahb",
107                                       "mmc",
108                                       "output",
109                                       "sample";
110                         resets = <&ccu RST_BUS_MMC0>;
111                         reset-names = "ahb";
112                         interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
113                         status = "disabled";
114                         #address-cells = <1>;
115                         #size-cells = <0>;
116                 };
117
118                 mmc1: mmc@01c10000 {
119                         compatible = "allwinner,sun7i-a20-mmc";
120                         reg = <0x01c10000 0x1000>;
121                         clocks = <&ccu CLK_BUS_MMC1>,
122                                  <&ccu CLK_MMC1>,
123                                  <&ccu CLK_MMC1_OUTPUT>,
124                                  <&ccu CLK_MMC1_SAMPLE>;
125                         clock-names = "ahb",
126                                       "mmc",
127                                       "output",
128                                       "sample";
129                         resets = <&ccu RST_BUS_MMC1>;
130                         reset-names = "ahb";
131                         interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
132                         status = "disabled";
133                         #address-cells = <1>;
134                         #size-cells = <0>;
135                 };
136
137                 mmc2: mmc@01c11000 {
138                         compatible = "allwinner,sun7i-a20-mmc";
139                         reg = <0x01c11000 0x1000>;
140                         clocks = <&ccu CLK_BUS_MMC2>,
141                                  <&ccu CLK_MMC2>,
142                                  <&ccu CLK_MMC2_OUTPUT>,
143                                  <&ccu CLK_MMC2_SAMPLE>;
144                         clock-names = "ahb",
145                                       "mmc",
146                                       "output",
147                                       "sample";
148                         resets = <&ccu RST_BUS_MMC2>;
149                         reset-names = "ahb";
150                         interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
151                         status = "disabled";
152                         #address-cells = <1>;
153                         #size-cells = <0>;
154                 };
155
156                 usb_otg: usb@01c19000 {
157                         compatible = "allwinner,sun8i-h3-musb";
158                         reg = <0x01c19000 0x0400>;
159                         clocks = <&ccu CLK_BUS_OTG>;
160                         resets = <&ccu RST_BUS_OTG>;
161                         interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
162                         interrupt-names = "mc";
163                         phys = <&usbphy 0>;
164                         phy-names = "usb";
165                         extcon = <&usbphy 0>;
166                         status = "disabled";
167                 };
168
169                 usbphy: phy@01c19400 {
170                         compatible = "allwinner,sun8i-v3s-usb-phy";
171                         reg = <0x01c19400 0x2c>,
172                               <0x01c1a800 0x4>;
173                         reg-names = "phy_ctrl",
174                                     "pmu0";
175                         clocks = <&ccu CLK_USB_PHY0>;
176                         clock-names = "usb0_phy";
177                         resets = <&ccu RST_USB_PHY0>;
178                         reset-names = "usb0_reset";
179                         status = "disabled";
180                         #phy-cells = <1>;
181                 };
182
183                 ccu: clock@01c20000 {
184                         compatible = "allwinner,sun8i-v3s-ccu";
185                         reg = <0x01c20000 0x400>;
186                         clocks = <&osc24M>, <&osc32k>;
187                         clock-names = "hosc", "losc";
188                         #clock-cells = <1>;
189                         #reset-cells = <1>;
190                 };
191
192                 rtc: rtc@01c20400 {
193                         compatible = "allwinner,sun6i-a31-rtc";
194                         reg = <0x01c20400 0x54>;
195                         interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
196                                      <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
197                 };
198
199                 pio: pinctrl@01c20800 {
200                         compatible = "allwinner,sun8i-v3s-pinctrl";
201                         reg = <0x01c20800 0x400>;
202                         interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
203                                      <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
204                         clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
205                         clock-names = "apb", "hosc", "losc";
206                         gpio-controller;
207                         #gpio-cells = <3>;
208                         interrupt-controller;
209                         #interrupt-cells = <3>;
210
211                         uart0_pins_a: uart0@0 {
212                                 pins = "PB8", "PB9";
213                                 function = "uart0";
214                                 bias-pull-up;
215                         };
216
217                         mmc0_pins_a: mmc0@0 {
218                                 pins = "PF0", "PF1", "PF2", "PF3",
219                                        "PF4", "PF5";
220                                 function = "mmc0";
221                                 drive-strength = <30>;
222                                 bias-pull-up;
223                         };
224                 };
225
226                 timer@01c20c00 {
227                         compatible = "allwinner,sun4i-a10-timer";
228                         reg = <0x01c20c00 0xa0>;
229                         interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
230                                      <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
231                         clocks = <&osc24M>;
232                 };
233
234                 wdt0: watchdog@01c20ca0 {
235                         compatible = "allwinner,sun6i-a31-wdt";
236                         reg = <0x01c20ca0 0x20>;
237                         interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
238                 };
239
240                 uart0: serial@01c28000 {
241                         compatible = "snps,dw-apb-uart";
242                         reg = <0x01c28000 0x400>;
243                         interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
244                         reg-shift = <2>;
245                         reg-io-width = <4>;
246                         clocks = <&ccu CLK_BUS_UART0>;
247                         resets = <&ccu RST_BUS_UART0>;
248                         status = "disabled";
249                 };
250
251                 uart1: serial@01c28400 {
252                         compatible = "snps,dw-apb-uart";
253                         reg = <0x01c28400 0x400>;
254                         interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
255                         reg-shift = <2>;
256                         reg-io-width = <4>;
257                         clocks = <&ccu CLK_BUS_UART1>;
258                         resets = <&ccu RST_BUS_UART1>;
259                         status = "disabled";
260                 };
261
262                 uart2: serial@01c28800 {
263                         compatible = "snps,dw-apb-uart";
264                         reg = <0x01c28800 0x400>;
265                         interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
266                         reg-shift = <2>;
267                         reg-io-width = <4>;
268                         clocks = <&ccu CLK_BUS_UART2>;
269                         resets = <&ccu RST_BUS_UART2>;
270                         status = "disabled";
271                 };
272
273                 gic: interrupt-controller@01c81000 {
274                         compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
275                         reg = <0x01c81000 0x1000>,
276                               <0x01c82000 0x1000>,
277                               <0x01c84000 0x2000>,
278                               <0x01c86000 0x2000>;
279                         interrupt-controller;
280                         #interrupt-cells = <3>;
281                         interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
282                 };
283         };
284 };