blob: 85ecb4d64cfdf5a9d23c6e568eba12531ddc49f2 [file] [log] [blame]
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +08001/*
2 * Copyright 2014 Chen-Yu Tsai
3 *
4 * Chen-Yu Tsai <wens@csie.org>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
Maxime Ripard136d18a2014-10-17 11:38:23 +020011 * a) This file is free software; you can redistribute it and/or
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +080012 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
Maxime Ripard136d18a2014-10-17 11:38:23 +020016 * This file is distributed in the hope that it will be useful,
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +080017 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +080021 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
Maxime Ripard19882b82014-12-16 22:59:58 +010045#include <dt-bindings/interrupt-controller/arm-gic.h>
46
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +080047#include <dt-bindings/clock/sun9i-a80-ccu.h>
48#include <dt-bindings/clock/sun9i-a80-de.h>
49#include <dt-bindings/clock/sun9i-a80-usb.h>
50#include <dt-bindings/reset/sun9i-a80-ccu.h>
51#include <dt-bindings/reset/sun9i-a80-de.h>
52#include <dt-bindings/reset/sun9i-a80-usb.h>
53
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +080054/ {
Maxime Ripard98dc89d2017-10-05 12:49:49 +020055 #address-cells = <2>;
56 #size-cells = <2>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +080057 interrupt-parent = <&gic>;
58
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +080059 cpus {
60 #address-cells = <1>;
61 #size-cells = <0>;
62
63 cpu0: cpu@0 {
64 compatible = "arm,cortex-a7";
65 device_type = "cpu";
Chen-Yu Tsaif0b55842018-01-17 16:46:48 +080066 cci-control-port = <&cci_control0>;
67 clock-frequency = <12000000>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +080068 reg = <0x0>;
69 };
70
71 cpu1: cpu@1 {
72 compatible = "arm,cortex-a7";
73 device_type = "cpu";
Chen-Yu Tsaif0b55842018-01-17 16:46:48 +080074 cci-control-port = <&cci_control0>;
75 clock-frequency = <12000000>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +080076 reg = <0x1>;
77 };
78
79 cpu2: cpu@2 {
80 compatible = "arm,cortex-a7";
81 device_type = "cpu";
Chen-Yu Tsaif0b55842018-01-17 16:46:48 +080082 cci-control-port = <&cci_control0>;
83 clock-frequency = <12000000>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +080084 reg = <0x2>;
85 };
86
87 cpu3: cpu@3 {
88 compatible = "arm,cortex-a7";
89 device_type = "cpu";
Chen-Yu Tsaif0b55842018-01-17 16:46:48 +080090 cci-control-port = <&cci_control0>;
91 clock-frequency = <12000000>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +080092 reg = <0x3>;
93 };
94
95 cpu4: cpu@100 {
96 compatible = "arm,cortex-a15";
97 device_type = "cpu";
Chen-Yu Tsaif0b55842018-01-17 16:46:48 +080098 cci-control-port = <&cci_control1>;
99 clock-frequency = <18000000>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800100 reg = <0x100>;
101 };
102
103 cpu5: cpu@101 {
104 compatible = "arm,cortex-a15";
105 device_type = "cpu";
Chen-Yu Tsaif0b55842018-01-17 16:46:48 +0800106 cci-control-port = <&cci_control1>;
107 clock-frequency = <18000000>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800108 reg = <0x101>;
109 };
110
111 cpu6: cpu@102 {
112 compatible = "arm,cortex-a15";
113 device_type = "cpu";
Chen-Yu Tsaif0b55842018-01-17 16:46:48 +0800114 cci-control-port = <&cci_control1>;
115 clock-frequency = <18000000>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800116 reg = <0x102>;
117 };
118
119 cpu7: cpu@103 {
120 compatible = "arm,cortex-a15";
121 device_type = "cpu";
Chen-Yu Tsaif0b55842018-01-17 16:46:48 +0800122 cci-control-port = <&cci_control1>;
123 clock-frequency = <18000000>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800124 reg = <0x103>;
125 };
126 };
127
Chen-Yu Tsai51e9f5f2015-03-18 16:00:28 +0800128 timer {
129 compatible = "arm,armv7-timer";
130 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
131 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
132 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
133 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
134 clock-frequency = <24000000>;
135 arm,cpu-registers-not-fw-configured;
136 };
137
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800138 clocks {
139 #address-cells = <1>;
140 #size-cells = <1>;
141 /*
142 * map 64 bit address range down to 32 bits,
143 * as the peripherals are all under 512MB.
144 */
145 ranges = <0 0 0 0x20000000>;
146
Chen-Yu Tsaid255abd2015-11-29 11:03:10 +0800147 /*
148 * This clock is actually configurable from the PRCM address
149 * space. The external 24M oscillator can be turned off, and
150 * the clock switched to an internal 16M RC oscillator. Under
151 * normal operation there's no reason to do this, and the
152 * default is to use the external good one, so just model this
153 * as a fixed clock. Also it is not entirely clear if the
154 * osc24M mux in the PRCM affects the entire clock tree, which
155 * would also throw all the PLL clock rates off, or just the
156 * downstream clocks in the PRCM.
157 */
Maxime Ripard00a70882017-10-05 09:17:40 +0200158 osc24M: clk-24M {
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800159 #clock-cells = <0>;
160 compatible = "fixed-clock";
161 clock-frequency = <24000000>;
162 clock-output-names = "osc24M";
163 };
164
Chen-Yu Tsaid255abd2015-11-29 11:03:10 +0800165 /*
166 * The 32k clock is from an external source, normally the
Chen-Yu Tsai16266982016-08-19 15:42:26 +0800167 * AC100 codec/RTC chip. This serves as a placeholder for
168 * board dts files to specify the source.
Chen-Yu Tsaid255abd2015-11-29 11:03:10 +0800169 */
Maxime Ripard00a70882017-10-05 09:17:40 +0200170 osc32k: clk-32k {
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800171 #clock-cells = <0>;
Chen-Yu Tsai16266982016-08-19 15:42:26 +0800172 compatible = "fixed-factor-clock";
173 clock-div = <1>;
174 clock-mult = <1>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800175 clock-output-names = "osc32k";
176 };
Chen-Yu Tsaiac399a92014-10-20 22:10:30 +0800177
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200178 cpus_clk: clk@8001410 {
Chen-Yu Tsaiafd7d662015-11-29 11:03:09 +0800179 compatible = "allwinner,sun9i-a80-cpus-clk";
180 reg = <0x08001410 0x4>;
181 #clock-cells = <0>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800182 clocks = <&osc32k>, <&osc24M>,
183 <&ccu CLK_PLL_PERIPH0>,
184 <&ccu CLK_PLL_AUDIO>;
Chen-Yu Tsaiafd7d662015-11-29 11:03:09 +0800185 clock-output-names = "cpus";
186 };
187
Maxime Ripard00a70882017-10-05 09:17:40 +0200188 ahbs: clk-ahbs {
Chen-Yu Tsaiafd7d662015-11-29 11:03:09 +0800189 compatible = "fixed-factor-clock";
190 #clock-cells = <0>;
191 clock-div = <1>;
192 clock-mult = <1>;
193 clocks = <&cpus_clk>;
194 clock-output-names = "ahbs";
195 };
196
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200197 apbs: clk@800141c {
Chen-Yu Tsaiafd7d662015-11-29 11:03:09 +0800198 compatible = "allwinner,sun8i-a23-apb0-clk";
199 reg = <0x0800141c 0x4>;
200 #clock-cells = <0>;
201 clocks = <&ahbs>;
202 clock-output-names = "apbs";
203 };
204
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200205 apbs_gates: clk@8001428 {
Chen-Yu Tsaiafd7d662015-11-29 11:03:09 +0800206 compatible = "allwinner,sun9i-a80-apbs-gates-clk";
207 reg = <0x08001428 0x4>;
208 #clock-cells = <1>;
209 clocks = <&apbs>;
210 clock-indices = <0>, <1>,
211 <2>, <3>,
212 <4>, <5>,
213 <6>, <7>,
214 <12>, <13>,
215 <16>, <17>,
216 <18>, <20>;
217 clock-output-names = "apbs_pio", "apbs_ir",
218 "apbs_timer", "apbs_rsb",
219 "apbs_uart", "apbs_1wire",
220 "apbs_i2c0", "apbs_i2c1",
221 "apbs_ps2_0", "apbs_ps2_1",
222 "apbs_dma", "apbs_i2s0",
223 "apbs_i2s1", "apbs_twd";
224 };
225
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200226 r_1wire_clk: clk@8001450 {
Chen-Yu Tsaiafd7d662015-11-29 11:03:09 +0800227 reg = <0x08001450 0x4>;
228 #clock-cells = <0>;
229 compatible = "allwinner,sun4i-a10-mod0-clk";
230 clocks = <&osc32k>, <&osc24M>;
231 clock-output-names = "r_1wire";
232 };
233
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200234 r_ir_clk: clk@8001454 {
Chen-Yu Tsaiafd7d662015-11-29 11:03:09 +0800235 reg = <0x08001454 0x4>;
236 #clock-cells = <0>;
237 compatible = "allwinner,sun4i-a10-mod0-clk";
238 clocks = <&osc32k>, <&osc24M>;
239 clock-output-names = "r_ir";
240 };
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800241 };
242
243 soc {
244 compatible = "simple-bus";
245 #address-cells = <1>;
246 #size-cells = <1>;
247 /*
248 * map 64 bit address range down to 32 bits,
249 * as the peripherals are all under 512MB.
250 */
251 ranges = <0 0 0 0x20000000>;
252
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200253 ehci0: usb@a00000 {
Chen-Yu Tsai70472162015-02-03 06:22:02 +0800254 compatible = "allwinner,sun9i-a80-ehci", "generic-ehci";
255 reg = <0x00a00000 0x100>;
256 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800257 clocks = <&usb_clocks CLK_BUS_HCI0>;
258 resets = <&usb_clocks RST_USB0_HCI>;
Chen-Yu Tsai70472162015-02-03 06:22:02 +0800259 phys = <&usbphy1>;
260 phy-names = "usb";
261 status = "disabled";
262 };
263
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200264 ohci0: usb@a00400 {
Chen-Yu Tsai70472162015-02-03 06:22:02 +0800265 compatible = "allwinner,sun9i-a80-ohci", "generic-ohci";
266 reg = <0x00a00400 0x100>;
267 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800268 clocks = <&usb_clocks CLK_BUS_HCI0>,
269 <&usb_clocks CLK_USB_OHCI0>;
270 resets = <&usb_clocks RST_USB0_HCI>;
Chen-Yu Tsai70472162015-02-03 06:22:02 +0800271 phys = <&usbphy1>;
272 phy-names = "usb";
273 status = "disabled";
274 };
275
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200276 usbphy1: phy@a00800 {
Chen-Yu Tsai1af5d192015-01-28 03:54:10 +0800277 compatible = "allwinner,sun9i-a80-usb-phy";
278 reg = <0x00a00800 0x4>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800279 clocks = <&usb_clocks CLK_USB0_PHY>;
Chen-Yu Tsai1af5d192015-01-28 03:54:10 +0800280 clock-names = "phy";
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800281 resets = <&usb_clocks RST_USB0_PHY>;
Chen-Yu Tsai1af5d192015-01-28 03:54:10 +0800282 reset-names = "phy";
283 status = "disabled";
284 #phy-cells = <0>;
285 };
286
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200287 ehci1: usb@a01000 {
Chen-Yu Tsai70472162015-02-03 06:22:02 +0800288 compatible = "allwinner,sun9i-a80-ehci", "generic-ehci";
289 reg = <0x00a01000 0x100>;
290 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800291 clocks = <&usb_clocks CLK_BUS_HCI1>;
292 resets = <&usb_clocks RST_USB1_HCI>;
Chen-Yu Tsai70472162015-02-03 06:22:02 +0800293 phys = <&usbphy2>;
294 phy-names = "usb";
295 status = "disabled";
296 };
297
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200298 usbphy2: phy@a01800 {
Chen-Yu Tsai1af5d192015-01-28 03:54:10 +0800299 compatible = "allwinner,sun9i-a80-usb-phy";
300 reg = <0x00a01800 0x4>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800301 clocks = <&usb_clocks CLK_USB1_HSIC>,
302 <&usb_clocks CLK_USB_HSIC>,
303 <&usb_clocks CLK_USB1_PHY>;
304 clock-names = "hsic_480M",
305 "hsic_12M",
306 "phy";
307 resets = <&usb_clocks RST_USB1_HSIC>,
308 <&usb_clocks RST_USB1_PHY>;
309 reset-names = "hsic",
310 "phy";
Chen-Yu Tsai1af5d192015-01-28 03:54:10 +0800311 status = "disabled";
312 #phy-cells = <0>;
313 /* usb1 is always used with HSIC */
314 phy_type = "hsic";
315 };
316
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200317 ehci2: usb@a02000 {
Chen-Yu Tsai70472162015-02-03 06:22:02 +0800318 compatible = "allwinner,sun9i-a80-ehci", "generic-ehci";
319 reg = <0x00a02000 0x100>;
320 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800321 clocks = <&usb_clocks CLK_BUS_HCI2>;
322 resets = <&usb_clocks RST_USB2_HCI>;
Chen-Yu Tsai70472162015-02-03 06:22:02 +0800323 phys = <&usbphy3>;
324 phy-names = "usb";
325 status = "disabled";
326 };
327
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200328 ohci2: usb@a02400 {
Chen-Yu Tsai70472162015-02-03 06:22:02 +0800329 compatible = "allwinner,sun9i-a80-ohci", "generic-ohci";
330 reg = <0x00a02400 0x100>;
331 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800332 clocks = <&usb_clocks CLK_BUS_HCI2>,
333 <&usb_clocks CLK_USB_OHCI2>;
334 resets = <&usb_clocks RST_USB2_HCI>;
Chen-Yu Tsai70472162015-02-03 06:22:02 +0800335 phys = <&usbphy3>;
336 phy-names = "usb";
337 status = "disabled";
338 };
339
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200340 usbphy3: phy@a02800 {
Chen-Yu Tsai1af5d192015-01-28 03:54:10 +0800341 compatible = "allwinner,sun9i-a80-usb-phy";
342 reg = <0x00a02800 0x4>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800343 clocks = <&usb_clocks CLK_USB2_HSIC>,
344 <&usb_clocks CLK_USB_HSIC>,
345 <&usb_clocks CLK_USB2_PHY>;
346 clock-names = "hsic_480M",
347 "hsic_12M",
348 "phy";
349 resets = <&usb_clocks RST_USB2_HSIC>,
350 <&usb_clocks RST_USB2_PHY>;
351 reset-names = "hsic",
352 "phy";
Chen-Yu Tsai1af5d192015-01-28 03:54:10 +0800353 status = "disabled";
354 #phy-cells = <0>;
355 };
356
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200357 usb_clocks: clock@a08000 {
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800358 compatible = "allwinner,sun9i-a80-usb-clks";
359 reg = <0x00a08000 0x8>;
360 clocks = <&ccu CLK_BUS_USB>, <&osc24M>;
361 clock-names = "bus", "hosc";
362 #clock-cells = <1>;
363 #reset-cells = <1>;
364 };
365
Chen-Yu Tsai61cf3ed2018-01-17 16:46:49 +0800366 cpucfg@1700000 {
367 compatible = "allwinner,sun9i-a80-cpucfg";
368 reg = <0x01700000 0x100>;
369 };
370
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200371 mmc0: mmc@1c0f000 {
Chen-Yu Tsai3a952212016-01-21 13:26:39 +0800372 compatible = "allwinner,sun9i-a80-mmc";
Chen-Yu Tsai2f6941c2015-01-17 13:19:30 +0800373 reg = <0x01c0f000 0x1000>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800374 clocks = <&mmc_config_clk 0>, <&ccu CLK_MMC0>,
375 <&ccu CLK_MMC0_OUTPUT>,
376 <&ccu CLK_MMC0_SAMPLE>;
Chen-Yu Tsai2f6941c2015-01-17 13:19:30 +0800377 clock-names = "ahb", "mmc", "output", "sample";
378 resets = <&mmc_config_clk 0>;
379 reset-names = "ahb";
380 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
381 status = "disabled";
Hans de Goede4c1bb9c2015-03-10 16:27:09 +0100382 #address-cells = <1>;
383 #size-cells = <0>;
Chen-Yu Tsai2f6941c2015-01-17 13:19:30 +0800384 };
385
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200386 mmc1: mmc@1c10000 {
Chen-Yu Tsai3a952212016-01-21 13:26:39 +0800387 compatible = "allwinner,sun9i-a80-mmc";
Chen-Yu Tsai2f6941c2015-01-17 13:19:30 +0800388 reg = <0x01c10000 0x1000>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800389 clocks = <&mmc_config_clk 1>, <&ccu CLK_MMC1>,
390 <&ccu CLK_MMC1_OUTPUT>,
391 <&ccu CLK_MMC1_SAMPLE>;
Chen-Yu Tsai2f6941c2015-01-17 13:19:30 +0800392 clock-names = "ahb", "mmc", "output", "sample";
393 resets = <&mmc_config_clk 1>;
394 reset-names = "ahb";
395 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
396 status = "disabled";
Hans de Goede4c1bb9c2015-03-10 16:27:09 +0100397 #address-cells = <1>;
398 #size-cells = <0>;
Chen-Yu Tsai2f6941c2015-01-17 13:19:30 +0800399 };
400
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200401 mmc2: mmc@1c11000 {
Chen-Yu Tsai3a952212016-01-21 13:26:39 +0800402 compatible = "allwinner,sun9i-a80-mmc";
Chen-Yu Tsai2f6941c2015-01-17 13:19:30 +0800403 reg = <0x01c11000 0x1000>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800404 clocks = <&mmc_config_clk 2>, <&ccu CLK_MMC2>,
405 <&ccu CLK_MMC2_OUTPUT>,
406 <&ccu CLK_MMC2_SAMPLE>;
Chen-Yu Tsai2f6941c2015-01-17 13:19:30 +0800407 clock-names = "ahb", "mmc", "output", "sample";
408 resets = <&mmc_config_clk 2>;
409 reset-names = "ahb";
410 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
411 status = "disabled";
Hans de Goede4c1bb9c2015-03-10 16:27:09 +0100412 #address-cells = <1>;
413 #size-cells = <0>;
Chen-Yu Tsai2f6941c2015-01-17 13:19:30 +0800414 };
415
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200416 mmc3: mmc@1c12000 {
Chen-Yu Tsai3a952212016-01-21 13:26:39 +0800417 compatible = "allwinner,sun9i-a80-mmc";
Chen-Yu Tsai2f6941c2015-01-17 13:19:30 +0800418 reg = <0x01c12000 0x1000>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800419 clocks = <&mmc_config_clk 3>, <&ccu CLK_MMC3>,
420 <&ccu CLK_MMC3_OUTPUT>,
421 <&ccu CLK_MMC3_SAMPLE>;
Chen-Yu Tsai2f6941c2015-01-17 13:19:30 +0800422 clock-names = "ahb", "mmc", "output", "sample";
423 resets = <&mmc_config_clk 3>;
424 reset-names = "ahb";
425 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
426 status = "disabled";
Hans de Goede4c1bb9c2015-03-10 16:27:09 +0100427 #address-cells = <1>;
428 #size-cells = <0>;
Chen-Yu Tsai2f6941c2015-01-17 13:19:30 +0800429 };
430
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200431 mmc_config_clk: clk@1c13000 {
Chen-Yu Tsai9c56f3f2015-01-17 13:19:29 +0800432 compatible = "allwinner,sun9i-a80-mmc-config-clk";
433 reg = <0x01c13000 0x10>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800434 clocks = <&ccu CLK_BUS_MMC>;
Chen-Yu Tsai9c56f3f2015-01-17 13:19:29 +0800435 clock-names = "ahb";
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800436 resets = <&ccu RST_BUS_MMC>;
Chen-Yu Tsai9c56f3f2015-01-17 13:19:29 +0800437 reset-names = "ahb";
438 #clock-cells = <1>;
439 #reset-cells = <1>;
440 clock-output-names = "mmc0_config", "mmc1_config",
441 "mmc2_config", "mmc3_config";
442 };
443
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200444 gic: interrupt-controller@1c41000 {
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800445 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
446 reg = <0x01c41000 0x1000>,
Marc Zyngier387720c2017-01-18 09:27:28 +0000447 <0x01c42000 0x2000>,
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800448 <0x01c44000 0x2000>,
449 <0x01c46000 0x2000>;
450 interrupt-controller;
451 #interrupt-cells = <3>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100452 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800453 };
454
Chen-Yu Tsaif0b55842018-01-17 16:46:48 +0800455 cci: cci@1c90000 {
456 compatible = "arm,cci-400";
457 #address-cells = <1>;
458 #size-cells = <1>;
459 reg = <0x01c90000 0x1000>;
460 ranges = <0x0 0x01c90000 0x10000>;
461
462 cci_control0: slave-if@4000 {
463 compatible = "arm,cci-400-ctrl-if";
464 interface-type = "ace";
465 reg = <0x4000 0x1000>;
466 };
467
468 cci_control1: slave-if@5000 {
469 compatible = "arm,cci-400-ctrl-if";
470 interface-type = "ace";
471 reg = <0x5000 0x1000>;
472 };
473
474 pmu@9000 {
475 compatible = "arm,cci-400-pmu,r1";
476 reg = <0x9000 0x5000>;
477 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
478 <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
479 <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
480 <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
481 <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
482 };
483 };
484
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200485 de_clocks: clock@3000000 {
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800486 compatible = "allwinner,sun9i-a80-de-clks";
487 reg = <0x03000000 0x30>;
488 clocks = <&ccu CLK_DE>,
489 <&ccu CLK_SDRAM>,
490 <&ccu CLK_BUS_DE>;
491 clock-names = "mod",
492 "dram",
493 "bus";
494 resets = <&ccu RST_BUS_DE>;
495 #clock-cells = <1>;
Chen-Yu Tsaiac399a92014-10-20 22:10:30 +0800496 #reset-cells = <1>;
Chen-Yu Tsaiac399a92014-10-20 22:10:30 +0800497 };
498
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200499 ccu: clock@6000000 {
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800500 compatible = "allwinner,sun9i-a80-ccu";
501 reg = <0x06000000 0x800>;
502 clocks = <&osc24M>, <&osc32k>;
503 clock-names = "hosc", "losc";
504 #clock-cells = <1>;
Chen-Yu Tsaiac399a92014-10-20 22:10:30 +0800505 #reset-cells = <1>;
Chen-Yu Tsaiac399a92014-10-20 22:10:30 +0800506 };
507
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200508 timer@6000c00 {
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800509 compatible = "allwinner,sun4i-a10-timer";
510 reg = <0x06000c00 0xa0>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100511 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
512 <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
513 <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
514 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
515 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
516 <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800517
518 clocks = <&osc24M>;
519 };
520
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200521 wdt: watchdog@6000ca0 {
Chen-Yu Tsai6d6693c2015-05-27 00:54:16 +0800522 compatible = "allwinner,sun6i-a31-wdt";
523 reg = <0x06000ca0 0x20>;
524 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
525 };
526
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200527 pio: pinctrl@6000800 {
Maxime Ripard43d024d2014-10-28 22:41:28 +0100528 compatible = "allwinner,sun9i-a80-pinctrl";
529 reg = <0x06000800 0x400>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100530 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
531 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
532 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
533 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
534 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800535 clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
Maxime Ripardbe7bc6b2016-10-19 11:15:27 +0200536 clock-names = "apb", "hosc", "losc";
Maxime Ripard43d024d2014-10-28 22:41:28 +0100537 gpio-controller;
538 interrupt-controller;
Hans de Goede6d55d332015-10-15 16:28:45 +0200539 #interrupt-cells = <3>;
Maxime Ripard43d024d2014-10-28 22:41:28 +0100540 #size-cells = <0>;
541 #gpio-cells = <3>;
Maxime Ripard888366f2014-10-28 22:41:29 +0100542
Maxime Ripardd1778642017-10-05 12:49:50 +0200543 i2c3_pins: i2c3-pins {
Maxime Ripard1edcd362016-09-23 14:28:10 +0300544 pins = "PG10", "PG11";
545 function = "i2c3";
Chen-Yu Tsai6657a052014-10-31 11:05:47 +0800546 };
547
Maxime Ripardd1778642017-10-05 12:49:50 +0200548 mmc0_pins: mmc0-pins {
Maxime Ripard1edcd362016-09-23 14:28:10 +0300549 pins = "PF0", "PF1" ,"PF2", "PF3",
550 "PF4", "PF5";
551 function = "mmc0";
552 drive-strength = <30>;
Chen-Yu Tsai80ee72e2016-11-17 17:34:38 +0800553 bias-pull-up;
Chen-Yu Tsaicd23e2e2015-01-13 09:37:31 +0800554 };
555
Maxime Ripardd1778642017-10-05 12:49:50 +0200556 mmc1_pins: mmc1-pins {
Maxime Ripard1edcd362016-09-23 14:28:10 +0300557 pins = "PG0", "PG1" ,"PG2", "PG3",
Chen-Yu Tsai56b07302016-10-28 18:11:52 +0800558 "PG4", "PG5";
Maxime Ripard1edcd362016-09-23 14:28:10 +0300559 function = "mmc1";
560 drive-strength = <30>;
Chen-Yu Tsai80ee72e2016-11-17 17:34:38 +0800561 bias-pull-up;
Chen-Yu Tsai56b07302016-10-28 18:11:52 +0800562 };
563
Maxime Ripardd1778642017-10-05 12:49:50 +0200564 mmc2_8bit_pins: mmc2-8bit-pins {
Maxime Ripard1edcd362016-09-23 14:28:10 +0300565 pins = "PC6", "PC7", "PC8", "PC9",
566 "PC10", "PC11", "PC12",
567 "PC13", "PC14", "PC15",
568 "PC16";
569 function = "mmc2";
570 drive-strength = <30>;
Chen-Yu Tsai80ee72e2016-11-17 17:34:38 +0800571 bias-pull-up;
Maxime Ripard888366f2014-10-28 22:41:29 +0100572 };
Maxime Ripard43d024d2014-10-28 22:41:28 +0100573
Maxime Ripardd1778642017-10-05 12:49:50 +0200574 uart0_ph_pins: uart0-ph-pins {
Maxime Ripard1edcd362016-09-23 14:28:10 +0300575 pins = "PH12", "PH13";
576 function = "uart0";
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800577 };
Chen-Yu Tsai2a950b22014-10-31 11:05:50 +0800578
Maxime Ripardd1778642017-10-05 12:49:50 +0200579 uart4_pins: uart4-pins {
Maxime Ripard1edcd362016-09-23 14:28:10 +0300580 pins = "PG12", "PG13", "PG14", "PG15";
581 function = "uart4";
Chen-Yu Tsai2a950b22014-10-31 11:05:50 +0800582 };
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800583 };
584
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200585 uart0: serial@7000000 {
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800586 compatible = "snps,dw-apb-uart";
587 reg = <0x07000000 0x400>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100588 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800589 reg-shift = <2>;
590 reg-io-width = <4>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800591 clocks = <&ccu CLK_BUS_UART0>;
592 resets = <&ccu RST_BUS_UART0>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800593 status = "disabled";
594 };
595
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200596 uart1: serial@7000400 {
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800597 compatible = "snps,dw-apb-uart";
598 reg = <0x07000400 0x400>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100599 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800600 reg-shift = <2>;
601 reg-io-width = <4>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800602 clocks = <&ccu CLK_BUS_UART1>;
603 resets = <&ccu RST_BUS_UART1>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800604 status = "disabled";
605 };
606
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200607 uart2: serial@7000800 {
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800608 compatible = "snps,dw-apb-uart";
609 reg = <0x07000800 0x400>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100610 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800611 reg-shift = <2>;
612 reg-io-width = <4>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800613 clocks = <&ccu CLK_BUS_UART2>;
614 resets = <&ccu RST_BUS_UART2>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800615 status = "disabled";
616 };
617
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200618 uart3: serial@7000c00 {
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800619 compatible = "snps,dw-apb-uart";
620 reg = <0x07000c00 0x400>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100621 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800622 reg-shift = <2>;
623 reg-io-width = <4>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800624 clocks = <&ccu CLK_BUS_UART3>;
625 resets = <&ccu RST_BUS_UART3>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800626 status = "disabled";
627 };
628
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200629 uart4: serial@7001000 {
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800630 compatible = "snps,dw-apb-uart";
631 reg = <0x07001000 0x400>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100632 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800633 reg-shift = <2>;
634 reg-io-width = <4>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800635 clocks = <&ccu CLK_BUS_UART4>;
636 resets = <&ccu RST_BUS_UART4>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800637 status = "disabled";
638 };
639
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200640 uart5: serial@7001400 {
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800641 compatible = "snps,dw-apb-uart";
642 reg = <0x07001400 0x400>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100643 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800644 reg-shift = <2>;
645 reg-io-width = <4>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800646 clocks = <&ccu CLK_BUS_UART5>;
647 resets = <&ccu RST_BUS_UART5>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800648 status = "disabled";
649 };
650
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200651 i2c0: i2c@7002800 {
Chen-Yu Tsaie4aa7532014-10-31 11:05:46 +0800652 compatible = "allwinner,sun6i-a31-i2c";
653 reg = <0x07002800 0x400>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100654 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800655 clocks = <&ccu CLK_BUS_I2C0>;
656 resets = <&ccu RST_BUS_I2C0>;
Chen-Yu Tsaie4aa7532014-10-31 11:05:46 +0800657 status = "disabled";
658 #address-cells = <1>;
659 #size-cells = <0>;
660 };
661
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200662 i2c1: i2c@7002c00 {
Chen-Yu Tsaie4aa7532014-10-31 11:05:46 +0800663 compatible = "allwinner,sun6i-a31-i2c";
664 reg = <0x07002c00 0x400>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100665 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800666 clocks = <&ccu CLK_BUS_I2C1>;
667 resets = <&ccu RST_BUS_I2C1>;
Chen-Yu Tsaie4aa7532014-10-31 11:05:46 +0800668 status = "disabled";
669 #address-cells = <1>;
670 #size-cells = <0>;
671 };
672
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200673 i2c2: i2c@7003000 {
Chen-Yu Tsaie4aa7532014-10-31 11:05:46 +0800674 compatible = "allwinner,sun6i-a31-i2c";
675 reg = <0x07003000 0x400>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100676 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800677 clocks = <&ccu CLK_BUS_I2C2>;
678 resets = <&ccu RST_BUS_I2C2>;
Chen-Yu Tsaie4aa7532014-10-31 11:05:46 +0800679 status = "disabled";
680 #address-cells = <1>;
681 #size-cells = <0>;
682 };
683
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200684 i2c3: i2c@7003400 {
Chen-Yu Tsaie4aa7532014-10-31 11:05:46 +0800685 compatible = "allwinner,sun6i-a31-i2c";
686 reg = <0x07003400 0x400>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100687 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800688 clocks = <&ccu CLK_BUS_I2C3>;
689 resets = <&ccu RST_BUS_I2C3>;
Chen-Yu Tsaie4aa7532014-10-31 11:05:46 +0800690 status = "disabled";
691 #address-cells = <1>;
692 #size-cells = <0>;
693 };
694
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200695 i2c4: i2c@7003800 {
Chen-Yu Tsaie4aa7532014-10-31 11:05:46 +0800696 compatible = "allwinner,sun6i-a31-i2c";
697 reg = <0x07003800 0x400>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100698 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai64507fe2017-01-28 20:22:39 +0800699 clocks = <&ccu CLK_BUS_I2C4>;
700 resets = <&ccu RST_BUS_I2C4>;
Chen-Yu Tsaie4aa7532014-10-31 11:05:46 +0800701 status = "disabled";
702 #address-cells = <1>;
703 #size-cells = <0>;
704 };
705
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200706 r_wdt: watchdog@8001000 {
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800707 compatible = "allwinner,sun6i-a31-wdt";
708 reg = <0x08001000 0x20>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100709 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800710 };
711
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200712 apbs_rst: reset@80014b0 {
Chen-Yu Tsaiafd7d662015-11-29 11:03:09 +0800713 reg = <0x080014b0 0x4>;
714 compatible = "allwinner,sun6i-a31-clock-reset";
715 #reset-cells = <1>;
716 };
717
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200718 nmi_intc: interrupt-controller@80015a0 {
Chen-Yu Tsai67e1cbf2015-12-03 16:20:13 +0800719 compatible = "allwinner,sun9i-a80-nmi";
720 interrupt-controller;
721 #interrupt-cells = <2>;
722 reg = <0x080015a0 0xc>;
723 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
724 };
725
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200726 r_ir: ir@8002000 {
Chen-Yu Tsai1595b372015-12-01 13:47:22 +0800727 compatible = "allwinner,sun5i-a13-ir";
728 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
729 pinctrl-names = "default";
730 pinctrl-0 = <&r_ir_pins>;
731 clocks = <&apbs_gates 1>, <&r_ir_clk>;
732 clock-names = "apb", "ir";
733 resets = <&apbs_rst 1>;
734 reg = <0x08002000 0x40>;
735 status = "disabled";
736 };
737
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200738 r_uart: serial@8002800 {
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800739 compatible = "snps,dw-apb-uart";
740 reg = <0x08002800 0x400>;
Maxime Ripard19882b82014-12-16 22:59:58 +0100741 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800742 reg-shift = <2>;
743 reg-io-width = <4>;
Chen-Yu Tsaiafd7d662015-11-29 11:03:09 +0800744 clocks = <&apbs_gates 4>;
745 resets = <&apbs_rst 4>;
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800746 status = "disabled";
747 };
Chen-Yu Tsai1ac56a62015-12-01 13:47:20 +0800748
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200749 r_pio: pinctrl@8002c00 {
Chen-Yu Tsai1ac56a62015-12-01 13:47:20 +0800750 compatible = "allwinner,sun9i-a80-r-pinctrl";
751 reg = <0x08002c00 0x400>;
752 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
753 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
Maxime Ripardbe7bc6b2016-10-19 11:15:27 +0200754 clocks = <&apbs_gates 0>, <&osc24M>, <&osc32k>;
755 clock-names = "apb", "hosc", "losc";
Chen-Yu Tsai1ac56a62015-12-01 13:47:20 +0800756 resets = <&apbs_rst 0>;
757 gpio-controller;
758 interrupt-controller;
Chen-Yu Tsai06ad11b2016-08-27 15:59:50 +0800759 #interrupt-cells = <3>;
Chen-Yu Tsai1ac56a62015-12-01 13:47:20 +0800760 #gpio-cells = <3>;
Chen-Yu Tsai1595b372015-12-01 13:47:22 +0800761
Maxime Ripard00a70882017-10-05 09:17:40 +0200762 r_ir_pins: r-ir-pins {
Maxime Ripard1edcd362016-09-23 14:28:10 +0300763 pins = "PL6";
764 function = "s_cir_rx";
Chen-Yu Tsai1595b372015-12-01 13:47:22 +0800765 };
Chen-Yu Tsaied473eb2015-12-01 13:47:24 +0800766
Maxime Ripard00a70882017-10-05 09:17:40 +0200767 r_rsb_pins: r-rsb-pins {
Maxime Ripard1edcd362016-09-23 14:28:10 +0300768 pins = "PN0", "PN1";
769 function = "s_rsb";
770 drive-strength = <20>;
771 bias-pull-up;
Chen-Yu Tsaied473eb2015-12-01 13:47:24 +0800772 };
773 };
774
Maxime Ripard5841f6c2017-10-05 12:49:36 +0200775 r_rsb: i2c@8003400 {
Chen-Yu Tsaied473eb2015-12-01 13:47:24 +0800776 compatible = "allwinner,sun8i-a23-rsb";
777 reg = <0x08003400 0x400>;
778 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
779 clocks = <&apbs_gates 3>;
780 clock-frequency = <3000000>;
781 resets = <&apbs_rst 3>;
782 pinctrl-names = "default";
783 pinctrl-0 = <&r_rsb_pins>;
784 status = "disabled";
785 #address-cells = <1>;
786 #size-cells = <0>;
Chen-Yu Tsai1ac56a62015-12-01 13:47:20 +0800787 };
Chen-Yu Tsai4ab328f2014-10-08 21:02:53 +0800788 };
789};