14ab328f0SChen-Yu Tsai/* 24ab328f0SChen-Yu Tsai * Copyright 2014 Chen-Yu Tsai 34ab328f0SChen-Yu Tsai * 44ab328f0SChen-Yu Tsai * Chen-Yu Tsai <wens@csie.org> 54ab328f0SChen-Yu Tsai * 64ab328f0SChen-Yu Tsai * This file is dual-licensed: you can use it either under the terms 74ab328f0SChen-Yu Tsai * of the GPL or the X11 license, at your option. Note that this dual 84ab328f0SChen-Yu Tsai * licensing only applies to this file, and not this project as a 94ab328f0SChen-Yu Tsai * whole. 104ab328f0SChen-Yu Tsai * 11136d18a8SMaxime Ripard * a) This file is free software; you can redistribute it and/or 124ab328f0SChen-Yu Tsai * modify it under the terms of the GNU General Public License as 134ab328f0SChen-Yu Tsai * published by the Free Software Foundation; either version 2 of the 144ab328f0SChen-Yu Tsai * License, or (at your option) any later version. 154ab328f0SChen-Yu Tsai * 16136d18a8SMaxime Ripard * This file is distributed in the hope that it will be useful, 174ab328f0SChen-Yu Tsai * but WITHOUT ANY WARRANTY; without even the implied warranty of 184ab328f0SChen-Yu Tsai * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 194ab328f0SChen-Yu Tsai * GNU General Public License for more details. 204ab328f0SChen-Yu Tsai * 214ab328f0SChen-Yu Tsai * Or, alternatively, 224ab328f0SChen-Yu Tsai * 234ab328f0SChen-Yu Tsai * b) Permission is hereby granted, free of charge, to any person 244ab328f0SChen-Yu Tsai * obtaining a copy of this software and associated documentation 254ab328f0SChen-Yu Tsai * files (the "Software"), to deal in the Software without 264ab328f0SChen-Yu Tsai * restriction, including without limitation the rights to use, 274ab328f0SChen-Yu Tsai * copy, modify, merge, publish, distribute, sublicense, and/or 284ab328f0SChen-Yu Tsai * sell copies of the Software, and to permit persons to whom the 294ab328f0SChen-Yu Tsai * Software is furnished to do so, subject to the following 304ab328f0SChen-Yu Tsai * conditions: 314ab328f0SChen-Yu Tsai * 324ab328f0SChen-Yu Tsai * The above copyright notice and this permission notice shall be 334ab328f0SChen-Yu Tsai * included in all copies or substantial portions of the Software. 344ab328f0SChen-Yu Tsai * 354ab328f0SChen-Yu Tsai * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 364ab328f0SChen-Yu Tsai * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 374ab328f0SChen-Yu Tsai * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 384ab328f0SChen-Yu Tsai * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 394ab328f0SChen-Yu Tsai * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 404ab328f0SChen-Yu Tsai * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 414ab328f0SChen-Yu Tsai * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 424ab328f0SChen-Yu Tsai * OTHER DEALINGS IN THE SOFTWARE. 434ab328f0SChen-Yu Tsai */ 444ab328f0SChen-Yu Tsai 4519882b84SMaxime Ripard#include <dt-bindings/interrupt-controller/arm-gic.h> 4619882b84SMaxime Ripard 4764507fe3SChen-Yu Tsai#include <dt-bindings/clock/sun9i-a80-ccu.h> 4864507fe3SChen-Yu Tsai#include <dt-bindings/clock/sun9i-a80-de.h> 4964507fe3SChen-Yu Tsai#include <dt-bindings/clock/sun9i-a80-usb.h> 5064507fe3SChen-Yu Tsai#include <dt-bindings/reset/sun9i-a80-ccu.h> 5164507fe3SChen-Yu Tsai#include <dt-bindings/reset/sun9i-a80-de.h> 5264507fe3SChen-Yu Tsai#include <dt-bindings/reset/sun9i-a80-usb.h> 5364507fe3SChen-Yu Tsai 544ab328f0SChen-Yu Tsai/ { 5598dc89dbSMaxime Ripard #address-cells = <2>; 5698dc89dbSMaxime Ripard #size-cells = <2>; 574ab328f0SChen-Yu Tsai interrupt-parent = <&gic>; 584ab328f0SChen-Yu Tsai 596fa39a54SChen-Yu Tsai aliases { 606fa39a54SChen-Yu Tsai ethernet0 = &gmac; 616fa39a54SChen-Yu Tsai }; 626fa39a54SChen-Yu Tsai 634ab328f0SChen-Yu Tsai cpus { 644ab328f0SChen-Yu Tsai #address-cells = <1>; 654ab328f0SChen-Yu Tsai #size-cells = <0>; 664ab328f0SChen-Yu Tsai 674ab328f0SChen-Yu Tsai cpu0: cpu@0 { 684ab328f0SChen-Yu Tsai compatible = "arm,cortex-a7"; 694ab328f0SChen-Yu Tsai device_type = "cpu"; 70f0b55841SChen-Yu Tsai cci-control-port = <&cci_control0>; 71f0b55841SChen-Yu Tsai clock-frequency = <12000000>; 72651f97f5SChen-Yu Tsai enable-method = "allwinner,sun9i-a80-smp"; 734ab328f0SChen-Yu Tsai reg = <0x0>; 744ab328f0SChen-Yu Tsai }; 754ab328f0SChen-Yu Tsai 764ab328f0SChen-Yu Tsai cpu1: cpu@1 { 774ab328f0SChen-Yu Tsai compatible = "arm,cortex-a7"; 784ab328f0SChen-Yu Tsai device_type = "cpu"; 79f0b55841SChen-Yu Tsai cci-control-port = <&cci_control0>; 80f0b55841SChen-Yu Tsai clock-frequency = <12000000>; 81651f97f5SChen-Yu Tsai enable-method = "allwinner,sun9i-a80-smp"; 824ab328f0SChen-Yu Tsai reg = <0x1>; 834ab328f0SChen-Yu Tsai }; 844ab328f0SChen-Yu Tsai 854ab328f0SChen-Yu Tsai cpu2: cpu@2 { 864ab328f0SChen-Yu Tsai compatible = "arm,cortex-a7"; 874ab328f0SChen-Yu Tsai device_type = "cpu"; 88f0b55841SChen-Yu Tsai cci-control-port = <&cci_control0>; 89f0b55841SChen-Yu Tsai clock-frequency = <12000000>; 90651f97f5SChen-Yu Tsai enable-method = "allwinner,sun9i-a80-smp"; 914ab328f0SChen-Yu Tsai reg = <0x2>; 924ab328f0SChen-Yu Tsai }; 934ab328f0SChen-Yu Tsai 944ab328f0SChen-Yu Tsai cpu3: cpu@3 { 954ab328f0SChen-Yu Tsai compatible = "arm,cortex-a7"; 964ab328f0SChen-Yu Tsai device_type = "cpu"; 97f0b55841SChen-Yu Tsai cci-control-port = <&cci_control0>; 98f0b55841SChen-Yu Tsai clock-frequency = <12000000>; 99651f97f5SChen-Yu Tsai enable-method = "allwinner,sun9i-a80-smp"; 1004ab328f0SChen-Yu Tsai reg = <0x3>; 1014ab328f0SChen-Yu Tsai }; 1024ab328f0SChen-Yu Tsai 1034ab328f0SChen-Yu Tsai cpu4: cpu@100 { 1044ab328f0SChen-Yu Tsai compatible = "arm,cortex-a15"; 1054ab328f0SChen-Yu Tsai device_type = "cpu"; 106f0b55841SChen-Yu Tsai cci-control-port = <&cci_control1>; 107f0b55841SChen-Yu Tsai clock-frequency = <18000000>; 108651f97f5SChen-Yu Tsai enable-method = "allwinner,sun9i-a80-smp"; 1094ab328f0SChen-Yu Tsai reg = <0x100>; 1104ab328f0SChen-Yu Tsai }; 1114ab328f0SChen-Yu Tsai 1124ab328f0SChen-Yu Tsai cpu5: cpu@101 { 1134ab328f0SChen-Yu Tsai compatible = "arm,cortex-a15"; 1144ab328f0SChen-Yu Tsai device_type = "cpu"; 115f0b55841SChen-Yu Tsai cci-control-port = <&cci_control1>; 116f0b55841SChen-Yu Tsai clock-frequency = <18000000>; 117651f97f5SChen-Yu Tsai enable-method = "allwinner,sun9i-a80-smp"; 1184ab328f0SChen-Yu Tsai reg = <0x101>; 1194ab328f0SChen-Yu Tsai }; 1204ab328f0SChen-Yu Tsai 1214ab328f0SChen-Yu Tsai cpu6: cpu@102 { 1224ab328f0SChen-Yu Tsai compatible = "arm,cortex-a15"; 1234ab328f0SChen-Yu Tsai device_type = "cpu"; 124f0b55841SChen-Yu Tsai cci-control-port = <&cci_control1>; 125f0b55841SChen-Yu Tsai clock-frequency = <18000000>; 126651f97f5SChen-Yu Tsai enable-method = "allwinner,sun9i-a80-smp"; 1274ab328f0SChen-Yu Tsai reg = <0x102>; 1284ab328f0SChen-Yu Tsai }; 1294ab328f0SChen-Yu Tsai 1304ab328f0SChen-Yu Tsai cpu7: cpu@103 { 1314ab328f0SChen-Yu Tsai compatible = "arm,cortex-a15"; 1324ab328f0SChen-Yu Tsai device_type = "cpu"; 133f0b55841SChen-Yu Tsai cci-control-port = <&cci_control1>; 134f0b55841SChen-Yu Tsai clock-frequency = <18000000>; 135651f97f5SChen-Yu Tsai enable-method = "allwinner,sun9i-a80-smp"; 1364ab328f0SChen-Yu Tsai reg = <0x103>; 1374ab328f0SChen-Yu Tsai }; 1384ab328f0SChen-Yu Tsai }; 1394ab328f0SChen-Yu Tsai 14051e9f5ffSChen-Yu Tsai timer { 14151e9f5ffSChen-Yu Tsai compatible = "arm,armv7-timer"; 14251e9f5ffSChen-Yu Tsai interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 14351e9f5ffSChen-Yu Tsai <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 14451e9f5ffSChen-Yu Tsai <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 14551e9f5ffSChen-Yu Tsai <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 14651e9f5ffSChen-Yu Tsai clock-frequency = <24000000>; 14751e9f5ffSChen-Yu Tsai arm,cpu-registers-not-fw-configured; 14851e9f5ffSChen-Yu Tsai }; 14951e9f5ffSChen-Yu Tsai 1504ab328f0SChen-Yu Tsai clocks { 1514ab328f0SChen-Yu Tsai #address-cells = <1>; 1524ab328f0SChen-Yu Tsai #size-cells = <1>; 1534ab328f0SChen-Yu Tsai /* 1544ab328f0SChen-Yu Tsai * map 64 bit address range down to 32 bits, 1554ab328f0SChen-Yu Tsai * as the peripherals are all under 512MB. 1564ab328f0SChen-Yu Tsai */ 1574ab328f0SChen-Yu Tsai ranges = <0 0 0 0x20000000>; 1584ab328f0SChen-Yu Tsai 159d255abd6SChen-Yu Tsai /* 160d255abd6SChen-Yu Tsai * This clock is actually configurable from the PRCM address 161d255abd6SChen-Yu Tsai * space. The external 24M oscillator can be turned off, and 162d255abd6SChen-Yu Tsai * the clock switched to an internal 16M RC oscillator. Under 163d255abd6SChen-Yu Tsai * normal operation there's no reason to do this, and the 164d255abd6SChen-Yu Tsai * default is to use the external good one, so just model this 165d255abd6SChen-Yu Tsai * as a fixed clock. Also it is not entirely clear if the 166d255abd6SChen-Yu Tsai * osc24M mux in the PRCM affects the entire clock tree, which 167d255abd6SChen-Yu Tsai * would also throw all the PLL clock rates off, or just the 168d255abd6SChen-Yu Tsai * downstream clocks in the PRCM. 169d255abd6SChen-Yu Tsai */ 17000a7088fSMaxime Ripard osc24M: clk-24M { 1714ab328f0SChen-Yu Tsai #clock-cells = <0>; 1724ab328f0SChen-Yu Tsai compatible = "fixed-clock"; 1734ab328f0SChen-Yu Tsai clock-frequency = <24000000>; 1744ab328f0SChen-Yu Tsai clock-output-names = "osc24M"; 1754ab328f0SChen-Yu Tsai }; 1764ab328f0SChen-Yu Tsai 177d255abd6SChen-Yu Tsai /* 178d255abd6SChen-Yu Tsai * The 32k clock is from an external source, normally the 17916266987SChen-Yu Tsai * AC100 codec/RTC chip. This serves as a placeholder for 18016266987SChen-Yu Tsai * board dts files to specify the source. 181d255abd6SChen-Yu Tsai */ 18200a7088fSMaxime Ripard osc32k: clk-32k { 1834ab328f0SChen-Yu Tsai #clock-cells = <0>; 18416266987SChen-Yu Tsai compatible = "fixed-factor-clock"; 18516266987SChen-Yu Tsai clock-div = <1>; 18616266987SChen-Yu Tsai clock-mult = <1>; 1874ab328f0SChen-Yu Tsai clock-output-names = "osc32k"; 1884ab328f0SChen-Yu Tsai }; 189ac399a97SChen-Yu Tsai 190e78adcfeSChen-Yu Tsai /* 191e78adcfeSChen-Yu Tsai * The following two are dummy clocks, placeholders 192e78adcfeSChen-Yu Tsai * used in the gmac_tx clock. The gmac driver will 193e78adcfeSChen-Yu Tsai * choose one parent depending on the PHY interface 194e78adcfeSChen-Yu Tsai * mode, using clk_set_rate auto-reparenting. 195e78adcfeSChen-Yu Tsai * 196e78adcfeSChen-Yu Tsai * The actual TX clock rate is not controlled by the 197e78adcfeSChen-Yu Tsai * gmac_tx clock. 198e78adcfeSChen-Yu Tsai */ 1990f47ef3fSKrzysztof Kozlowski mii_phy_tx_clk: mii-phy-tx-clk { 200e78adcfeSChen-Yu Tsai #clock-cells = <0>; 201e78adcfeSChen-Yu Tsai compatible = "fixed-clock"; 202e78adcfeSChen-Yu Tsai clock-frequency = <25000000>; 203e78adcfeSChen-Yu Tsai clock-output-names = "mii_phy_tx"; 204e78adcfeSChen-Yu Tsai }; 205e78adcfeSChen-Yu Tsai 2060f47ef3fSKrzysztof Kozlowski gmac_int_tx_clk: gmac-int-tx-clk { 207e78adcfeSChen-Yu Tsai #clock-cells = <0>; 208e78adcfeSChen-Yu Tsai compatible = "fixed-clock"; 209e78adcfeSChen-Yu Tsai clock-frequency = <125000000>; 210e78adcfeSChen-Yu Tsai clock-output-names = "gmac_int_tx"; 211e78adcfeSChen-Yu Tsai }; 212e78adcfeSChen-Yu Tsai 213e78adcfeSChen-Yu Tsai gmac_tx_clk: clk@800030 { 214e78adcfeSChen-Yu Tsai #clock-cells = <0>; 215e78adcfeSChen-Yu Tsai compatible = "allwinner,sun7i-a20-gmac-clk"; 216e78adcfeSChen-Yu Tsai reg = <0x00800030 0x4>; 217e78adcfeSChen-Yu Tsai clocks = <&mii_phy_tx_clk>, <&gmac_int_tx_clk>; 218e78adcfeSChen-Yu Tsai clock-output-names = "gmac_tx"; 219e78adcfeSChen-Yu Tsai }; 220e78adcfeSChen-Yu Tsai 2215841f6c0SMaxime Ripard cpus_clk: clk@8001410 { 222afd7d66cSChen-Yu Tsai compatible = "allwinner,sun9i-a80-cpus-clk"; 223afd7d66cSChen-Yu Tsai reg = <0x08001410 0x4>; 224afd7d66cSChen-Yu Tsai #clock-cells = <0>; 22564507fe3SChen-Yu Tsai clocks = <&osc32k>, <&osc24M>, 22664507fe3SChen-Yu Tsai <&ccu CLK_PLL_PERIPH0>, 22764507fe3SChen-Yu Tsai <&ccu CLK_PLL_AUDIO>; 228afd7d66cSChen-Yu Tsai clock-output-names = "cpus"; 229afd7d66cSChen-Yu Tsai }; 230afd7d66cSChen-Yu Tsai 23100a7088fSMaxime Ripard ahbs: clk-ahbs { 232afd7d66cSChen-Yu Tsai compatible = "fixed-factor-clock"; 233afd7d66cSChen-Yu Tsai #clock-cells = <0>; 234afd7d66cSChen-Yu Tsai clock-div = <1>; 235afd7d66cSChen-Yu Tsai clock-mult = <1>; 236afd7d66cSChen-Yu Tsai clocks = <&cpus_clk>; 237afd7d66cSChen-Yu Tsai clock-output-names = "ahbs"; 238afd7d66cSChen-Yu Tsai }; 239afd7d66cSChen-Yu Tsai 2405841f6c0SMaxime Ripard apbs: clk@800141c { 241afd7d66cSChen-Yu Tsai compatible = "allwinner,sun8i-a23-apb0-clk"; 242afd7d66cSChen-Yu Tsai reg = <0x0800141c 0x4>; 243afd7d66cSChen-Yu Tsai #clock-cells = <0>; 244afd7d66cSChen-Yu Tsai clocks = <&ahbs>; 245afd7d66cSChen-Yu Tsai clock-output-names = "apbs"; 246afd7d66cSChen-Yu Tsai }; 247afd7d66cSChen-Yu Tsai 2485841f6c0SMaxime Ripard apbs_gates: clk@8001428 { 249afd7d66cSChen-Yu Tsai compatible = "allwinner,sun9i-a80-apbs-gates-clk"; 250afd7d66cSChen-Yu Tsai reg = <0x08001428 0x4>; 251afd7d66cSChen-Yu Tsai #clock-cells = <1>; 252afd7d66cSChen-Yu Tsai clocks = <&apbs>; 253afd7d66cSChen-Yu Tsai clock-indices = <0>, <1>, 254afd7d66cSChen-Yu Tsai <2>, <3>, 255afd7d66cSChen-Yu Tsai <4>, <5>, 256afd7d66cSChen-Yu Tsai <6>, <7>, 257afd7d66cSChen-Yu Tsai <12>, <13>, 258afd7d66cSChen-Yu Tsai <16>, <17>, 259afd7d66cSChen-Yu Tsai <18>, <20>; 260afd7d66cSChen-Yu Tsai clock-output-names = "apbs_pio", "apbs_ir", 261afd7d66cSChen-Yu Tsai "apbs_timer", "apbs_rsb", 262afd7d66cSChen-Yu Tsai "apbs_uart", "apbs_1wire", 263afd7d66cSChen-Yu Tsai "apbs_i2c0", "apbs_i2c1", 264afd7d66cSChen-Yu Tsai "apbs_ps2_0", "apbs_ps2_1", 265afd7d66cSChen-Yu Tsai "apbs_dma", "apbs_i2s0", 266afd7d66cSChen-Yu Tsai "apbs_i2s1", "apbs_twd"; 267afd7d66cSChen-Yu Tsai }; 268afd7d66cSChen-Yu Tsai 2695841f6c0SMaxime Ripard r_1wire_clk: clk@8001450 { 270afd7d66cSChen-Yu Tsai reg = <0x08001450 0x4>; 271afd7d66cSChen-Yu Tsai #clock-cells = <0>; 272afd7d66cSChen-Yu Tsai compatible = "allwinner,sun4i-a10-mod0-clk"; 273afd7d66cSChen-Yu Tsai clocks = <&osc32k>, <&osc24M>; 274afd7d66cSChen-Yu Tsai clock-output-names = "r_1wire"; 275afd7d66cSChen-Yu Tsai }; 276afd7d66cSChen-Yu Tsai 2775841f6c0SMaxime Ripard r_ir_clk: clk@8001454 { 278afd7d66cSChen-Yu Tsai reg = <0x08001454 0x4>; 279afd7d66cSChen-Yu Tsai #clock-cells = <0>; 280afd7d66cSChen-Yu Tsai compatible = "allwinner,sun4i-a10-mod0-clk"; 281afd7d66cSChen-Yu Tsai clocks = <&osc32k>, <&osc24M>; 282afd7d66cSChen-Yu Tsai clock-output-names = "r_ir"; 283afd7d66cSChen-Yu Tsai }; 2844ab328f0SChen-Yu Tsai }; 2854ab328f0SChen-Yu Tsai 286f1317774SChen-Yu Tsai de: display-engine { 287f1317774SChen-Yu Tsai compatible = "allwinner,sun9i-a80-display-engine"; 288f1317774SChen-Yu Tsai allwinner,pipelines = <&fe0>, <&fe1>; 289f1317774SChen-Yu Tsai status = "disabled"; 290f1317774SChen-Yu Tsai }; 291f1317774SChen-Yu Tsai 292927489b1SMaxime Ripard soc@20000 { 2934ab328f0SChen-Yu Tsai compatible = "simple-bus"; 2944ab328f0SChen-Yu Tsai #address-cells = <1>; 2954ab328f0SChen-Yu Tsai #size-cells = <1>; 2964ab328f0SChen-Yu Tsai /* 2974ab328f0SChen-Yu Tsai * map 64 bit address range down to 32 bits, 2984ab328f0SChen-Yu Tsai * as the peripherals are all under 512MB. 2994ab328f0SChen-Yu Tsai */ 3004ab328f0SChen-Yu Tsai ranges = <0 0 0 0x20000000>; 3014ab328f0SChen-Yu Tsai 30243f624aaSChen-Yu Tsai sram_b: sram@20000 { 30343f624aaSChen-Yu Tsai /* 256 KiB secure SRAM at 0x20000 */ 30443f624aaSChen-Yu Tsai compatible = "mmio-sram"; 30543f624aaSChen-Yu Tsai reg = <0x00020000 0x40000>; 30643f624aaSChen-Yu Tsai 30743f624aaSChen-Yu Tsai #address-cells = <1>; 30843f624aaSChen-Yu Tsai #size-cells = <1>; 30943f624aaSChen-Yu Tsai ranges = <0 0x00020000 0x40000>; 31043f624aaSChen-Yu Tsai 31143f624aaSChen-Yu Tsai smp-sram@1000 { 31243f624aaSChen-Yu Tsai /* 31343f624aaSChen-Yu Tsai * This is checked by BROM to determine if 31443f624aaSChen-Yu Tsai * cpu0 should jump to SMP entry vector 31543f624aaSChen-Yu Tsai */ 31643f624aaSChen-Yu Tsai compatible = "allwinner,sun9i-a80-smp-sram"; 31743f624aaSChen-Yu Tsai reg = <0x1000 0x8>; 31843f624aaSChen-Yu Tsai }; 31943f624aaSChen-Yu Tsai }; 32043f624aaSChen-Yu Tsai 3216fa39a54SChen-Yu Tsai gmac: ethernet@830000 { 3226fa39a54SChen-Yu Tsai compatible = "allwinner,sun7i-a20-gmac"; 3236fa39a54SChen-Yu Tsai reg = <0x00830000 0x1054>; 3246fa39a54SChen-Yu Tsai interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 3256fa39a54SChen-Yu Tsai interrupt-names = "macirq"; 3266fa39a54SChen-Yu Tsai clocks = <&ccu CLK_BUS_GMAC>, <&gmac_tx_clk>; 3276fa39a54SChen-Yu Tsai clock-names = "stmmaceth", "allwinner_gmac_tx"; 3286fa39a54SChen-Yu Tsai resets = <&ccu RST_BUS_GMAC>; 3296fa39a54SChen-Yu Tsai reset-names = "stmmaceth"; 3306fa39a54SChen-Yu Tsai snps,pbl = <2>; 3316fa39a54SChen-Yu Tsai snps,fixed-burst; 3326fa39a54SChen-Yu Tsai snps,force_sf_dma_mode; 3336fa39a54SChen-Yu Tsai status = "disabled"; 334968f2c91SChen-Yu Tsai 335968f2c91SChen-Yu Tsai mdio: mdio { 336968f2c91SChen-Yu Tsai compatible = "snps,dwmac-mdio"; 3376fa39a54SChen-Yu Tsai #address-cells = <1>; 3386fa39a54SChen-Yu Tsai #size-cells = <0>; 3396fa39a54SChen-Yu Tsai }; 340968f2c91SChen-Yu Tsai }; 3416fa39a54SChen-Yu Tsai 3425841f6c0SMaxime Ripard ehci0: usb@a00000 { 34370472163SChen-Yu Tsai compatible = "allwinner,sun9i-a80-ehci", "generic-ehci"; 34470472163SChen-Yu Tsai reg = <0x00a00000 0x100>; 34570472163SChen-Yu Tsai interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 34664507fe3SChen-Yu Tsai clocks = <&usb_clocks CLK_BUS_HCI0>; 34764507fe3SChen-Yu Tsai resets = <&usb_clocks RST_USB0_HCI>; 34870472163SChen-Yu Tsai phys = <&usbphy1>; 349e6064cf4SMaxime Ripard phy-names = "usb"; 35070472163SChen-Yu Tsai status = "disabled"; 35170472163SChen-Yu Tsai }; 35270472163SChen-Yu Tsai 3535841f6c0SMaxime Ripard ohci0: usb@a00400 { 35470472163SChen-Yu Tsai compatible = "allwinner,sun9i-a80-ohci", "generic-ohci"; 35570472163SChen-Yu Tsai reg = <0x00a00400 0x100>; 35670472163SChen-Yu Tsai interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 35764507fe3SChen-Yu Tsai clocks = <&usb_clocks CLK_BUS_HCI0>, 35864507fe3SChen-Yu Tsai <&usb_clocks CLK_USB_OHCI0>; 35964507fe3SChen-Yu Tsai resets = <&usb_clocks RST_USB0_HCI>; 36070472163SChen-Yu Tsai phys = <&usbphy1>; 361e6064cf4SMaxime Ripard phy-names = "usb"; 36270472163SChen-Yu Tsai status = "disabled"; 36370472163SChen-Yu Tsai }; 36470472163SChen-Yu Tsai 3655841f6c0SMaxime Ripard usbphy1: phy@a00800 { 3661af5d192SChen-Yu Tsai compatible = "allwinner,sun9i-a80-usb-phy"; 3671af5d192SChen-Yu Tsai reg = <0x00a00800 0x4>; 36864507fe3SChen-Yu Tsai clocks = <&usb_clocks CLK_USB0_PHY>; 3691af5d192SChen-Yu Tsai clock-names = "phy"; 37064507fe3SChen-Yu Tsai resets = <&usb_clocks RST_USB0_PHY>; 3711af5d192SChen-Yu Tsai reset-names = "phy"; 3721af5d192SChen-Yu Tsai status = "disabled"; 3731af5d192SChen-Yu Tsai #phy-cells = <0>; 3741af5d192SChen-Yu Tsai }; 3751af5d192SChen-Yu Tsai 3765841f6c0SMaxime Ripard ehci1: usb@a01000 { 37770472163SChen-Yu Tsai compatible = "allwinner,sun9i-a80-ehci", "generic-ehci"; 37870472163SChen-Yu Tsai reg = <0x00a01000 0x100>; 37970472163SChen-Yu Tsai interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 38064507fe3SChen-Yu Tsai clocks = <&usb_clocks CLK_BUS_HCI1>; 38164507fe3SChen-Yu Tsai resets = <&usb_clocks RST_USB1_HCI>; 38270472163SChen-Yu Tsai phys = <&usbphy2>; 383e6064cf4SMaxime Ripard phy-names = "usb"; 38470472163SChen-Yu Tsai status = "disabled"; 38570472163SChen-Yu Tsai }; 38670472163SChen-Yu Tsai 3875841f6c0SMaxime Ripard usbphy2: phy@a01800 { 3881af5d192SChen-Yu Tsai compatible = "allwinner,sun9i-a80-usb-phy"; 3891af5d192SChen-Yu Tsai reg = <0x00a01800 0x4>; 39096940819SMaxime Ripard clocks = <&usb_clocks CLK_USB1_PHY>, 39164507fe3SChen-Yu Tsai <&usb_clocks CLK_USB_HSIC>, 39296940819SMaxime Ripard <&usb_clocks CLK_USB1_HSIC>; 39396940819SMaxime Ripard clock-names = "phy", 39464507fe3SChen-Yu Tsai "hsic_12M", 39596940819SMaxime Ripard "hsic_480M"; 39696940819SMaxime Ripard resets = <&usb_clocks RST_USB1_PHY>, 39796940819SMaxime Ripard <&usb_clocks RST_USB1_HSIC>; 39896940819SMaxime Ripard reset-names = "phy", 39996940819SMaxime Ripard "hsic"; 4001af5d192SChen-Yu Tsai status = "disabled"; 4011af5d192SChen-Yu Tsai #phy-cells = <0>; 4021af5d192SChen-Yu Tsai /* usb1 is always used with HSIC */ 4031af5d192SChen-Yu Tsai phy_type = "hsic"; 4041af5d192SChen-Yu Tsai }; 4051af5d192SChen-Yu Tsai 4065841f6c0SMaxime Ripard ehci2: usb@a02000 { 40770472163SChen-Yu Tsai compatible = "allwinner,sun9i-a80-ehci", "generic-ehci"; 40870472163SChen-Yu Tsai reg = <0x00a02000 0x100>; 40970472163SChen-Yu Tsai interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 41064507fe3SChen-Yu Tsai clocks = <&usb_clocks CLK_BUS_HCI2>; 41164507fe3SChen-Yu Tsai resets = <&usb_clocks RST_USB2_HCI>; 41270472163SChen-Yu Tsai phys = <&usbphy3>; 413e6064cf4SMaxime Ripard phy-names = "usb"; 41470472163SChen-Yu Tsai status = "disabled"; 41570472163SChen-Yu Tsai }; 41670472163SChen-Yu Tsai 4175841f6c0SMaxime Ripard ohci2: usb@a02400 { 41870472163SChen-Yu Tsai compatible = "allwinner,sun9i-a80-ohci", "generic-ohci"; 41970472163SChen-Yu Tsai reg = <0x00a02400 0x100>; 42070472163SChen-Yu Tsai interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 42164507fe3SChen-Yu Tsai clocks = <&usb_clocks CLK_BUS_HCI2>, 42264507fe3SChen-Yu Tsai <&usb_clocks CLK_USB_OHCI2>; 42364507fe3SChen-Yu Tsai resets = <&usb_clocks RST_USB2_HCI>; 42470472163SChen-Yu Tsai phys = <&usbphy3>; 425e6064cf4SMaxime Ripard phy-names = "usb"; 42670472163SChen-Yu Tsai status = "disabled"; 42770472163SChen-Yu Tsai }; 42870472163SChen-Yu Tsai 4295841f6c0SMaxime Ripard usbphy3: phy@a02800 { 4301af5d192SChen-Yu Tsai compatible = "allwinner,sun9i-a80-usb-phy"; 4311af5d192SChen-Yu Tsai reg = <0x00a02800 0x4>; 43296940819SMaxime Ripard clocks = <&usb_clocks CLK_USB2_PHY>, 43364507fe3SChen-Yu Tsai <&usb_clocks CLK_USB_HSIC>, 43496940819SMaxime Ripard <&usb_clocks CLK_USB2_HSIC>; 43596940819SMaxime Ripard clock-names = "phy", 43664507fe3SChen-Yu Tsai "hsic_12M", 43796940819SMaxime Ripard "hsic_480M"; 43896940819SMaxime Ripard resets = <&usb_clocks RST_USB2_PHY>, 43996940819SMaxime Ripard <&usb_clocks RST_USB2_HSIC>; 44096940819SMaxime Ripard reset-names = "phy", 44196940819SMaxime Ripard "hsic"; 4421af5d192SChen-Yu Tsai status = "disabled"; 4431af5d192SChen-Yu Tsai #phy-cells = <0>; 4441af5d192SChen-Yu Tsai }; 4451af5d192SChen-Yu Tsai 4465841f6c0SMaxime Ripard usb_clocks: clock@a08000 { 44764507fe3SChen-Yu Tsai compatible = "allwinner,sun9i-a80-usb-clks"; 44864507fe3SChen-Yu Tsai reg = <0x00a08000 0x8>; 44964507fe3SChen-Yu Tsai clocks = <&ccu CLK_BUS_USB>, <&osc24M>; 45064507fe3SChen-Yu Tsai clock-names = "bus", "hosc"; 45164507fe3SChen-Yu Tsai #clock-cells = <1>; 45264507fe3SChen-Yu Tsai #reset-cells = <1>; 45364507fe3SChen-Yu Tsai }; 45464507fe3SChen-Yu Tsai 45561cf3ed0SChen-Yu Tsai cpucfg@1700000 { 45661cf3ed0SChen-Yu Tsai compatible = "allwinner,sun9i-a80-cpucfg"; 45761cf3ed0SChen-Yu Tsai reg = <0x01700000 0x100>; 45861cf3ed0SChen-Yu Tsai }; 45961cf3ed0SChen-Yu Tsai 460edabfce6SCorentin Labbe crypto: crypto@1c02000 { 461edabfce6SCorentin Labbe compatible = "allwinner,sun9i-a80-crypto"; 462edabfce6SCorentin Labbe reg = <0x01c02000 0x1000>; 463edabfce6SCorentin Labbe interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 464edabfce6SCorentin Labbe resets = <&ccu RST_BUS_SS>; 465edabfce6SCorentin Labbe clocks = <&ccu CLK_BUS_SS>, <&ccu CLK_SS>; 466edabfce6SCorentin Labbe clock-names = "bus", "mod"; 467edabfce6SCorentin Labbe }; 468edabfce6SCorentin Labbe 4695841f6c0SMaxime Ripard mmc0: mmc@1c0f000 { 4703a952213SChen-Yu Tsai compatible = "allwinner,sun9i-a80-mmc"; 4712f6941cdSChen-Yu Tsai reg = <0x01c0f000 0x1000>; 47264507fe3SChen-Yu Tsai clocks = <&mmc_config_clk 0>, <&ccu CLK_MMC0>, 47364507fe3SChen-Yu Tsai <&ccu CLK_MMC0_OUTPUT>, 47464507fe3SChen-Yu Tsai <&ccu CLK_MMC0_SAMPLE>; 4752f6941cdSChen-Yu Tsai clock-names = "ahb", "mmc", "output", "sample"; 4762f6941cdSChen-Yu Tsai resets = <&mmc_config_clk 0>; 4772f6941cdSChen-Yu Tsai reset-names = "ahb"; 4782f6941cdSChen-Yu Tsai interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 4792f6941cdSChen-Yu Tsai status = "disabled"; 4804c1bb9c3SHans de Goede #address-cells = <1>; 4814c1bb9c3SHans de Goede #size-cells = <0>; 4822f6941cdSChen-Yu Tsai }; 4832f6941cdSChen-Yu Tsai 4845841f6c0SMaxime Ripard mmc1: mmc@1c10000 { 4853a952213SChen-Yu Tsai compatible = "allwinner,sun9i-a80-mmc"; 4862f6941cdSChen-Yu Tsai reg = <0x01c10000 0x1000>; 48764507fe3SChen-Yu Tsai clocks = <&mmc_config_clk 1>, <&ccu CLK_MMC1>, 48864507fe3SChen-Yu Tsai <&ccu CLK_MMC1_OUTPUT>, 48964507fe3SChen-Yu Tsai <&ccu CLK_MMC1_SAMPLE>; 4902f6941cdSChen-Yu Tsai clock-names = "ahb", "mmc", "output", "sample"; 4912f6941cdSChen-Yu Tsai resets = <&mmc_config_clk 1>; 4922f6941cdSChen-Yu Tsai reset-names = "ahb"; 4932f6941cdSChen-Yu Tsai interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 4942f6941cdSChen-Yu Tsai status = "disabled"; 4954c1bb9c3SHans de Goede #address-cells = <1>; 4964c1bb9c3SHans de Goede #size-cells = <0>; 4972f6941cdSChen-Yu Tsai }; 4982f6941cdSChen-Yu Tsai 4995841f6c0SMaxime Ripard mmc2: mmc@1c11000 { 5003a952213SChen-Yu Tsai compatible = "allwinner,sun9i-a80-mmc"; 5012f6941cdSChen-Yu Tsai reg = <0x01c11000 0x1000>; 50264507fe3SChen-Yu Tsai clocks = <&mmc_config_clk 2>, <&ccu CLK_MMC2>, 50364507fe3SChen-Yu Tsai <&ccu CLK_MMC2_OUTPUT>, 50464507fe3SChen-Yu Tsai <&ccu CLK_MMC2_SAMPLE>; 5052f6941cdSChen-Yu Tsai clock-names = "ahb", "mmc", "output", "sample"; 5062f6941cdSChen-Yu Tsai resets = <&mmc_config_clk 2>; 5072f6941cdSChen-Yu Tsai reset-names = "ahb"; 5082f6941cdSChen-Yu Tsai interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 5092f6941cdSChen-Yu Tsai status = "disabled"; 5104c1bb9c3SHans de Goede #address-cells = <1>; 5114c1bb9c3SHans de Goede #size-cells = <0>; 5122f6941cdSChen-Yu Tsai }; 5132f6941cdSChen-Yu Tsai 5145841f6c0SMaxime Ripard mmc3: mmc@1c12000 { 5153a952213SChen-Yu Tsai compatible = "allwinner,sun9i-a80-mmc"; 5162f6941cdSChen-Yu Tsai reg = <0x01c12000 0x1000>; 51764507fe3SChen-Yu Tsai clocks = <&mmc_config_clk 3>, <&ccu CLK_MMC3>, 51864507fe3SChen-Yu Tsai <&ccu CLK_MMC3_OUTPUT>, 51964507fe3SChen-Yu Tsai <&ccu CLK_MMC3_SAMPLE>; 5202f6941cdSChen-Yu Tsai clock-names = "ahb", "mmc", "output", "sample"; 5212f6941cdSChen-Yu Tsai resets = <&mmc_config_clk 3>; 5222f6941cdSChen-Yu Tsai reset-names = "ahb"; 5232f6941cdSChen-Yu Tsai interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 5242f6941cdSChen-Yu Tsai status = "disabled"; 5254c1bb9c3SHans de Goede #address-cells = <1>; 5264c1bb9c3SHans de Goede #size-cells = <0>; 5272f6941cdSChen-Yu Tsai }; 5282f6941cdSChen-Yu Tsai 5295841f6c0SMaxime Ripard mmc_config_clk: clk@1c13000 { 5309c56f3f3SChen-Yu Tsai compatible = "allwinner,sun9i-a80-mmc-config-clk"; 5319c56f3f3SChen-Yu Tsai reg = <0x01c13000 0x10>; 53264507fe3SChen-Yu Tsai clocks = <&ccu CLK_BUS_MMC>; 53364507fe3SChen-Yu Tsai resets = <&ccu RST_BUS_MMC>; 5349c56f3f3SChen-Yu Tsai #clock-cells = <1>; 5359c56f3f3SChen-Yu Tsai #reset-cells = <1>; 5369c56f3f3SChen-Yu Tsai clock-output-names = "mmc0_config", "mmc1_config", 5379c56f3f3SChen-Yu Tsai "mmc2_config", "mmc3_config"; 5389c56f3f3SChen-Yu Tsai }; 5399c56f3f3SChen-Yu Tsai 5405841f6c0SMaxime Ripard gic: interrupt-controller@1c41000 { 5415400cdc1SMaxime Ripard compatible = "arm,gic-400"; 5424ab328f0SChen-Yu Tsai reg = <0x01c41000 0x1000>, 543387720c9SMarc Zyngier <0x01c42000 0x2000>, 5444ab328f0SChen-Yu Tsai <0x01c44000 0x2000>, 5454ab328f0SChen-Yu Tsai <0x01c46000 0x2000>; 5464ab328f0SChen-Yu Tsai interrupt-controller; 5474ab328f0SChen-Yu Tsai #interrupt-cells = <3>; 54819882b84SMaxime Ripard interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 5494ab328f0SChen-Yu Tsai }; 5504ab328f0SChen-Yu Tsai 551f0b55841SChen-Yu Tsai cci: cci@1c90000 { 552f0b55841SChen-Yu Tsai compatible = "arm,cci-400"; 553f0b55841SChen-Yu Tsai #address-cells = <1>; 554f0b55841SChen-Yu Tsai #size-cells = <1>; 555f0b55841SChen-Yu Tsai reg = <0x01c90000 0x1000>; 556f0b55841SChen-Yu Tsai ranges = <0x0 0x01c90000 0x10000>; 557f0b55841SChen-Yu Tsai 558f0b55841SChen-Yu Tsai cci_control0: slave-if@4000 { 559f0b55841SChen-Yu Tsai compatible = "arm,cci-400-ctrl-if"; 560f0b55841SChen-Yu Tsai interface-type = "ace"; 561f0b55841SChen-Yu Tsai reg = <0x4000 0x1000>; 562f0b55841SChen-Yu Tsai }; 563f0b55841SChen-Yu Tsai 564f0b55841SChen-Yu Tsai cci_control1: slave-if@5000 { 565f0b55841SChen-Yu Tsai compatible = "arm,cci-400-ctrl-if"; 566f0b55841SChen-Yu Tsai interface-type = "ace"; 567f0b55841SChen-Yu Tsai reg = <0x5000 0x1000>; 568f0b55841SChen-Yu Tsai }; 569f0b55841SChen-Yu Tsai 570f0b55841SChen-Yu Tsai pmu@9000 { 571f0b55841SChen-Yu Tsai compatible = "arm,cci-400-pmu,r1"; 572f0b55841SChen-Yu Tsai reg = <0x9000 0x5000>; 573f0b55841SChen-Yu Tsai interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 574f0b55841SChen-Yu Tsai <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 575f0b55841SChen-Yu Tsai <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 576f0b55841SChen-Yu Tsai <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 577f0b55841SChen-Yu Tsai <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; 578f0b55841SChen-Yu Tsai }; 579f0b55841SChen-Yu Tsai }; 580f0b55841SChen-Yu Tsai 5815841f6c0SMaxime Ripard de_clocks: clock@3000000 { 58264507fe3SChen-Yu Tsai compatible = "allwinner,sun9i-a80-de-clks"; 58364507fe3SChen-Yu Tsai reg = <0x03000000 0x30>; 58464507fe3SChen-Yu Tsai clocks = <&ccu CLK_DE>, 58564507fe3SChen-Yu Tsai <&ccu CLK_SDRAM>, 58664507fe3SChen-Yu Tsai <&ccu CLK_BUS_DE>; 58764507fe3SChen-Yu Tsai clock-names = "mod", 58864507fe3SChen-Yu Tsai "dram", 58964507fe3SChen-Yu Tsai "bus"; 59064507fe3SChen-Yu Tsai resets = <&ccu RST_BUS_DE>; 59164507fe3SChen-Yu Tsai #clock-cells = <1>; 592ac399a97SChen-Yu Tsai #reset-cells = <1>; 593ac399a97SChen-Yu Tsai }; 594ac399a97SChen-Yu Tsai 595f1317774SChen-Yu Tsai fe0: display-frontend@3100000 { 596f1317774SChen-Yu Tsai compatible = "allwinner,sun9i-a80-display-frontend"; 597f1317774SChen-Yu Tsai reg = <0x03100000 0x40000>; 598f1317774SChen-Yu Tsai interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 599f1317774SChen-Yu Tsai clocks = <&de_clocks CLK_BUS_FE0>, <&de_clocks CLK_FE0>, 600f1317774SChen-Yu Tsai <&de_clocks CLK_DRAM_FE0>; 601f1317774SChen-Yu Tsai clock-names = "ahb", "mod", 602f1317774SChen-Yu Tsai "ram"; 603f1317774SChen-Yu Tsai resets = <&de_clocks RST_FE0>; 604f1317774SChen-Yu Tsai 605f1317774SChen-Yu Tsai ports { 606f1317774SChen-Yu Tsai #address-cells = <1>; 607f1317774SChen-Yu Tsai #size-cells = <0>; 608f1317774SChen-Yu Tsai 609f1317774SChen-Yu Tsai fe0_out: port@1 { 610f1317774SChen-Yu Tsai reg = <1>; 611f1317774SChen-Yu Tsai 612c4953ba1SMaxime Ripard fe0_out_deu0: endpoint { 613f1317774SChen-Yu Tsai remote-endpoint = <&deu0_in_fe0>; 614f1317774SChen-Yu Tsai }; 615f1317774SChen-Yu Tsai }; 616f1317774SChen-Yu Tsai }; 617f1317774SChen-Yu Tsai }; 618f1317774SChen-Yu Tsai 619f1317774SChen-Yu Tsai fe1: display-frontend@3140000 { 620f1317774SChen-Yu Tsai compatible = "allwinner,sun9i-a80-display-frontend"; 621f1317774SChen-Yu Tsai reg = <0x03140000 0x40000>; 622f1317774SChen-Yu Tsai interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 623f1317774SChen-Yu Tsai clocks = <&de_clocks CLK_BUS_FE1>, <&de_clocks CLK_FE1>, 624f1317774SChen-Yu Tsai <&de_clocks CLK_DRAM_FE1>; 625f1317774SChen-Yu Tsai clock-names = "ahb", "mod", 626f1317774SChen-Yu Tsai "ram"; 627f1317774SChen-Yu Tsai resets = <&de_clocks RST_FE0>; 628f1317774SChen-Yu Tsai 629f1317774SChen-Yu Tsai ports { 630f1317774SChen-Yu Tsai #address-cells = <1>; 631f1317774SChen-Yu Tsai #size-cells = <0>; 632f1317774SChen-Yu Tsai 633f1317774SChen-Yu Tsai fe1_out: port@1 { 634f1317774SChen-Yu Tsai reg = <1>; 635f1317774SChen-Yu Tsai 636c4953ba1SMaxime Ripard fe1_out_deu1: endpoint { 637f1317774SChen-Yu Tsai remote-endpoint = <&deu1_in_fe1>; 638f1317774SChen-Yu Tsai }; 639f1317774SChen-Yu Tsai }; 640f1317774SChen-Yu Tsai }; 641f1317774SChen-Yu Tsai }; 642f1317774SChen-Yu Tsai 643f1317774SChen-Yu Tsai be0: display-backend@3200000 { 644f1317774SChen-Yu Tsai compatible = "allwinner,sun9i-a80-display-backend"; 645f1317774SChen-Yu Tsai reg = <0x03200000 0x40000>; 646f1317774SChen-Yu Tsai interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 647f1317774SChen-Yu Tsai clocks = <&de_clocks CLK_BUS_BE0>, <&de_clocks CLK_BE0>, 648f1317774SChen-Yu Tsai <&de_clocks CLK_DRAM_BE0>; 649f1317774SChen-Yu Tsai clock-names = "ahb", "mod", 650f1317774SChen-Yu Tsai "ram"; 651f1317774SChen-Yu Tsai resets = <&de_clocks RST_BE0>; 652f1317774SChen-Yu Tsai 653f1317774SChen-Yu Tsai ports { 654f1317774SChen-Yu Tsai #address-cells = <1>; 655f1317774SChen-Yu Tsai #size-cells = <0>; 656f1317774SChen-Yu Tsai 657f1317774SChen-Yu Tsai be0_in: port@0 { 658f1317774SChen-Yu Tsai #address-cells = <1>; 659f1317774SChen-Yu Tsai #size-cells = <0>; 660f1317774SChen-Yu Tsai reg = <0>; 661f1317774SChen-Yu Tsai 662f1317774SChen-Yu Tsai be0_in_deu0: endpoint@0 { 663f1317774SChen-Yu Tsai reg = <0>; 664f1317774SChen-Yu Tsai remote-endpoint = <&deu0_out_be0>; 665f1317774SChen-Yu Tsai }; 666f1317774SChen-Yu Tsai 667f1317774SChen-Yu Tsai be0_in_deu1: endpoint@1 { 668f1317774SChen-Yu Tsai reg = <1>; 669f1317774SChen-Yu Tsai remote-endpoint = <&deu1_out_be0>; 670f1317774SChen-Yu Tsai }; 671f1317774SChen-Yu Tsai }; 672f1317774SChen-Yu Tsai 673f1317774SChen-Yu Tsai be0_out: port@1 { 674f1317774SChen-Yu Tsai reg = <1>; 675f1317774SChen-Yu Tsai 676c4953ba1SMaxime Ripard be0_out_drc0: endpoint { 677f1317774SChen-Yu Tsai remote-endpoint = <&drc0_in_be0>; 678f1317774SChen-Yu Tsai }; 679f1317774SChen-Yu Tsai }; 680f1317774SChen-Yu Tsai }; 681f1317774SChen-Yu Tsai }; 682f1317774SChen-Yu Tsai 683f1317774SChen-Yu Tsai be1: display-backend@3240000 { 684f1317774SChen-Yu Tsai compatible = "allwinner,sun9i-a80-display-backend"; 685f1317774SChen-Yu Tsai reg = <0x03240000 0x40000>; 686f1317774SChen-Yu Tsai interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 687f1317774SChen-Yu Tsai clocks = <&de_clocks CLK_BUS_BE1>, <&de_clocks CLK_BE1>, 688f1317774SChen-Yu Tsai <&de_clocks CLK_DRAM_BE1>; 689f1317774SChen-Yu Tsai clock-names = "ahb", "mod", 690f1317774SChen-Yu Tsai "ram"; 691f1317774SChen-Yu Tsai resets = <&de_clocks RST_BE1>; 692f1317774SChen-Yu Tsai 693f1317774SChen-Yu Tsai ports { 694f1317774SChen-Yu Tsai #address-cells = <1>; 695f1317774SChen-Yu Tsai #size-cells = <0>; 696f1317774SChen-Yu Tsai 697f1317774SChen-Yu Tsai be1_in: port@0 { 698f1317774SChen-Yu Tsai #address-cells = <1>; 699f1317774SChen-Yu Tsai #size-cells = <0>; 700f1317774SChen-Yu Tsai reg = <0>; 701f1317774SChen-Yu Tsai 702f1317774SChen-Yu Tsai be1_in_deu0: endpoint@0 { 703f1317774SChen-Yu Tsai reg = <0>; 704f1317774SChen-Yu Tsai remote-endpoint = <&deu0_out_be1>; 705f1317774SChen-Yu Tsai }; 706f1317774SChen-Yu Tsai 707f1317774SChen-Yu Tsai be1_in_deu1: endpoint@1 { 708f1317774SChen-Yu Tsai reg = <1>; 709f1317774SChen-Yu Tsai remote-endpoint = <&deu1_out_be1>; 710f1317774SChen-Yu Tsai }; 711f1317774SChen-Yu Tsai }; 712f1317774SChen-Yu Tsai 713f1317774SChen-Yu Tsai be1_out: port@1 { 714f1317774SChen-Yu Tsai reg = <1>; 715f1317774SChen-Yu Tsai 716c4953ba1SMaxime Ripard be1_out_drc1: endpoint { 717f1317774SChen-Yu Tsai remote-endpoint = <&drc1_in_be1>; 718f1317774SChen-Yu Tsai }; 719f1317774SChen-Yu Tsai }; 720f1317774SChen-Yu Tsai }; 721f1317774SChen-Yu Tsai }; 722f1317774SChen-Yu Tsai 723f1317774SChen-Yu Tsai deu0: deu@3300000 { 724f1317774SChen-Yu Tsai compatible = "allwinner,sun9i-a80-deu"; 725f1317774SChen-Yu Tsai reg = <0x03300000 0x40000>; 726f1317774SChen-Yu Tsai interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 727f1317774SChen-Yu Tsai clocks = <&de_clocks CLK_BUS_DEU0>, 728f1317774SChen-Yu Tsai <&de_clocks CLK_IEP_DEU0>, 729f1317774SChen-Yu Tsai <&de_clocks CLK_DRAM_DEU0>; 730f1317774SChen-Yu Tsai clock-names = "ahb", 731f1317774SChen-Yu Tsai "mod", 732f1317774SChen-Yu Tsai "ram"; 733f1317774SChen-Yu Tsai resets = <&de_clocks RST_DEU0>; 734f1317774SChen-Yu Tsai 735f1317774SChen-Yu Tsai ports { 736f1317774SChen-Yu Tsai #address-cells = <1>; 737f1317774SChen-Yu Tsai #size-cells = <0>; 738f1317774SChen-Yu Tsai 739f1317774SChen-Yu Tsai deu0_in: port@0 { 740f1317774SChen-Yu Tsai reg = <0>; 741f1317774SChen-Yu Tsai 742c4953ba1SMaxime Ripard deu0_in_fe0: endpoint { 743f1317774SChen-Yu Tsai remote-endpoint = <&fe0_out_deu0>; 744f1317774SChen-Yu Tsai }; 745f1317774SChen-Yu Tsai }; 746f1317774SChen-Yu Tsai 747f1317774SChen-Yu Tsai deu0_out: port@1 { 748f1317774SChen-Yu Tsai #address-cells = <1>; 749f1317774SChen-Yu Tsai #size-cells = <0>; 750f1317774SChen-Yu Tsai reg = <1>; 751f1317774SChen-Yu Tsai 752f1317774SChen-Yu Tsai deu0_out_be0: endpoint@0 { 753f1317774SChen-Yu Tsai reg = <0>; 754f1317774SChen-Yu Tsai remote-endpoint = <&be0_in_deu0>; 755f1317774SChen-Yu Tsai }; 756f1317774SChen-Yu Tsai 757f1317774SChen-Yu Tsai deu0_out_be1: endpoint@1 { 758f1317774SChen-Yu Tsai reg = <1>; 759f1317774SChen-Yu Tsai remote-endpoint = <&be1_in_deu0>; 760f1317774SChen-Yu Tsai }; 761f1317774SChen-Yu Tsai }; 762f1317774SChen-Yu Tsai }; 763f1317774SChen-Yu Tsai }; 764f1317774SChen-Yu Tsai 765f1317774SChen-Yu Tsai deu1: deu@3340000 { 766f1317774SChen-Yu Tsai compatible = "allwinner,sun9i-a80-deu"; 767f1317774SChen-Yu Tsai reg = <0x03340000 0x40000>; 768f1317774SChen-Yu Tsai interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 769f1317774SChen-Yu Tsai clocks = <&de_clocks CLK_BUS_DEU1>, 770f1317774SChen-Yu Tsai <&de_clocks CLK_IEP_DEU1>, 771f1317774SChen-Yu Tsai <&de_clocks CLK_DRAM_DEU1>; 772f1317774SChen-Yu Tsai clock-names = "ahb", 773f1317774SChen-Yu Tsai "mod", 774f1317774SChen-Yu Tsai "ram"; 775f1317774SChen-Yu Tsai resets = <&de_clocks RST_DEU1>; 776f1317774SChen-Yu Tsai 777f1317774SChen-Yu Tsai ports { 778f1317774SChen-Yu Tsai #address-cells = <1>; 779f1317774SChen-Yu Tsai #size-cells = <0>; 780f1317774SChen-Yu Tsai 781f1317774SChen-Yu Tsai deu1_in: port@0 { 782f1317774SChen-Yu Tsai reg = <0>; 783f1317774SChen-Yu Tsai 784c4953ba1SMaxime Ripard deu1_in_fe1: endpoint { 785f1317774SChen-Yu Tsai remote-endpoint = <&fe1_out_deu1>; 786f1317774SChen-Yu Tsai }; 787f1317774SChen-Yu Tsai }; 788f1317774SChen-Yu Tsai 789f1317774SChen-Yu Tsai deu1_out: port@1 { 790f1317774SChen-Yu Tsai #address-cells = <1>; 791f1317774SChen-Yu Tsai #size-cells = <0>; 792f1317774SChen-Yu Tsai reg = <1>; 793f1317774SChen-Yu Tsai 794f1317774SChen-Yu Tsai deu1_out_be0: endpoint@0 { 795f1317774SChen-Yu Tsai reg = <0>; 796f1317774SChen-Yu Tsai remote-endpoint = <&be0_in_deu1>; 797f1317774SChen-Yu Tsai }; 798f1317774SChen-Yu Tsai 799f1317774SChen-Yu Tsai deu1_out_be1: endpoint@1 { 800f1317774SChen-Yu Tsai reg = <1>; 801f1317774SChen-Yu Tsai remote-endpoint = <&be1_in_deu1>; 802f1317774SChen-Yu Tsai }; 803f1317774SChen-Yu Tsai }; 804f1317774SChen-Yu Tsai }; 805f1317774SChen-Yu Tsai }; 806f1317774SChen-Yu Tsai 807f1317774SChen-Yu Tsai drc0: drc@3400000 { 808f1317774SChen-Yu Tsai compatible = "allwinner,sun9i-a80-drc"; 809f1317774SChen-Yu Tsai reg = <0x03400000 0x40000>; 810f1317774SChen-Yu Tsai interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 811f1317774SChen-Yu Tsai clocks = <&de_clocks CLK_BUS_DRC0>, 812f1317774SChen-Yu Tsai <&de_clocks CLK_IEP_DRC0>, 813f1317774SChen-Yu Tsai <&de_clocks CLK_DRAM_DRC0>; 814f1317774SChen-Yu Tsai clock-names = "ahb", 815f1317774SChen-Yu Tsai "mod", 816f1317774SChen-Yu Tsai "ram"; 817f1317774SChen-Yu Tsai resets = <&de_clocks RST_DRC0>; 818f1317774SChen-Yu Tsai 819f1317774SChen-Yu Tsai ports { 820f1317774SChen-Yu Tsai #address-cells = <1>; 821f1317774SChen-Yu Tsai #size-cells = <0>; 822f1317774SChen-Yu Tsai 823f1317774SChen-Yu Tsai drc0_in: port@0 { 824f1317774SChen-Yu Tsai reg = <0>; 825f1317774SChen-Yu Tsai 826c4953ba1SMaxime Ripard drc0_in_be0: endpoint { 827f1317774SChen-Yu Tsai remote-endpoint = <&be0_out_drc0>; 828f1317774SChen-Yu Tsai }; 829f1317774SChen-Yu Tsai }; 830f1317774SChen-Yu Tsai 831f1317774SChen-Yu Tsai drc0_out: port@1 { 832f1317774SChen-Yu Tsai reg = <1>; 833f1317774SChen-Yu Tsai 834c4953ba1SMaxime Ripard drc0_out_tcon0: endpoint { 835f1317774SChen-Yu Tsai remote-endpoint = <&tcon0_in_drc0>; 836f1317774SChen-Yu Tsai }; 837f1317774SChen-Yu Tsai }; 838f1317774SChen-Yu Tsai }; 839f1317774SChen-Yu Tsai }; 840f1317774SChen-Yu Tsai 841f1317774SChen-Yu Tsai drc1: drc@3440000 { 842f1317774SChen-Yu Tsai compatible = "allwinner,sun9i-a80-drc"; 843f1317774SChen-Yu Tsai reg = <0x03440000 0x40000>; 844f1317774SChen-Yu Tsai interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 845f1317774SChen-Yu Tsai clocks = <&de_clocks CLK_BUS_DRC1>, 846f1317774SChen-Yu Tsai <&de_clocks CLK_IEP_DRC1>, 847f1317774SChen-Yu Tsai <&de_clocks CLK_DRAM_DRC1>; 848f1317774SChen-Yu Tsai clock-names = "ahb", 849f1317774SChen-Yu Tsai "mod", 850f1317774SChen-Yu Tsai "ram"; 851f1317774SChen-Yu Tsai resets = <&de_clocks RST_DRC1>; 852f1317774SChen-Yu Tsai 853f1317774SChen-Yu Tsai ports { 854f1317774SChen-Yu Tsai #address-cells = <1>; 855f1317774SChen-Yu Tsai #size-cells = <0>; 856f1317774SChen-Yu Tsai 857f1317774SChen-Yu Tsai drc1_in: port@0 { 858f1317774SChen-Yu Tsai reg = <0>; 859f1317774SChen-Yu Tsai 860c4953ba1SMaxime Ripard drc1_in_be1: endpoint { 861f1317774SChen-Yu Tsai remote-endpoint = <&be1_out_drc1>; 862f1317774SChen-Yu Tsai }; 863f1317774SChen-Yu Tsai }; 864f1317774SChen-Yu Tsai 865f1317774SChen-Yu Tsai drc1_out: port@1 { 866f1317774SChen-Yu Tsai reg = <1>; 867f1317774SChen-Yu Tsai 868c4953ba1SMaxime Ripard drc1_out_tcon1: endpoint { 869f1317774SChen-Yu Tsai remote-endpoint = <&tcon1_in_drc1>; 870f1317774SChen-Yu Tsai }; 871f1317774SChen-Yu Tsai }; 872f1317774SChen-Yu Tsai }; 873f1317774SChen-Yu Tsai }; 874f1317774SChen-Yu Tsai 875f1317774SChen-Yu Tsai tcon0: lcd-controller@3c00000 { 876f1317774SChen-Yu Tsai compatible = "allwinner,sun9i-a80-tcon-lcd"; 877f1317774SChen-Yu Tsai reg = <0x03c00000 0x10000>; 878f1317774SChen-Yu Tsai interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 879f1317774SChen-Yu Tsai clocks = <&ccu CLK_BUS_LCD0>, <&ccu CLK_LCD0>; 880f1317774SChen-Yu Tsai clock-names = "ahb", "tcon-ch0"; 88106dfaf1dSMaxime Ripard resets = <&ccu RST_BUS_LCD0>, 88206dfaf1dSMaxime Ripard <&ccu RST_BUS_EDP>, 88306dfaf1dSMaxime Ripard <&ccu RST_BUS_LVDS>; 88406dfaf1dSMaxime Ripard reset-names = "lcd", 88506dfaf1dSMaxime Ripard "edp", 88606dfaf1dSMaxime Ripard "lvds"; 887f1317774SChen-Yu Tsai clock-output-names = "tcon0-pixel-clock"; 88809f29dccSMaxime Ripard #clock-cells = <0>; 889f1317774SChen-Yu Tsai 890f1317774SChen-Yu Tsai ports { 891f1317774SChen-Yu Tsai #address-cells = <1>; 892f1317774SChen-Yu Tsai #size-cells = <0>; 893f1317774SChen-Yu Tsai 894f1317774SChen-Yu Tsai tcon0_in: port@0 { 895f1317774SChen-Yu Tsai reg = <0>; 896f1317774SChen-Yu Tsai 897c4953ba1SMaxime Ripard tcon0_in_drc0: endpoint { 898f1317774SChen-Yu Tsai remote-endpoint = <&drc0_out_tcon0>; 899f1317774SChen-Yu Tsai }; 900f1317774SChen-Yu Tsai }; 901f1317774SChen-Yu Tsai 902f1317774SChen-Yu Tsai tcon0_out: port@1 { 903f1317774SChen-Yu Tsai reg = <1>; 904f1317774SChen-Yu Tsai }; 905f1317774SChen-Yu Tsai }; 906f1317774SChen-Yu Tsai }; 907f1317774SChen-Yu Tsai 908f1317774SChen-Yu Tsai tcon1: lcd-controller@3c10000 { 909f1317774SChen-Yu Tsai compatible = "allwinner,sun9i-a80-tcon-tv"; 910f1317774SChen-Yu Tsai reg = <0x03c10000 0x10000>; 911f1317774SChen-Yu Tsai interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 912f1317774SChen-Yu Tsai clocks = <&ccu CLK_BUS_LCD1>, <&ccu CLK_LCD1>; 913f1317774SChen-Yu Tsai clock-names = "ahb", "tcon-ch1"; 914f1317774SChen-Yu Tsai resets = <&ccu RST_BUS_LCD1>, <&ccu RST_BUS_EDP>; 915f1317774SChen-Yu Tsai reset-names = "lcd", "edp"; 916f1317774SChen-Yu Tsai 917f1317774SChen-Yu Tsai ports { 918f1317774SChen-Yu Tsai #address-cells = <1>; 919f1317774SChen-Yu Tsai #size-cells = <0>; 920f1317774SChen-Yu Tsai 921f1317774SChen-Yu Tsai tcon1_in: port@0 { 922f1317774SChen-Yu Tsai reg = <0>; 923f1317774SChen-Yu Tsai 924c4953ba1SMaxime Ripard tcon1_in_drc1: endpoint { 925f1317774SChen-Yu Tsai remote-endpoint = <&drc1_out_tcon1>; 926f1317774SChen-Yu Tsai }; 927f1317774SChen-Yu Tsai }; 928f1317774SChen-Yu Tsai 929f1317774SChen-Yu Tsai tcon1_out: port@1 { 930f1317774SChen-Yu Tsai reg = <1>; 931f1317774SChen-Yu Tsai }; 932f1317774SChen-Yu Tsai }; 933f1317774SChen-Yu Tsai }; 934f1317774SChen-Yu Tsai 9355841f6c0SMaxime Ripard ccu: clock@6000000 { 93664507fe3SChen-Yu Tsai compatible = "allwinner,sun9i-a80-ccu"; 93764507fe3SChen-Yu Tsai reg = <0x06000000 0x800>; 93864507fe3SChen-Yu Tsai clocks = <&osc24M>, <&osc32k>; 93964507fe3SChen-Yu Tsai clock-names = "hosc", "losc"; 94064507fe3SChen-Yu Tsai #clock-cells = <1>; 941ac399a97SChen-Yu Tsai #reset-cells = <1>; 942ac399a97SChen-Yu Tsai }; 943ac399a97SChen-Yu Tsai 9445841f6c0SMaxime Ripard timer@6000c00 { 9454ab328f0SChen-Yu Tsai compatible = "allwinner,sun4i-a10-timer"; 9464ab328f0SChen-Yu Tsai reg = <0x06000c00 0xa0>; 94719882b84SMaxime Ripard interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 94819882b84SMaxime Ripard <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 94919882b84SMaxime Ripard <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, 95019882b84SMaxime Ripard <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>, 95119882b84SMaxime Ripard <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>, 95219882b84SMaxime Ripard <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 9534ab328f0SChen-Yu Tsai 9544ab328f0SChen-Yu Tsai clocks = <&osc24M>; 9554ab328f0SChen-Yu Tsai }; 9564ab328f0SChen-Yu Tsai 9575841f6c0SMaxime Ripard wdt: watchdog@6000ca0 { 9586d6693c8SChen-Yu Tsai compatible = "allwinner,sun6i-a31-wdt"; 9596d6693c8SChen-Yu Tsai reg = <0x06000ca0 0x20>; 9606d6693c8SChen-Yu Tsai interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 96127b705fbSMaxime Ripard clocks = <&osc24M>; 9626d6693c8SChen-Yu Tsai }; 9636d6693c8SChen-Yu Tsai 9645841f6c0SMaxime Ripard pio: pinctrl@6000800 { 96543d024d3SMaxime Ripard compatible = "allwinner,sun9i-a80-pinctrl"; 96643d024d3SMaxime Ripard reg = <0x06000800 0x400>; 96719882b84SMaxime Ripard interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 96819882b84SMaxime Ripard <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 96919882b84SMaxime Ripard <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 97019882b84SMaxime Ripard <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, 97119882b84SMaxime Ripard <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 97264507fe3SChen-Yu Tsai clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>; 973be7bc6b9SMaxime Ripard clock-names = "apb", "hosc", "losc"; 97443d024d3SMaxime Ripard gpio-controller; 97543d024d3SMaxime Ripard interrupt-controller; 9766d55d339SHans de Goede #interrupt-cells = <3>; 97743d024d3SMaxime Ripard #gpio-cells = <3>; 978888366faSMaxime Ripard 97972acaa13SChen-Yu Tsai gmac_rgmii_pins: gmac-rgmii-pins { 980a79668c1SMaxime Ripard pins = "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", 981a79668c1SMaxime Ripard "PA7", "PA8", "PA9", "PA10", "PA12", 982a79668c1SMaxime Ripard "PA13", "PA15", "PA16", "PA17"; 983a79668c1SMaxime Ripard function = "gmac"; 98472acaa13SChen-Yu Tsai /* 98572acaa13SChen-Yu Tsai * data lines in RGMII mode use DDR mode 98672acaa13SChen-Yu Tsai * and need a higher signal drive strength 98772acaa13SChen-Yu Tsai */ 98872acaa13SChen-Yu Tsai drive-strength = <40>; 98972acaa13SChen-Yu Tsai }; 99072acaa13SChen-Yu Tsai 991d177864fSMaxime Ripard i2c3_pins: i2c3-pins { 9921edcd36fSMaxime Ripard pins = "PG10", "PG11"; 9931edcd36fSMaxime Ripard function = "i2c3"; 9946657a058SChen-Yu Tsai }; 9956657a058SChen-Yu Tsai 99602104704SChen-Yu Tsai lcd0_rgb888_pins: lcd0-rgb888-pins { 99702104704SChen-Yu Tsai pins = "PD0", "PD1", "PD2", "PD3", 99802104704SChen-Yu Tsai "PD4", "PD5", "PD6", "PD7", 99902104704SChen-Yu Tsai "PD8", "PD9", "PD10", "PD11", 100002104704SChen-Yu Tsai "PD12", "PD13", "PD14", "PD15", 100102104704SChen-Yu Tsai "PD16", "PD17", "PD18", "PD19", 100202104704SChen-Yu Tsai "PD20", "PD21", "PD22", "PD23", 100302104704SChen-Yu Tsai "PD24", "PD25", "PD26", "PD27"; 100402104704SChen-Yu Tsai function = "lcd0"; 100502104704SChen-Yu Tsai }; 100602104704SChen-Yu Tsai 1007d177864fSMaxime Ripard mmc0_pins: mmc0-pins { 10081edcd36fSMaxime Ripard pins = "PF0", "PF1" ,"PF2", "PF3", 1009cd23e2e5SChen-Yu Tsai "PF4", "PF5"; 10101edcd36fSMaxime Ripard function = "mmc0"; 10111edcd36fSMaxime Ripard drive-strength = <30>; 101280ee72e7SChen-Yu Tsai bias-pull-up; 1013cd23e2e5SChen-Yu Tsai }; 1014cd23e2e5SChen-Yu Tsai 1015d177864fSMaxime Ripard mmc1_pins: mmc1-pins { 10161edcd36fSMaxime Ripard pins = "PG0", "PG1" ,"PG2", "PG3", 101756b07301SChen-Yu Tsai "PG4", "PG5"; 10181edcd36fSMaxime Ripard function = "mmc1"; 10191edcd36fSMaxime Ripard drive-strength = <30>; 102080ee72e7SChen-Yu Tsai bias-pull-up; 102156b07301SChen-Yu Tsai }; 102256b07301SChen-Yu Tsai 1023d177864fSMaxime Ripard mmc2_8bit_pins: mmc2-8bit-pins { 10241edcd36fSMaxime Ripard pins = "PC6", "PC7", "PC8", "PC9", 102523a602b6SChen-Yu Tsai "PC10", "PC11", "PC12", 1026675ec62bSChen-Yu Tsai "PC13", "PC14", "PC15", 1027675ec62bSChen-Yu Tsai "PC16"; 10281edcd36fSMaxime Ripard function = "mmc2"; 10291edcd36fSMaxime Ripard drive-strength = <30>; 103080ee72e7SChen-Yu Tsai bias-pull-up; 1031888366faSMaxime Ripard }; 103243d024d3SMaxime Ripard 1033d177864fSMaxime Ripard uart0_ph_pins: uart0-ph-pins { 10341edcd36fSMaxime Ripard pins = "PH12", "PH13"; 10351edcd36fSMaxime Ripard function = "uart0"; 10364ab328f0SChen-Yu Tsai }; 10372a950b2cSChen-Yu Tsai 1038d177864fSMaxime Ripard uart4_pins: uart4-pins { 10391edcd36fSMaxime Ripard pins = "PG12", "PG13", "PG14", "PG15"; 10401edcd36fSMaxime Ripard function = "uart4"; 10412a950b2cSChen-Yu Tsai }; 10424ab328f0SChen-Yu Tsai }; 10434ab328f0SChen-Yu Tsai 10445841f6c0SMaxime Ripard uart0: serial@7000000 { 10454ab328f0SChen-Yu Tsai compatible = "snps,dw-apb-uart"; 10464ab328f0SChen-Yu Tsai reg = <0x07000000 0x400>; 104719882b84SMaxime Ripard interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 10484ab328f0SChen-Yu Tsai reg-shift = <2>; 10494ab328f0SChen-Yu Tsai reg-io-width = <4>; 105064507fe3SChen-Yu Tsai clocks = <&ccu CLK_BUS_UART0>; 105164507fe3SChen-Yu Tsai resets = <&ccu RST_BUS_UART0>; 10524ab328f0SChen-Yu Tsai status = "disabled"; 10534ab328f0SChen-Yu Tsai }; 10544ab328f0SChen-Yu Tsai 10555841f6c0SMaxime Ripard uart1: serial@7000400 { 10564ab328f0SChen-Yu Tsai compatible = "snps,dw-apb-uart"; 10574ab328f0SChen-Yu Tsai reg = <0x07000400 0x400>; 105819882b84SMaxime Ripard interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 10594ab328f0SChen-Yu Tsai reg-shift = <2>; 10604ab328f0SChen-Yu Tsai reg-io-width = <4>; 106164507fe3SChen-Yu Tsai clocks = <&ccu CLK_BUS_UART1>; 106264507fe3SChen-Yu Tsai resets = <&ccu RST_BUS_UART1>; 10634ab328f0SChen-Yu Tsai status = "disabled"; 10644ab328f0SChen-Yu Tsai }; 10654ab328f0SChen-Yu Tsai 10665841f6c0SMaxime Ripard uart2: serial@7000800 { 10674ab328f0SChen-Yu Tsai compatible = "snps,dw-apb-uart"; 10684ab328f0SChen-Yu Tsai reg = <0x07000800 0x400>; 106919882b84SMaxime Ripard interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 10704ab328f0SChen-Yu Tsai reg-shift = <2>; 10714ab328f0SChen-Yu Tsai reg-io-width = <4>; 107264507fe3SChen-Yu Tsai clocks = <&ccu CLK_BUS_UART2>; 107364507fe3SChen-Yu Tsai resets = <&ccu RST_BUS_UART2>; 10744ab328f0SChen-Yu Tsai status = "disabled"; 10754ab328f0SChen-Yu Tsai }; 10764ab328f0SChen-Yu Tsai 10775841f6c0SMaxime Ripard uart3: serial@7000c00 { 10784ab328f0SChen-Yu Tsai compatible = "snps,dw-apb-uart"; 10794ab328f0SChen-Yu Tsai reg = <0x07000c00 0x400>; 108019882b84SMaxime Ripard interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 10814ab328f0SChen-Yu Tsai reg-shift = <2>; 10824ab328f0SChen-Yu Tsai reg-io-width = <4>; 108364507fe3SChen-Yu Tsai clocks = <&ccu CLK_BUS_UART3>; 108464507fe3SChen-Yu Tsai resets = <&ccu RST_BUS_UART3>; 10854ab328f0SChen-Yu Tsai status = "disabled"; 10864ab328f0SChen-Yu Tsai }; 10874ab328f0SChen-Yu Tsai 10885841f6c0SMaxime Ripard uart4: serial@7001000 { 10894ab328f0SChen-Yu Tsai compatible = "snps,dw-apb-uart"; 10904ab328f0SChen-Yu Tsai reg = <0x07001000 0x400>; 109119882b84SMaxime Ripard interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 10924ab328f0SChen-Yu Tsai reg-shift = <2>; 10934ab328f0SChen-Yu Tsai reg-io-width = <4>; 109464507fe3SChen-Yu Tsai clocks = <&ccu CLK_BUS_UART4>; 109564507fe3SChen-Yu Tsai resets = <&ccu RST_BUS_UART4>; 10964ab328f0SChen-Yu Tsai status = "disabled"; 10974ab328f0SChen-Yu Tsai }; 10984ab328f0SChen-Yu Tsai 10995841f6c0SMaxime Ripard uart5: serial@7001400 { 11004ab328f0SChen-Yu Tsai compatible = "snps,dw-apb-uart"; 11014ab328f0SChen-Yu Tsai reg = <0x07001400 0x400>; 110219882b84SMaxime Ripard interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 11034ab328f0SChen-Yu Tsai reg-shift = <2>; 11044ab328f0SChen-Yu Tsai reg-io-width = <4>; 110564507fe3SChen-Yu Tsai clocks = <&ccu CLK_BUS_UART5>; 110664507fe3SChen-Yu Tsai resets = <&ccu RST_BUS_UART5>; 11074ab328f0SChen-Yu Tsai status = "disabled"; 11084ab328f0SChen-Yu Tsai }; 11094ab328f0SChen-Yu Tsai 11105841f6c0SMaxime Ripard i2c0: i2c@7002800 { 1111e4aa753aSChen-Yu Tsai compatible = "allwinner,sun6i-a31-i2c"; 1112e4aa753aSChen-Yu Tsai reg = <0x07002800 0x400>; 111319882b84SMaxime Ripard interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 111464507fe3SChen-Yu Tsai clocks = <&ccu CLK_BUS_I2C0>; 111564507fe3SChen-Yu Tsai resets = <&ccu RST_BUS_I2C0>; 1116e4aa753aSChen-Yu Tsai status = "disabled"; 1117e4aa753aSChen-Yu Tsai #address-cells = <1>; 1118e4aa753aSChen-Yu Tsai #size-cells = <0>; 1119e4aa753aSChen-Yu Tsai }; 1120e4aa753aSChen-Yu Tsai 11215841f6c0SMaxime Ripard i2c1: i2c@7002c00 { 1122e4aa753aSChen-Yu Tsai compatible = "allwinner,sun6i-a31-i2c"; 1123e4aa753aSChen-Yu Tsai reg = <0x07002c00 0x400>; 112419882b84SMaxime Ripard interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 112564507fe3SChen-Yu Tsai clocks = <&ccu CLK_BUS_I2C1>; 112664507fe3SChen-Yu Tsai resets = <&ccu RST_BUS_I2C1>; 1127e4aa753aSChen-Yu Tsai status = "disabled"; 1128e4aa753aSChen-Yu Tsai #address-cells = <1>; 1129e4aa753aSChen-Yu Tsai #size-cells = <0>; 1130e4aa753aSChen-Yu Tsai }; 1131e4aa753aSChen-Yu Tsai 11325841f6c0SMaxime Ripard i2c2: i2c@7003000 { 1133e4aa753aSChen-Yu Tsai compatible = "allwinner,sun6i-a31-i2c"; 1134e4aa753aSChen-Yu Tsai reg = <0x07003000 0x400>; 113519882b84SMaxime Ripard interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 113664507fe3SChen-Yu Tsai clocks = <&ccu CLK_BUS_I2C2>; 113764507fe3SChen-Yu Tsai resets = <&ccu RST_BUS_I2C2>; 1138e4aa753aSChen-Yu Tsai status = "disabled"; 1139e4aa753aSChen-Yu Tsai #address-cells = <1>; 1140e4aa753aSChen-Yu Tsai #size-cells = <0>; 1141e4aa753aSChen-Yu Tsai }; 1142e4aa753aSChen-Yu Tsai 11435841f6c0SMaxime Ripard i2c3: i2c@7003400 { 1144e4aa753aSChen-Yu Tsai compatible = "allwinner,sun6i-a31-i2c"; 1145e4aa753aSChen-Yu Tsai reg = <0x07003400 0x400>; 114619882b84SMaxime Ripard interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 114764507fe3SChen-Yu Tsai clocks = <&ccu CLK_BUS_I2C3>; 114864507fe3SChen-Yu Tsai resets = <&ccu RST_BUS_I2C3>; 1149e4aa753aSChen-Yu Tsai status = "disabled"; 1150e4aa753aSChen-Yu Tsai #address-cells = <1>; 1151e4aa753aSChen-Yu Tsai #size-cells = <0>; 1152e4aa753aSChen-Yu Tsai }; 1153e4aa753aSChen-Yu Tsai 11545841f6c0SMaxime Ripard i2c4: i2c@7003800 { 1155e4aa753aSChen-Yu Tsai compatible = "allwinner,sun6i-a31-i2c"; 1156e4aa753aSChen-Yu Tsai reg = <0x07003800 0x400>; 115719882b84SMaxime Ripard interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 115864507fe3SChen-Yu Tsai clocks = <&ccu CLK_BUS_I2C4>; 115964507fe3SChen-Yu Tsai resets = <&ccu RST_BUS_I2C4>; 1160e4aa753aSChen-Yu Tsai status = "disabled"; 1161e4aa753aSChen-Yu Tsai #address-cells = <1>; 1162e4aa753aSChen-Yu Tsai #size-cells = <0>; 1163e4aa753aSChen-Yu Tsai }; 1164e4aa753aSChen-Yu Tsai 11655841f6c0SMaxime Ripard r_wdt: watchdog@8001000 { 11664ab328f0SChen-Yu Tsai compatible = "allwinner,sun6i-a31-wdt"; 11674ab328f0SChen-Yu Tsai reg = <0x08001000 0x20>; 116819882b84SMaxime Ripard interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 116927b705fbSMaxime Ripard clocks = <&osc24M>; 11704ab328f0SChen-Yu Tsai }; 11714ab328f0SChen-Yu Tsai 1172fd4b0c33SChen-Yu Tsai prcm@8001400 { 1173fd4b0c33SChen-Yu Tsai compatible = "allwinner,sun9i-a80-prcm"; 1174fd4b0c33SChen-Yu Tsai reg = <0x08001400 0x200>; 1175fd4b0c33SChen-Yu Tsai }; 1176fd4b0c33SChen-Yu Tsai 11775841f6c0SMaxime Ripard apbs_rst: reset@80014b0 { 1178afd7d66cSChen-Yu Tsai reg = <0x080014b0 0x4>; 1179afd7d66cSChen-Yu Tsai compatible = "allwinner,sun6i-a31-clock-reset"; 1180afd7d66cSChen-Yu Tsai #reset-cells = <1>; 1181afd7d66cSChen-Yu Tsai }; 1182afd7d66cSChen-Yu Tsai 11835841f6c0SMaxime Ripard nmi_intc: interrupt-controller@80015a0 { 118467e1cbfbSChen-Yu Tsai compatible = "allwinner,sun9i-a80-nmi"; 118567e1cbfbSChen-Yu Tsai interrupt-controller; 118667e1cbfbSChen-Yu Tsai #interrupt-cells = <2>; 118767e1cbfbSChen-Yu Tsai reg = <0x080015a0 0xc>; 118867e1cbfbSChen-Yu Tsai interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 118967e1cbfbSChen-Yu Tsai }; 119067e1cbfbSChen-Yu Tsai 11915841f6c0SMaxime Ripard r_ir: ir@8002000 { 1192342d23a7SClément Péron compatible = "allwinner,sun6i-a31-ir"; 11931595b37cSChen-Yu Tsai interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 11941595b37cSChen-Yu Tsai pinctrl-names = "default"; 11951595b37cSChen-Yu Tsai pinctrl-0 = <&r_ir_pins>; 11961595b37cSChen-Yu Tsai clocks = <&apbs_gates 1>, <&r_ir_clk>; 11971595b37cSChen-Yu Tsai clock-names = "apb", "ir"; 11981595b37cSChen-Yu Tsai resets = <&apbs_rst 1>; 11991595b37cSChen-Yu Tsai reg = <0x08002000 0x40>; 12001595b37cSChen-Yu Tsai status = "disabled"; 12011595b37cSChen-Yu Tsai }; 12021595b37cSChen-Yu Tsai 12035841f6c0SMaxime Ripard r_uart: serial@8002800 { 12044ab328f0SChen-Yu Tsai compatible = "snps,dw-apb-uart"; 12054ab328f0SChen-Yu Tsai reg = <0x08002800 0x400>; 120619882b84SMaxime Ripard interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 12074ab328f0SChen-Yu Tsai reg-shift = <2>; 12084ab328f0SChen-Yu Tsai reg-io-width = <4>; 1209afd7d66cSChen-Yu Tsai clocks = <&apbs_gates 4>; 1210afd7d66cSChen-Yu Tsai resets = <&apbs_rst 4>; 12114ab328f0SChen-Yu Tsai status = "disabled"; 12124ab328f0SChen-Yu Tsai }; 12131ac56a6dSChen-Yu Tsai 12145841f6c0SMaxime Ripard r_pio: pinctrl@8002c00 { 12151ac56a6dSChen-Yu Tsai compatible = "allwinner,sun9i-a80-r-pinctrl"; 12161ac56a6dSChen-Yu Tsai reg = <0x08002c00 0x400>; 12171ac56a6dSChen-Yu Tsai interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 12181ac56a6dSChen-Yu Tsai <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 1219be7bc6b9SMaxime Ripard clocks = <&apbs_gates 0>, <&osc24M>, <&osc32k>; 1220be7bc6b9SMaxime Ripard clock-names = "apb", "hosc", "losc"; 12211ac56a6dSChen-Yu Tsai gpio-controller; 12221ac56a6dSChen-Yu Tsai interrupt-controller; 122306ad11beSChen-Yu Tsai #interrupt-cells = <3>; 12241ac56a6dSChen-Yu Tsai #gpio-cells = <3>; 12251595b37cSChen-Yu Tsai 122600a7088fSMaxime Ripard r_ir_pins: r-ir-pins { 12271edcd36fSMaxime Ripard pins = "PL6"; 12281edcd36fSMaxime Ripard function = "s_cir_rx"; 12291595b37cSChen-Yu Tsai }; 1230ed473ebdSChen-Yu Tsai 123100a7088fSMaxime Ripard r_rsb_pins: r-rsb-pins { 12321edcd36fSMaxime Ripard pins = "PN0", "PN1"; 12331edcd36fSMaxime Ripard function = "s_rsb"; 12341edcd36fSMaxime Ripard drive-strength = <20>; 12351edcd36fSMaxime Ripard bias-pull-up; 1236ed473ebdSChen-Yu Tsai }; 1237ed473ebdSChen-Yu Tsai }; 1238ed473ebdSChen-Yu Tsai 123957a83c52SRob Herring r_rsb: rsb@8003400 { 1240ed473ebdSChen-Yu Tsai compatible = "allwinner,sun8i-a23-rsb"; 1241ed473ebdSChen-Yu Tsai reg = <0x08003400 0x400>; 1242ed473ebdSChen-Yu Tsai interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 1243ed473ebdSChen-Yu Tsai clocks = <&apbs_gates 3>; 1244ed473ebdSChen-Yu Tsai clock-frequency = <3000000>; 1245ed473ebdSChen-Yu Tsai resets = <&apbs_rst 3>; 1246ed473ebdSChen-Yu Tsai pinctrl-names = "default"; 1247ed473ebdSChen-Yu Tsai pinctrl-0 = <&r_rsb_pins>; 1248ed473ebdSChen-Yu Tsai status = "disabled"; 1249ed473ebdSChen-Yu Tsai #address-cells = <1>; 1250ed473ebdSChen-Yu Tsai #size-cells = <0>; 12511ac56a6dSChen-Yu Tsai }; 12524ab328f0SChen-Yu Tsai }; 12534ab328f0SChen-Yu Tsai}; 1254