153ab4af3SHans de Goede/* 253ab4af3SHans de Goede * Copyright 2013 Maxime Ripard 353ab4af3SHans de Goede * 453ab4af3SHans de Goede * Maxime Ripard <maxime.ripard@free-electrons.com> 553ab4af3SHans de Goede * 653ab4af3SHans de Goede * This file is dual-licensed: you can use it either under the terms 753ab4af3SHans de Goede * of the GPL or the X11 license, at your option. Note that this dual 853ab4af3SHans de Goede * licensing only applies to this file, and not this project as a 953ab4af3SHans de Goede * whole. 1053ab4af3SHans de Goede * 1153ab4af3SHans de Goede * a) This file is free software; you can redistribute it and/or 1253ab4af3SHans de Goede * modify it under the terms of the GNU General Public License as 1353ab4af3SHans de Goede * published by the Free Software Foundation; either version 2 of the 1453ab4af3SHans de Goede * License, or (at your option) any later version. 1553ab4af3SHans de Goede * 1653ab4af3SHans de Goede * This file is distributed in the hope that it will be useful, 1753ab4af3SHans de Goede * but WITHOUT ANY WARRANTY; without even the implied warranty of 1853ab4af3SHans de Goede * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1953ab4af3SHans de Goede * GNU General Public License for more details. 2053ab4af3SHans de Goede * 2153ab4af3SHans de Goede * Or, alternatively, 2253ab4af3SHans de Goede * 2353ab4af3SHans de Goede * b) Permission is hereby granted, free of charge, to any person 2453ab4af3SHans de Goede * obtaining a copy of this software and associated documentation 2553ab4af3SHans de Goede * files (the "Software"), to deal in the Software without 2653ab4af3SHans de Goede * restriction, including without limitation the rights to use, 2753ab4af3SHans de Goede * copy, modify, merge, publish, distribute, sublicense, and/or 2853ab4af3SHans de Goede * sell copies of the Software, and to permit persons to whom the 2953ab4af3SHans de Goede * Software is furnished to do so, subject to the following 3053ab4af3SHans de Goede * conditions: 3153ab4af3SHans de Goede * 3253ab4af3SHans de Goede * The above copyright notice and this permission notice shall be 3353ab4af3SHans de Goede * included in all copies or substantial portions of the Software. 3453ab4af3SHans de Goede * 3553ab4af3SHans de Goede * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 3653ab4af3SHans de Goede * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 3753ab4af3SHans de Goede * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 3853ab4af3SHans de Goede * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 3953ab4af3SHans de Goede * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 4053ab4af3SHans de Goede * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 4153ab4af3SHans de Goede * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 4253ab4af3SHans de Goede * OTHER DEALINGS IN THE SOFTWARE. 4353ab4af3SHans de Goede */ 4453ab4af3SHans de Goede 4553ab4af3SHans de Goede#include "skeleton.dtsi" 4653ab4af3SHans de Goede 4753ab4af3SHans de Goede#include <dt-bindings/interrupt-controller/arm-gic.h> 4853ab4af3SHans de Goede#include <dt-bindings/thermal/thermal.h> 4953ab4af3SHans de Goede 50*d1d4295aSJagan Teki#include <dt-bindings/clock/sun6i-a31-ccu.h> 51*d1d4295aSJagan Teki#include <dt-bindings/reset/sun6i-a31-ccu.h> 5253ab4af3SHans de Goede 5353ab4af3SHans de Goede/ { 5453ab4af3SHans de Goede interrupt-parent = <&gic>; 5553ab4af3SHans de Goede 5653ab4af3SHans de Goede aliases { 5753ab4af3SHans de Goede ethernet0 = &gmac; 5853ab4af3SHans de Goede }; 5953ab4af3SHans de Goede 6053ab4af3SHans de Goede chosen { 6153ab4af3SHans de Goede #address-cells = <1>; 6253ab4af3SHans de Goede #size-cells = <1>; 6353ab4af3SHans de Goede ranges; 6453ab4af3SHans de Goede 6580e5f83cSHans de Goede simplefb_hdmi: framebuffer@0 { 668b1ba941SHans de Goede compatible = "allwinner,simple-framebuffer", 678b1ba941SHans de Goede "simple-framebuffer"; 6853ab4af3SHans de Goede allwinner,pipeline = "de_be0-lcd0-hdmi"; 69*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_BE0>, <&ccu CLK_AHB1_LCD0>, 70*d1d4295aSJagan Teki <&ccu CLK_AHB1_HDMI>, <&ccu CLK_DRAM_BE0>, 71*d1d4295aSJagan Teki <&ccu CLK_IEP_DRC0>, <&ccu CLK_BE0>, 72*d1d4295aSJagan Teki <&ccu CLK_LCD0_CH1>, <&ccu CLK_HDMI>; 7353ab4af3SHans de Goede status = "disabled"; 7453ab4af3SHans de Goede }; 7553ab4af3SHans de Goede 7680e5f83cSHans de Goede simplefb_lcd: framebuffer@1 { 7753ab4af3SHans de Goede compatible = "allwinner,simple-framebuffer", 7853ab4af3SHans de Goede "simple-framebuffer"; 7953ab4af3SHans de Goede allwinner,pipeline = "de_be0-lcd0"; 80*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_BE0>, <&ccu CLK_AHB1_LCD0>, 81*d1d4295aSJagan Teki <&ccu CLK_DRAM_BE0>, <&ccu CLK_IEP_DRC0>, 82*d1d4295aSJagan Teki <&ccu CLK_BE0>, <&ccu CLK_LCD0_CH0>; 8353ab4af3SHans de Goede status = "disabled"; 8453ab4af3SHans de Goede }; 8553ab4af3SHans de Goede }; 8653ab4af3SHans de Goede 8753ab4af3SHans de Goede timer { 8853ab4af3SHans de Goede compatible = "arm,armv7-timer"; 8953ab4af3SHans de Goede interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 9053ab4af3SHans de Goede <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 9153ab4af3SHans de Goede <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 9253ab4af3SHans de Goede <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 9353ab4af3SHans de Goede clock-frequency = <24000000>; 9453ab4af3SHans de Goede arm,cpu-registers-not-fw-configured; 9553ab4af3SHans de Goede }; 9653ab4af3SHans de Goede 9753ab4af3SHans de Goede cpus { 9853ab4af3SHans de Goede enable-method = "allwinner,sun6i-a31"; 9953ab4af3SHans de Goede #address-cells = <1>; 10053ab4af3SHans de Goede #size-cells = <0>; 10153ab4af3SHans de Goede 10253ab4af3SHans de Goede cpu0: cpu@0 { 10353ab4af3SHans de Goede compatible = "arm,cortex-a7"; 10453ab4af3SHans de Goede device_type = "cpu"; 10553ab4af3SHans de Goede reg = <0>; 106*d1d4295aSJagan Teki clocks = <&ccu CLK_CPU>; 10753ab4af3SHans de Goede clock-latency = <244144>; /* 8 32k periods */ 10853ab4af3SHans de Goede operating-points = < 10953ab4af3SHans de Goede /* kHz uV */ 11053ab4af3SHans de Goede 1008000 1200000 11153ab4af3SHans de Goede 864000 1200000 11253ab4af3SHans de Goede 720000 1100000 11353ab4af3SHans de Goede 480000 1000000 11453ab4af3SHans de Goede >; 11553ab4af3SHans de Goede #cooling-cells = <2>; 11653ab4af3SHans de Goede }; 11753ab4af3SHans de Goede 11853ab4af3SHans de Goede cpu@1 { 11953ab4af3SHans de Goede compatible = "arm,cortex-a7"; 12053ab4af3SHans de Goede device_type = "cpu"; 12153ab4af3SHans de Goede reg = <1>; 12253ab4af3SHans de Goede }; 12353ab4af3SHans de Goede 12453ab4af3SHans de Goede cpu@2 { 12553ab4af3SHans de Goede compatible = "arm,cortex-a7"; 12653ab4af3SHans de Goede device_type = "cpu"; 12753ab4af3SHans de Goede reg = <2>; 12853ab4af3SHans de Goede }; 12953ab4af3SHans de Goede 13053ab4af3SHans de Goede cpu@3 { 13153ab4af3SHans de Goede compatible = "arm,cortex-a7"; 13253ab4af3SHans de Goede device_type = "cpu"; 13353ab4af3SHans de Goede reg = <3>; 13453ab4af3SHans de Goede }; 13553ab4af3SHans de Goede }; 13653ab4af3SHans de Goede 13753ab4af3SHans de Goede thermal-zones { 13853ab4af3SHans de Goede cpu_thermal { 13953ab4af3SHans de Goede /* milliseconds */ 14053ab4af3SHans de Goede polling-delay-passive = <250>; 14153ab4af3SHans de Goede polling-delay = <1000>; 14253ab4af3SHans de Goede thermal-sensors = <&rtp>; 14353ab4af3SHans de Goede 14453ab4af3SHans de Goede cooling-maps { 14553ab4af3SHans de Goede map0 { 14653ab4af3SHans de Goede trip = <&cpu_alert0>; 14753ab4af3SHans de Goede cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 14853ab4af3SHans de Goede }; 14953ab4af3SHans de Goede }; 15053ab4af3SHans de Goede 15153ab4af3SHans de Goede trips { 15253ab4af3SHans de Goede cpu_alert0: cpu_alert0 { 15353ab4af3SHans de Goede /* milliCelsius */ 15453ab4af3SHans de Goede temperature = <70000>; 15553ab4af3SHans de Goede hysteresis = <2000>; 15653ab4af3SHans de Goede type = "passive"; 15753ab4af3SHans de Goede }; 15853ab4af3SHans de Goede 15953ab4af3SHans de Goede cpu_crit: cpu_crit { 16053ab4af3SHans de Goede /* milliCelsius */ 16153ab4af3SHans de Goede temperature = <100000>; 16253ab4af3SHans de Goede hysteresis = <2000>; 16353ab4af3SHans de Goede type = "critical"; 16453ab4af3SHans de Goede }; 16553ab4af3SHans de Goede }; 16653ab4af3SHans de Goede }; 16753ab4af3SHans de Goede }; 16853ab4af3SHans de Goede 16953ab4af3SHans de Goede memory { 17053ab4af3SHans de Goede reg = <0x40000000 0x80000000>; 17153ab4af3SHans de Goede }; 17253ab4af3SHans de Goede 17353ab4af3SHans de Goede pmu { 17453ab4af3SHans de Goede compatible = "arm,cortex-a7-pmu", "arm,cortex-a15-pmu"; 17553ab4af3SHans de Goede interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 17653ab4af3SHans de Goede <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 17753ab4af3SHans de Goede <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 17853ab4af3SHans de Goede <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; 17953ab4af3SHans de Goede }; 18053ab4af3SHans de Goede 18153ab4af3SHans de Goede clocks { 18253ab4af3SHans de Goede #address-cells = <1>; 18353ab4af3SHans de Goede #size-cells = <1>; 18453ab4af3SHans de Goede ranges; 18553ab4af3SHans de Goede 18653ab4af3SHans de Goede osc24M: osc24M { 18753ab4af3SHans de Goede #clock-cells = <0>; 18853ab4af3SHans de Goede compatible = "fixed-clock"; 18953ab4af3SHans de Goede clock-frequency = <24000000>; 19053ab4af3SHans de Goede }; 19153ab4af3SHans de Goede 19253ab4af3SHans de Goede osc32k: clk@0 { 19353ab4af3SHans de Goede #clock-cells = <0>; 19453ab4af3SHans de Goede compatible = "fixed-clock"; 19553ab4af3SHans de Goede clock-frequency = <32768>; 19653ab4af3SHans de Goede clock-output-names = "osc32k"; 19753ab4af3SHans de Goede }; 19853ab4af3SHans de Goede 19953ab4af3SHans de Goede /* 2008b1ba941SHans de Goede * The following two are dummy clocks, placeholders 2018b1ba941SHans de Goede * used in the gmac_tx clock. The gmac driver will 2028b1ba941SHans de Goede * choose one parent depending on the PHY interface 2038b1ba941SHans de Goede * mode, using clk_set_rate auto-reparenting. 2048b1ba941SHans de Goede * 2058b1ba941SHans de Goede * The actual TX clock rate is not controlled by the 2068b1ba941SHans de Goede * gmac_tx clock. 20753ab4af3SHans de Goede */ 20853ab4af3SHans de Goede mii_phy_tx_clk: clk@1 { 20953ab4af3SHans de Goede #clock-cells = <0>; 21053ab4af3SHans de Goede compatible = "fixed-clock"; 21153ab4af3SHans de Goede clock-frequency = <25000000>; 21253ab4af3SHans de Goede clock-output-names = "mii_phy_tx"; 21353ab4af3SHans de Goede }; 21453ab4af3SHans de Goede 21553ab4af3SHans de Goede gmac_int_tx_clk: clk@2 { 21653ab4af3SHans de Goede #clock-cells = <0>; 21753ab4af3SHans de Goede compatible = "fixed-clock"; 21853ab4af3SHans de Goede clock-frequency = <125000000>; 21953ab4af3SHans de Goede clock-output-names = "gmac_int_tx"; 22053ab4af3SHans de Goede }; 22153ab4af3SHans de Goede 222*d1d4295aSJagan Teki gmac_tx_clk: clk@1c200d0 { 22353ab4af3SHans de Goede #clock-cells = <0>; 22453ab4af3SHans de Goede compatible = "allwinner,sun7i-a20-gmac-clk"; 22553ab4af3SHans de Goede reg = <0x01c200d0 0x4>; 22653ab4af3SHans de Goede clocks = <&mii_phy_tx_clk>, <&gmac_int_tx_clk>; 22753ab4af3SHans de Goede clock-output-names = "gmac_tx"; 22853ab4af3SHans de Goede }; 22953ab4af3SHans de Goede }; 23053ab4af3SHans de Goede 231*d1d4295aSJagan Teki de: display-engine { 232*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-display-engine"; 233*d1d4295aSJagan Teki allwinner,pipelines = <&fe0>, <&fe1>; 234*d1d4295aSJagan Teki status = "disabled"; 235*d1d4295aSJagan Teki }; 236*d1d4295aSJagan Teki 237*d1d4295aSJagan Teki soc@1c00000 { 23853ab4af3SHans de Goede compatible = "simple-bus"; 23953ab4af3SHans de Goede #address-cells = <1>; 24053ab4af3SHans de Goede #size-cells = <1>; 24153ab4af3SHans de Goede ranges; 24253ab4af3SHans de Goede 243*d1d4295aSJagan Teki dma: dma-controller@1c02000 { 24453ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-dma"; 24553ab4af3SHans de Goede reg = <0x01c02000 0x1000>; 24653ab4af3SHans de Goede interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 247*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_DMA>; 248*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_DMA>; 24953ab4af3SHans de Goede #dma-cells = <1>; 25053ab4af3SHans de Goede }; 25153ab4af3SHans de Goede 252*d1d4295aSJagan Teki tcon0: lcd-controller@1c0c000 { 253*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-tcon"; 254*d1d4295aSJagan Teki reg = <0x01c0c000 0x1000>; 255*d1d4295aSJagan Teki interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 256*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_LCD0>; 257*d1d4295aSJagan Teki reset-names = "lcd"; 258*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_LCD0>, 259*d1d4295aSJagan Teki <&ccu CLK_LCD0_CH0>, 260*d1d4295aSJagan Teki <&ccu CLK_LCD0_CH1>; 261*d1d4295aSJagan Teki clock-names = "ahb", 262*d1d4295aSJagan Teki "tcon-ch0", 263*d1d4295aSJagan Teki "tcon-ch1"; 264*d1d4295aSJagan Teki clock-output-names = "tcon0-pixel-clock"; 265*d1d4295aSJagan Teki 266*d1d4295aSJagan Teki ports { 267*d1d4295aSJagan Teki #address-cells = <1>; 268*d1d4295aSJagan Teki #size-cells = <0>; 269*d1d4295aSJagan Teki 270*d1d4295aSJagan Teki tcon0_in: port@0 { 271*d1d4295aSJagan Teki #address-cells = <1>; 272*d1d4295aSJagan Teki #size-cells = <0>; 273*d1d4295aSJagan Teki reg = <0>; 274*d1d4295aSJagan Teki 275*d1d4295aSJagan Teki tcon0_in_drc0: endpoint@0 { 276*d1d4295aSJagan Teki reg = <0>; 277*d1d4295aSJagan Teki remote-endpoint = <&drc0_out_tcon0>; 278*d1d4295aSJagan Teki }; 279*d1d4295aSJagan Teki 280*d1d4295aSJagan Teki tcon0_in_drc1: endpoint@1 { 281*d1d4295aSJagan Teki reg = <1>; 282*d1d4295aSJagan Teki remote-endpoint = <&drc1_out_tcon0>; 283*d1d4295aSJagan Teki }; 284*d1d4295aSJagan Teki }; 285*d1d4295aSJagan Teki 286*d1d4295aSJagan Teki tcon0_out: port@1 { 287*d1d4295aSJagan Teki #address-cells = <1>; 288*d1d4295aSJagan Teki #size-cells = <0>; 289*d1d4295aSJagan Teki reg = <1>; 290*d1d4295aSJagan Teki 291*d1d4295aSJagan Teki tcon0_out_hdmi: endpoint@1 { 292*d1d4295aSJagan Teki reg = <1>; 293*d1d4295aSJagan Teki remote-endpoint = <&hdmi_in_tcon0>; 294*d1d4295aSJagan Teki allwinner,tcon-channel = <1>; 295*d1d4295aSJagan Teki }; 296*d1d4295aSJagan Teki }; 297*d1d4295aSJagan Teki }; 298*d1d4295aSJagan Teki }; 299*d1d4295aSJagan Teki 300*d1d4295aSJagan Teki tcon1: lcd-controller@1c0d000 { 301*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-tcon"; 302*d1d4295aSJagan Teki reg = <0x01c0d000 0x1000>; 303*d1d4295aSJagan Teki interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 304*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_LCD1>; 305*d1d4295aSJagan Teki reset-names = "lcd"; 306*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_LCD1>, 307*d1d4295aSJagan Teki <&ccu CLK_LCD1_CH0>, 308*d1d4295aSJagan Teki <&ccu CLK_LCD1_CH1>; 309*d1d4295aSJagan Teki clock-names = "ahb", 310*d1d4295aSJagan Teki "tcon-ch0", 311*d1d4295aSJagan Teki "tcon-ch1"; 312*d1d4295aSJagan Teki clock-output-names = "tcon1-pixel-clock"; 313*d1d4295aSJagan Teki 314*d1d4295aSJagan Teki ports { 315*d1d4295aSJagan Teki #address-cells = <1>; 316*d1d4295aSJagan Teki #size-cells = <0>; 317*d1d4295aSJagan Teki 318*d1d4295aSJagan Teki tcon1_in: port@0 { 319*d1d4295aSJagan Teki #address-cells = <1>; 320*d1d4295aSJagan Teki #size-cells = <0>; 321*d1d4295aSJagan Teki reg = <0>; 322*d1d4295aSJagan Teki 323*d1d4295aSJagan Teki tcon1_in_drc0: endpoint@0 { 324*d1d4295aSJagan Teki reg = <0>; 325*d1d4295aSJagan Teki remote-endpoint = <&drc0_out_tcon1>; 326*d1d4295aSJagan Teki }; 327*d1d4295aSJagan Teki 328*d1d4295aSJagan Teki tcon1_in_drc1: endpoint@1 { 329*d1d4295aSJagan Teki reg = <1>; 330*d1d4295aSJagan Teki remote-endpoint = <&drc1_out_tcon1>; 331*d1d4295aSJagan Teki }; 332*d1d4295aSJagan Teki }; 333*d1d4295aSJagan Teki 334*d1d4295aSJagan Teki tcon1_out: port@1 { 335*d1d4295aSJagan Teki #address-cells = <1>; 336*d1d4295aSJagan Teki #size-cells = <0>; 337*d1d4295aSJagan Teki reg = <1>; 338*d1d4295aSJagan Teki 339*d1d4295aSJagan Teki tcon1_out_hdmi: endpoint@1 { 340*d1d4295aSJagan Teki reg = <1>; 341*d1d4295aSJagan Teki remote-endpoint = <&hdmi_in_tcon1>; 342*d1d4295aSJagan Teki allwinner,tcon-channel = <1>; 343*d1d4295aSJagan Teki }; 344*d1d4295aSJagan Teki }; 345*d1d4295aSJagan Teki }; 346*d1d4295aSJagan Teki }; 347*d1d4295aSJagan Teki 348*d1d4295aSJagan Teki mmc0: mmc@1c0f000 { 349*d1d4295aSJagan Teki compatible = "allwinner,sun7i-a20-mmc"; 35053ab4af3SHans de Goede reg = <0x01c0f000 0x1000>; 351*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_MMC0>, 352*d1d4295aSJagan Teki <&ccu CLK_MMC0>, 353*d1d4295aSJagan Teki <&ccu CLK_MMC0_OUTPUT>, 354*d1d4295aSJagan Teki <&ccu CLK_MMC0_SAMPLE>; 35553ab4af3SHans de Goede clock-names = "ahb", 35653ab4af3SHans de Goede "mmc", 35753ab4af3SHans de Goede "output", 35853ab4af3SHans de Goede "sample"; 359*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_MMC0>; 36053ab4af3SHans de Goede reset-names = "ahb"; 36153ab4af3SHans de Goede interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 36253ab4af3SHans de Goede status = "disabled"; 36353ab4af3SHans de Goede #address-cells = <1>; 36453ab4af3SHans de Goede #size-cells = <0>; 36553ab4af3SHans de Goede }; 36653ab4af3SHans de Goede 367*d1d4295aSJagan Teki mmc1: mmc@1c10000 { 368*d1d4295aSJagan Teki compatible = "allwinner,sun7i-a20-mmc"; 36953ab4af3SHans de Goede reg = <0x01c10000 0x1000>; 370*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_MMC1>, 371*d1d4295aSJagan Teki <&ccu CLK_MMC1>, 372*d1d4295aSJagan Teki <&ccu CLK_MMC1_OUTPUT>, 373*d1d4295aSJagan Teki <&ccu CLK_MMC1_SAMPLE>; 37453ab4af3SHans de Goede clock-names = "ahb", 37553ab4af3SHans de Goede "mmc", 37653ab4af3SHans de Goede "output", 37753ab4af3SHans de Goede "sample"; 378*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_MMC1>; 37953ab4af3SHans de Goede reset-names = "ahb"; 38053ab4af3SHans de Goede interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 38153ab4af3SHans de Goede status = "disabled"; 38253ab4af3SHans de Goede #address-cells = <1>; 38353ab4af3SHans de Goede #size-cells = <0>; 38453ab4af3SHans de Goede }; 38553ab4af3SHans de Goede 386*d1d4295aSJagan Teki mmc2: mmc@1c11000 { 387*d1d4295aSJagan Teki compatible = "allwinner,sun7i-a20-mmc"; 38853ab4af3SHans de Goede reg = <0x01c11000 0x1000>; 389*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_MMC2>, 390*d1d4295aSJagan Teki <&ccu CLK_MMC2>, 391*d1d4295aSJagan Teki <&ccu CLK_MMC2_OUTPUT>, 392*d1d4295aSJagan Teki <&ccu CLK_MMC2_SAMPLE>; 39353ab4af3SHans de Goede clock-names = "ahb", 39453ab4af3SHans de Goede "mmc", 39553ab4af3SHans de Goede "output", 39653ab4af3SHans de Goede "sample"; 397*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_MMC2>; 39853ab4af3SHans de Goede reset-names = "ahb"; 39953ab4af3SHans de Goede interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 40053ab4af3SHans de Goede status = "disabled"; 40153ab4af3SHans de Goede #address-cells = <1>; 40253ab4af3SHans de Goede #size-cells = <0>; 40353ab4af3SHans de Goede }; 40453ab4af3SHans de Goede 405*d1d4295aSJagan Teki mmc3: mmc@1c12000 { 406*d1d4295aSJagan Teki compatible = "allwinner,sun7i-a20-mmc"; 40753ab4af3SHans de Goede reg = <0x01c12000 0x1000>; 408*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_MMC3>, 409*d1d4295aSJagan Teki <&ccu CLK_MMC3>, 410*d1d4295aSJagan Teki <&ccu CLK_MMC3_OUTPUT>, 411*d1d4295aSJagan Teki <&ccu CLK_MMC3_SAMPLE>; 41253ab4af3SHans de Goede clock-names = "ahb", 41353ab4af3SHans de Goede "mmc", 41453ab4af3SHans de Goede "output", 41553ab4af3SHans de Goede "sample"; 416*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_MMC3>; 41753ab4af3SHans de Goede reset-names = "ahb"; 41853ab4af3SHans de Goede interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 41953ab4af3SHans de Goede status = "disabled"; 42053ab4af3SHans de Goede #address-cells = <1>; 42153ab4af3SHans de Goede #size-cells = <0>; 42253ab4af3SHans de Goede }; 42353ab4af3SHans de Goede 424*d1d4295aSJagan Teki hdmi: hdmi@1c16000 { 425*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-hdmi"; 426*d1d4295aSJagan Teki reg = <0x01c16000 0x1000>; 427*d1d4295aSJagan Teki interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 428*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_HDMI>, <&ccu CLK_HDMI>, 429*d1d4295aSJagan Teki <&ccu CLK_HDMI_DDC>, 430*d1d4295aSJagan Teki <&ccu CLK_PLL_VIDEO0_2X>, 431*d1d4295aSJagan Teki <&ccu CLK_PLL_VIDEO1_2X>; 432*d1d4295aSJagan Teki clock-names = "ahb", "mod", "ddc", "pll-0", "pll-1"; 433*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_HDMI>; 434*d1d4295aSJagan Teki reset-names = "ahb"; 435*d1d4295aSJagan Teki dma-names = "ddc-tx", "ddc-rx", "audio-tx"; 436*d1d4295aSJagan Teki dmas = <&dma 13>, <&dma 13>, <&dma 14>; 437*d1d4295aSJagan Teki status = "disabled"; 438*d1d4295aSJagan Teki 439*d1d4295aSJagan Teki ports { 440*d1d4295aSJagan Teki #address-cells = <1>; 441*d1d4295aSJagan Teki #size-cells = <0>; 442*d1d4295aSJagan Teki 443*d1d4295aSJagan Teki hdmi_in: port@0 { 444*d1d4295aSJagan Teki #address-cells = <1>; 445*d1d4295aSJagan Teki #size-cells = <0>; 446*d1d4295aSJagan Teki reg = <0>; 447*d1d4295aSJagan Teki 448*d1d4295aSJagan Teki hdmi_in_tcon0: endpoint@0 { 449*d1d4295aSJagan Teki reg = <0>; 450*d1d4295aSJagan Teki remote-endpoint = <&tcon0_out_hdmi>; 451*d1d4295aSJagan Teki }; 452*d1d4295aSJagan Teki 453*d1d4295aSJagan Teki hdmi_in_tcon1: endpoint@1 { 454*d1d4295aSJagan Teki reg = <1>; 455*d1d4295aSJagan Teki remote-endpoint = <&tcon1_out_hdmi>; 456*d1d4295aSJagan Teki }; 457*d1d4295aSJagan Teki }; 458*d1d4295aSJagan Teki 459*d1d4295aSJagan Teki hdmi_out: port@1 { 460*d1d4295aSJagan Teki #address-cells = <1>; 461*d1d4295aSJagan Teki #size-cells = <0>; 462*d1d4295aSJagan Teki reg = <1>; 463*d1d4295aSJagan Teki }; 464*d1d4295aSJagan Teki }; 465*d1d4295aSJagan Teki }; 466*d1d4295aSJagan Teki 467*d1d4295aSJagan Teki usb_otg: usb@1c19000 { 468da52a4a3SHans de Goede compatible = "allwinner,sun6i-a31-musb"; 469da52a4a3SHans de Goede reg = <0x01c19000 0x0400>; 470*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_OTG>; 471*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_OTG>; 472da52a4a3SHans de Goede interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 473da52a4a3SHans de Goede interrupt-names = "mc"; 474da52a4a3SHans de Goede phys = <&usbphy 0>; 475da52a4a3SHans de Goede phy-names = "usb"; 476da52a4a3SHans de Goede extcon = <&usbphy 0>; 477da52a4a3SHans de Goede status = "disabled"; 478da52a4a3SHans de Goede }; 479da52a4a3SHans de Goede 480*d1d4295aSJagan Teki usbphy: phy@1c19400 { 48153ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-usb-phy"; 48253ab4af3SHans de Goede reg = <0x01c19400 0x10>, 48353ab4af3SHans de Goede <0x01c1a800 0x4>, 48453ab4af3SHans de Goede <0x01c1b800 0x4>; 48553ab4af3SHans de Goede reg-names = "phy_ctrl", 48653ab4af3SHans de Goede "pmu1", 48753ab4af3SHans de Goede "pmu2"; 488*d1d4295aSJagan Teki clocks = <&ccu CLK_USB_PHY0>, 489*d1d4295aSJagan Teki <&ccu CLK_USB_PHY1>, 490*d1d4295aSJagan Teki <&ccu CLK_USB_PHY2>; 49153ab4af3SHans de Goede clock-names = "usb0_phy", 49253ab4af3SHans de Goede "usb1_phy", 49353ab4af3SHans de Goede "usb2_phy"; 494*d1d4295aSJagan Teki resets = <&ccu RST_USB_PHY0>, 495*d1d4295aSJagan Teki <&ccu RST_USB_PHY1>, 496*d1d4295aSJagan Teki <&ccu RST_USB_PHY2>; 49753ab4af3SHans de Goede reset-names = "usb0_reset", 49853ab4af3SHans de Goede "usb1_reset", 49953ab4af3SHans de Goede "usb2_reset"; 50053ab4af3SHans de Goede status = "disabled"; 50153ab4af3SHans de Goede #phy-cells = <1>; 50253ab4af3SHans de Goede }; 50353ab4af3SHans de Goede 504*d1d4295aSJagan Teki ehci0: usb@1c1a000 { 50553ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ehci", "generic-ehci"; 50653ab4af3SHans de Goede reg = <0x01c1a000 0x100>; 50753ab4af3SHans de Goede interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 508*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_EHCI0>; 509*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_EHCI0>; 51053ab4af3SHans de Goede phys = <&usbphy 1>; 51153ab4af3SHans de Goede phy-names = "usb"; 51253ab4af3SHans de Goede status = "disabled"; 51353ab4af3SHans de Goede }; 51453ab4af3SHans de Goede 515*d1d4295aSJagan Teki ohci0: usb@1c1a400 { 51653ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ohci", "generic-ohci"; 51753ab4af3SHans de Goede reg = <0x01c1a400 0x100>; 51853ab4af3SHans de Goede interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 519*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_OHCI0>, <&ccu CLK_USB_OHCI0>; 520*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_OHCI0>; 52153ab4af3SHans de Goede phys = <&usbphy 1>; 52253ab4af3SHans de Goede phy-names = "usb"; 52353ab4af3SHans de Goede status = "disabled"; 52453ab4af3SHans de Goede }; 52553ab4af3SHans de Goede 526*d1d4295aSJagan Teki ehci1: usb@1c1b000 { 52753ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ehci", "generic-ehci"; 52853ab4af3SHans de Goede reg = <0x01c1b000 0x100>; 52953ab4af3SHans de Goede interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 530*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_EHCI1>; 531*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_EHCI1>; 53253ab4af3SHans de Goede phys = <&usbphy 2>; 53353ab4af3SHans de Goede phy-names = "usb"; 53453ab4af3SHans de Goede status = "disabled"; 53553ab4af3SHans de Goede }; 53653ab4af3SHans de Goede 537*d1d4295aSJagan Teki ohci1: usb@1c1b400 { 53853ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ohci", "generic-ohci"; 53953ab4af3SHans de Goede reg = <0x01c1b400 0x100>; 54053ab4af3SHans de Goede interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 541*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_OHCI1>, <&ccu CLK_USB_OHCI1>; 542*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_OHCI1>; 54353ab4af3SHans de Goede phys = <&usbphy 2>; 54453ab4af3SHans de Goede phy-names = "usb"; 54553ab4af3SHans de Goede status = "disabled"; 54653ab4af3SHans de Goede }; 54753ab4af3SHans de Goede 548*d1d4295aSJagan Teki ohci2: usb@1c1c400 { 54953ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ohci", "generic-ohci"; 55053ab4af3SHans de Goede reg = <0x01c1c400 0x100>; 55153ab4af3SHans de Goede interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 552*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_OHCI2>, <&ccu CLK_USB_OHCI2>; 553*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_OHCI2>; 55453ab4af3SHans de Goede status = "disabled"; 55553ab4af3SHans de Goede }; 55653ab4af3SHans de Goede 557*d1d4295aSJagan Teki ccu: clock@1c20000 { 558*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-ccu"; 559*d1d4295aSJagan Teki reg = <0x01c20000 0x400>; 560*d1d4295aSJagan Teki clocks = <&osc24M>, <&osc32k>; 561*d1d4295aSJagan Teki clock-names = "hosc", "losc"; 562*d1d4295aSJagan Teki #clock-cells = <1>; 563*d1d4295aSJagan Teki #reset-cells = <1>; 564*d1d4295aSJagan Teki }; 565*d1d4295aSJagan Teki 566*d1d4295aSJagan Teki pio: pinctrl@1c20800 { 56753ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-pinctrl"; 56853ab4af3SHans de Goede reg = <0x01c20800 0x400>; 56953ab4af3SHans de Goede interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 57053ab4af3SHans de Goede <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 57153ab4af3SHans de Goede <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 57253ab4af3SHans de Goede <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 573*d1d4295aSJagan Teki clocks = <&ccu CLK_APB1_PIO>, <&osc24M>, <&osc32k>; 574*d1d4295aSJagan Teki clock-names = "apb", "hosc", "losc"; 57553ab4af3SHans de Goede gpio-controller; 57653ab4af3SHans de Goede interrupt-controller; 577da52a4a3SHans de Goede #interrupt-cells = <3>; 57853ab4af3SHans de Goede #gpio-cells = <3>; 57953ab4af3SHans de Goede 58053ab4af3SHans de Goede gmac_pins_gmii_a: gmac_gmii@0 { 581*d1d4295aSJagan Teki pins = "PA0", "PA1", "PA2", "PA3", 58253ab4af3SHans de Goede "PA4", "PA5", "PA6", "PA7", 58353ab4af3SHans de Goede "PA8", "PA9", "PA10", "PA11", 58453ab4af3SHans de Goede "PA12", "PA13", "PA14", "PA15", 58553ab4af3SHans de Goede "PA16", "PA17", "PA18", "PA19", 58653ab4af3SHans de Goede "PA20", "PA21", "PA22", "PA23", 58753ab4af3SHans de Goede "PA24", "PA25", "PA26", "PA27"; 588*d1d4295aSJagan Teki function = "gmac"; 58953ab4af3SHans de Goede /* 59053ab4af3SHans de Goede * data lines in GMII mode run at 125MHz and 59153ab4af3SHans de Goede * might need a higher signal drive strength 59253ab4af3SHans de Goede */ 593*d1d4295aSJagan Teki drive-strength = <30>; 594*d1d4295aSJagan Teki }; 595*d1d4295aSJagan Teki 596*d1d4295aSJagan Teki gmac_pins_mii_a: gmac_mii@0 { 597*d1d4295aSJagan Teki pins = "PA0", "PA1", "PA2", "PA3", 598*d1d4295aSJagan Teki "PA8", "PA9", "PA11", 599*d1d4295aSJagan Teki "PA12", "PA13", "PA14", "PA19", 600*d1d4295aSJagan Teki "PA20", "PA21", "PA22", "PA23", 601*d1d4295aSJagan Teki "PA24", "PA26", "PA27"; 602*d1d4295aSJagan Teki function = "gmac"; 60353ab4af3SHans de Goede }; 60453ab4af3SHans de Goede 60553ab4af3SHans de Goede gmac_pins_rgmii_a: gmac_rgmii@0 { 606*d1d4295aSJagan Teki pins = "PA0", "PA1", "PA2", "PA3", 60753ab4af3SHans de Goede "PA9", "PA10", "PA11", 60853ab4af3SHans de Goede "PA12", "PA13", "PA14", "PA19", 60953ab4af3SHans de Goede "PA20", "PA25", "PA26", "PA27"; 610*d1d4295aSJagan Teki function = "gmac"; 61153ab4af3SHans de Goede /* 61253ab4af3SHans de Goede * data lines in RGMII mode use DDR mode 61353ab4af3SHans de Goede * and need a higher signal drive strength 61453ab4af3SHans de Goede */ 615*d1d4295aSJagan Teki drive-strength = <40>; 616*d1d4295aSJagan Teki }; 617*d1d4295aSJagan Teki 618*d1d4295aSJagan Teki i2c0_pins_a: i2c0@0 { 619*d1d4295aSJagan Teki pins = "PH14", "PH15"; 620*d1d4295aSJagan Teki function = "i2c0"; 621*d1d4295aSJagan Teki }; 622*d1d4295aSJagan Teki 623*d1d4295aSJagan Teki i2c1_pins_a: i2c1@0 { 624*d1d4295aSJagan Teki pins = "PH16", "PH17"; 625*d1d4295aSJagan Teki function = "i2c1"; 626*d1d4295aSJagan Teki }; 627*d1d4295aSJagan Teki 628*d1d4295aSJagan Teki i2c2_pins_a: i2c2@0 { 629*d1d4295aSJagan Teki pins = "PH18", "PH19"; 630*d1d4295aSJagan Teki function = "i2c2"; 631*d1d4295aSJagan Teki }; 632*d1d4295aSJagan Teki 633*d1d4295aSJagan Teki lcd0_rgb888_pins: lcd0_rgb888 { 634*d1d4295aSJagan Teki pins = "PD0", "PD1", "PD2", "PD3", 635*d1d4295aSJagan Teki "PD4", "PD5", "PD6", "PD7", 636*d1d4295aSJagan Teki "PD8", "PD9", "PD10", "PD11", 637*d1d4295aSJagan Teki "PD12", "PD13", "PD14", "PD15", 638*d1d4295aSJagan Teki "PD16", "PD17", "PD18", "PD19", 639*d1d4295aSJagan Teki "PD20", "PD21", "PD22", "PD23", 640*d1d4295aSJagan Teki "PD24", "PD25", "PD26", "PD27"; 641*d1d4295aSJagan Teki function = "lcd0"; 642*d1d4295aSJagan Teki }; 643*d1d4295aSJagan Teki 644*d1d4295aSJagan Teki mmc0_pins_a: mmc0@0 { 645*d1d4295aSJagan Teki pins = "PF0", "PF1", "PF2", 646*d1d4295aSJagan Teki "PF3", "PF4", "PF5"; 647*d1d4295aSJagan Teki function = "mmc0"; 648*d1d4295aSJagan Teki drive-strength = <30>; 649*d1d4295aSJagan Teki bias-pull-up; 650*d1d4295aSJagan Teki }; 651*d1d4295aSJagan Teki 652*d1d4295aSJagan Teki mmc1_pins_a: mmc1@0 { 653*d1d4295aSJagan Teki pins = "PG0", "PG1", "PG2", "PG3", 654*d1d4295aSJagan Teki "PG4", "PG5"; 655*d1d4295aSJagan Teki function = "mmc1"; 656*d1d4295aSJagan Teki drive-strength = <30>; 657*d1d4295aSJagan Teki bias-pull-up; 658*d1d4295aSJagan Teki }; 659*d1d4295aSJagan Teki 660*d1d4295aSJagan Teki mmc2_pins_a: mmc2@0 { 661*d1d4295aSJagan Teki pins = "PC6", "PC7", "PC8", "PC9", 662*d1d4295aSJagan Teki "PC10", "PC11"; 663*d1d4295aSJagan Teki function = "mmc2"; 664*d1d4295aSJagan Teki drive-strength = <30>; 665*d1d4295aSJagan Teki bias-pull-up; 666*d1d4295aSJagan Teki }; 667*d1d4295aSJagan Teki 668*d1d4295aSJagan Teki mmc2_8bit_emmc_pins: mmc2@1 { 669*d1d4295aSJagan Teki pins = "PC6", "PC7", "PC8", "PC9", 670*d1d4295aSJagan Teki "PC10", "PC11", "PC12", 671*d1d4295aSJagan Teki "PC13", "PC14", "PC15", 672*d1d4295aSJagan Teki "PC24"; 673*d1d4295aSJagan Teki function = "mmc2"; 674*d1d4295aSJagan Teki drive-strength = <30>; 675*d1d4295aSJagan Teki bias-pull-up; 676*d1d4295aSJagan Teki }; 677*d1d4295aSJagan Teki 678*d1d4295aSJagan Teki mmc3_8bit_emmc_pins: mmc3@1 { 679*d1d4295aSJagan Teki pins = "PC6", "PC7", "PC8", "PC9", 680*d1d4295aSJagan Teki "PC10", "PC11", "PC12", 681*d1d4295aSJagan Teki "PC13", "PC14", "PC15", 682*d1d4295aSJagan Teki "PC24"; 683*d1d4295aSJagan Teki function = "mmc3"; 684*d1d4295aSJagan Teki drive-strength = <40>; 685*d1d4295aSJagan Teki bias-pull-up; 686*d1d4295aSJagan Teki }; 687*d1d4295aSJagan Teki 688*d1d4295aSJagan Teki spdif_pins_a: spdif@0 { 689*d1d4295aSJagan Teki pins = "PH28"; 690*d1d4295aSJagan Teki function = "spdif"; 691*d1d4295aSJagan Teki }; 692*d1d4295aSJagan Teki 693*d1d4295aSJagan Teki uart0_pins_a: uart0@0 { 694*d1d4295aSJagan Teki pins = "PH20", "PH21"; 695*d1d4295aSJagan Teki function = "uart0"; 69653ab4af3SHans de Goede }; 69753ab4af3SHans de Goede }; 69853ab4af3SHans de Goede 699*d1d4295aSJagan Teki timer@1c20c00 { 70053ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-timer"; 70153ab4af3SHans de Goede reg = <0x01c20c00 0xa0>; 70253ab4af3SHans de Goede interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 70353ab4af3SHans de Goede <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 70453ab4af3SHans de Goede <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, 70553ab4af3SHans de Goede <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>, 70653ab4af3SHans de Goede <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 70753ab4af3SHans de Goede clocks = <&osc24M>; 70853ab4af3SHans de Goede }; 70953ab4af3SHans de Goede 710*d1d4295aSJagan Teki wdt1: watchdog@1c20ca0 { 71153ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-wdt"; 71253ab4af3SHans de Goede reg = <0x01c20ca0 0x20>; 71353ab4af3SHans de Goede }; 71453ab4af3SHans de Goede 715*d1d4295aSJagan Teki spdif: spdif@1c21000 { 716*d1d4295aSJagan Teki #sound-dai-cells = <0>; 717*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-spdif"; 718*d1d4295aSJagan Teki reg = <0x01c21000 0x400>; 719*d1d4295aSJagan Teki interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 720*d1d4295aSJagan Teki clocks = <&ccu CLK_APB1_SPDIF>, <&ccu CLK_SPDIF>; 721*d1d4295aSJagan Teki resets = <&ccu RST_APB1_SPDIF>; 722*d1d4295aSJagan Teki clock-names = "apb", "spdif"; 723*d1d4295aSJagan Teki dmas = <&dma 2>, <&dma 2>; 724*d1d4295aSJagan Teki dma-names = "rx", "tx"; 725*d1d4295aSJagan Teki status = "disabled"; 726*d1d4295aSJagan Teki }; 727*d1d4295aSJagan Teki 728*d1d4295aSJagan Teki i2s0: i2s@1c22000 { 729*d1d4295aSJagan Teki #sound-dai-cells = <0>; 730*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-i2s"; 731*d1d4295aSJagan Teki reg = <0x01c22000 0x400>; 732*d1d4295aSJagan Teki interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 733*d1d4295aSJagan Teki clocks = <&ccu CLK_APB1_DAUDIO0>, <&ccu CLK_DAUDIO0>; 734*d1d4295aSJagan Teki resets = <&ccu RST_APB1_DAUDIO0>; 735*d1d4295aSJagan Teki clock-names = "apb", "mod"; 736*d1d4295aSJagan Teki dmas = <&dma 3>, <&dma 3>; 737*d1d4295aSJagan Teki dma-names = "rx", "tx"; 738*d1d4295aSJagan Teki status = "disabled"; 739*d1d4295aSJagan Teki }; 740*d1d4295aSJagan Teki 741*d1d4295aSJagan Teki i2s1: i2s@1c22400 { 742*d1d4295aSJagan Teki #sound-dai-cells = <0>; 743*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-i2s"; 744*d1d4295aSJagan Teki reg = <0x01c22400 0x400>; 745*d1d4295aSJagan Teki interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 746*d1d4295aSJagan Teki clocks = <&ccu CLK_APB1_DAUDIO1>, <&ccu CLK_DAUDIO1>; 747*d1d4295aSJagan Teki resets = <&ccu RST_APB1_DAUDIO1>; 748*d1d4295aSJagan Teki clock-names = "apb", "mod"; 749*d1d4295aSJagan Teki dmas = <&dma 4>, <&dma 4>; 750*d1d4295aSJagan Teki dma-names = "rx", "tx"; 751*d1d4295aSJagan Teki status = "disabled"; 752*d1d4295aSJagan Teki }; 753*d1d4295aSJagan Teki 754*d1d4295aSJagan Teki lradc: lradc@1c22800 { 75580e5f83cSHans de Goede compatible = "allwinner,sun4i-a10-lradc-keys"; 75680e5f83cSHans de Goede reg = <0x01c22800 0x100>; 75780e5f83cSHans de Goede interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 75880e5f83cSHans de Goede status = "disabled"; 75980e5f83cSHans de Goede }; 76080e5f83cSHans de Goede 761*d1d4295aSJagan Teki rtp: rtp@1c25000 { 76253ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ts"; 76353ab4af3SHans de Goede reg = <0x01c25000 0x100>; 76453ab4af3SHans de Goede interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 76553ab4af3SHans de Goede #thermal-sensor-cells = <0>; 76653ab4af3SHans de Goede }; 76753ab4af3SHans de Goede 768*d1d4295aSJagan Teki uart0: serial@1c28000 { 76953ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 77053ab4af3SHans de Goede reg = <0x01c28000 0x400>; 77153ab4af3SHans de Goede interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 77253ab4af3SHans de Goede reg-shift = <2>; 77353ab4af3SHans de Goede reg-io-width = <4>; 774*d1d4295aSJagan Teki clocks = <&ccu CLK_APB2_UART0>; 775*d1d4295aSJagan Teki resets = <&ccu RST_APB2_UART0>; 77653ab4af3SHans de Goede dmas = <&dma 6>, <&dma 6>; 77753ab4af3SHans de Goede dma-names = "rx", "tx"; 77853ab4af3SHans de Goede status = "disabled"; 77953ab4af3SHans de Goede }; 78053ab4af3SHans de Goede 781*d1d4295aSJagan Teki uart1: serial@1c28400 { 78253ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 78353ab4af3SHans de Goede reg = <0x01c28400 0x400>; 78453ab4af3SHans de Goede interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 78553ab4af3SHans de Goede reg-shift = <2>; 78653ab4af3SHans de Goede reg-io-width = <4>; 787*d1d4295aSJagan Teki clocks = <&ccu CLK_APB2_UART1>; 788*d1d4295aSJagan Teki resets = <&ccu RST_APB2_UART1>; 78953ab4af3SHans de Goede dmas = <&dma 7>, <&dma 7>; 79053ab4af3SHans de Goede dma-names = "rx", "tx"; 79153ab4af3SHans de Goede status = "disabled"; 79253ab4af3SHans de Goede }; 79353ab4af3SHans de Goede 794*d1d4295aSJagan Teki uart2: serial@1c28800 { 79553ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 79653ab4af3SHans de Goede reg = <0x01c28800 0x400>; 79753ab4af3SHans de Goede interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 79853ab4af3SHans de Goede reg-shift = <2>; 79953ab4af3SHans de Goede reg-io-width = <4>; 800*d1d4295aSJagan Teki clocks = <&ccu CLK_APB2_UART2>; 801*d1d4295aSJagan Teki resets = <&ccu RST_APB2_UART2>; 80253ab4af3SHans de Goede dmas = <&dma 8>, <&dma 8>; 80353ab4af3SHans de Goede dma-names = "rx", "tx"; 80453ab4af3SHans de Goede status = "disabled"; 80553ab4af3SHans de Goede }; 80653ab4af3SHans de Goede 807*d1d4295aSJagan Teki uart3: serial@1c28c00 { 80853ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 80953ab4af3SHans de Goede reg = <0x01c28c00 0x400>; 81053ab4af3SHans de Goede interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 81153ab4af3SHans de Goede reg-shift = <2>; 81253ab4af3SHans de Goede reg-io-width = <4>; 813*d1d4295aSJagan Teki clocks = <&ccu CLK_APB2_UART3>; 814*d1d4295aSJagan Teki resets = <&ccu RST_APB2_UART3>; 81553ab4af3SHans de Goede dmas = <&dma 9>, <&dma 9>; 81653ab4af3SHans de Goede dma-names = "rx", "tx"; 81753ab4af3SHans de Goede status = "disabled"; 81853ab4af3SHans de Goede }; 81953ab4af3SHans de Goede 820*d1d4295aSJagan Teki uart4: serial@1c29000 { 82153ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 82253ab4af3SHans de Goede reg = <0x01c29000 0x400>; 82353ab4af3SHans de Goede interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 82453ab4af3SHans de Goede reg-shift = <2>; 82553ab4af3SHans de Goede reg-io-width = <4>; 826*d1d4295aSJagan Teki clocks = <&ccu CLK_APB2_UART4>; 827*d1d4295aSJagan Teki resets = <&ccu RST_APB2_UART4>; 82853ab4af3SHans de Goede dmas = <&dma 10>, <&dma 10>; 82953ab4af3SHans de Goede dma-names = "rx", "tx"; 83053ab4af3SHans de Goede status = "disabled"; 83153ab4af3SHans de Goede }; 83253ab4af3SHans de Goede 833*d1d4295aSJagan Teki uart5: serial@1c29400 { 83453ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 83553ab4af3SHans de Goede reg = <0x01c29400 0x400>; 83653ab4af3SHans de Goede interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 83753ab4af3SHans de Goede reg-shift = <2>; 83853ab4af3SHans de Goede reg-io-width = <4>; 839*d1d4295aSJagan Teki clocks = <&ccu CLK_APB2_UART5>; 840*d1d4295aSJagan Teki resets = <&ccu RST_APB2_UART5>; 84153ab4af3SHans de Goede dmas = <&dma 22>, <&dma 22>; 84253ab4af3SHans de Goede dma-names = "rx", "tx"; 84353ab4af3SHans de Goede status = "disabled"; 84453ab4af3SHans de Goede }; 84553ab4af3SHans de Goede 846*d1d4295aSJagan Teki i2c0: i2c@1c2ac00 { 84753ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-i2c"; 84853ab4af3SHans de Goede reg = <0x01c2ac00 0x400>; 84953ab4af3SHans de Goede interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 850*d1d4295aSJagan Teki clocks = <&ccu CLK_APB2_I2C0>; 851*d1d4295aSJagan Teki resets = <&ccu RST_APB2_I2C0>; 85253ab4af3SHans de Goede status = "disabled"; 85353ab4af3SHans de Goede #address-cells = <1>; 85453ab4af3SHans de Goede #size-cells = <0>; 85553ab4af3SHans de Goede }; 85653ab4af3SHans de Goede 857*d1d4295aSJagan Teki i2c1: i2c@1c2b000 { 85853ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-i2c"; 85953ab4af3SHans de Goede reg = <0x01c2b000 0x400>; 86053ab4af3SHans de Goede interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 861*d1d4295aSJagan Teki clocks = <&ccu CLK_APB2_I2C1>; 862*d1d4295aSJagan Teki resets = <&ccu RST_APB2_I2C1>; 86353ab4af3SHans de Goede status = "disabled"; 86453ab4af3SHans de Goede #address-cells = <1>; 86553ab4af3SHans de Goede #size-cells = <0>; 86653ab4af3SHans de Goede }; 86753ab4af3SHans de Goede 868*d1d4295aSJagan Teki i2c2: i2c@1c2b400 { 86953ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-i2c"; 87053ab4af3SHans de Goede reg = <0x01c2b400 0x400>; 87153ab4af3SHans de Goede interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 872*d1d4295aSJagan Teki clocks = <&ccu CLK_APB2_I2C2>; 873*d1d4295aSJagan Teki resets = <&ccu RST_APB2_I2C2>; 87453ab4af3SHans de Goede status = "disabled"; 87553ab4af3SHans de Goede #address-cells = <1>; 87653ab4af3SHans de Goede #size-cells = <0>; 87753ab4af3SHans de Goede }; 87853ab4af3SHans de Goede 879*d1d4295aSJagan Teki i2c3: i2c@1c2b800 { 88053ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-i2c"; 88153ab4af3SHans de Goede reg = <0x01c2b800 0x400>; 88253ab4af3SHans de Goede interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 883*d1d4295aSJagan Teki clocks = <&ccu CLK_APB2_I2C3>; 884*d1d4295aSJagan Teki resets = <&ccu RST_APB2_I2C3>; 88553ab4af3SHans de Goede status = "disabled"; 88653ab4af3SHans de Goede #address-cells = <1>; 88753ab4af3SHans de Goede #size-cells = <0>; 88853ab4af3SHans de Goede }; 88953ab4af3SHans de Goede 890*d1d4295aSJagan Teki gmac: ethernet@1c30000 { 89153ab4af3SHans de Goede compatible = "allwinner,sun7i-a20-gmac"; 89253ab4af3SHans de Goede reg = <0x01c30000 0x1054>; 89353ab4af3SHans de Goede interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 89453ab4af3SHans de Goede interrupt-names = "macirq"; 895*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_EMAC>, <&gmac_tx_clk>; 89653ab4af3SHans de Goede clock-names = "stmmaceth", "allwinner_gmac_tx"; 897*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_EMAC>; 89853ab4af3SHans de Goede reset-names = "stmmaceth"; 89953ab4af3SHans de Goede snps,pbl = <2>; 90053ab4af3SHans de Goede snps,fixed-burst; 90153ab4af3SHans de Goede snps,force_sf_dma_mode; 90253ab4af3SHans de Goede status = "disabled"; 90353ab4af3SHans de Goede #address-cells = <1>; 90453ab4af3SHans de Goede #size-cells = <0>; 90553ab4af3SHans de Goede }; 90653ab4af3SHans de Goede 907*d1d4295aSJagan Teki crypto: crypto-engine@1c15000 { 908*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-crypto", 909*d1d4295aSJagan Teki "allwinner,sun4i-a10-crypto"; 91080e5f83cSHans de Goede reg = <0x01c15000 0x1000>; 91180e5f83cSHans de Goede interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 912*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_SS>, <&ccu CLK_SS>; 91380e5f83cSHans de Goede clock-names = "ahb", "mod"; 914*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_SS>; 91580e5f83cSHans de Goede reset-names = "ahb"; 91680e5f83cSHans de Goede }; 91780e5f83cSHans de Goede 918*d1d4295aSJagan Teki codec: codec@1c22c00 { 919*d1d4295aSJagan Teki #sound-dai-cells = <0>; 920*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-codec"; 921*d1d4295aSJagan Teki reg = <0x01c22c00 0x400>; 922*d1d4295aSJagan Teki interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 923*d1d4295aSJagan Teki clocks = <&ccu CLK_APB1_CODEC>, <&ccu CLK_CODEC>; 924*d1d4295aSJagan Teki clock-names = "apb", "codec"; 925*d1d4295aSJagan Teki resets = <&ccu RST_APB1_CODEC>; 926*d1d4295aSJagan Teki dmas = <&dma 15>, <&dma 15>; 927*d1d4295aSJagan Teki dma-names = "rx", "tx"; 928*d1d4295aSJagan Teki status = "disabled"; 929*d1d4295aSJagan Teki }; 930*d1d4295aSJagan Teki 931*d1d4295aSJagan Teki timer@1c60000 { 9328b1ba941SHans de Goede compatible = "allwinner,sun6i-a31-hstimer", 9338b1ba941SHans de Goede "allwinner,sun7i-a20-hstimer"; 93453ab4af3SHans de Goede reg = <0x01c60000 0x1000>; 93553ab4af3SHans de Goede interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 93653ab4af3SHans de Goede <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 93753ab4af3SHans de Goede <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 93853ab4af3SHans de Goede <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; 939*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_HSTIMER>; 940*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_HSTIMER>; 94153ab4af3SHans de Goede }; 94253ab4af3SHans de Goede 943*d1d4295aSJagan Teki spi0: spi@1c68000 { 94453ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-spi"; 94553ab4af3SHans de Goede reg = <0x01c68000 0x1000>; 94653ab4af3SHans de Goede interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 947*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_SPI0>, <&ccu CLK_SPI0>; 94853ab4af3SHans de Goede clock-names = "ahb", "mod"; 94953ab4af3SHans de Goede dmas = <&dma 23>, <&dma 23>; 95053ab4af3SHans de Goede dma-names = "rx", "tx"; 951*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_SPI0>; 95253ab4af3SHans de Goede status = "disabled"; 95353ab4af3SHans de Goede }; 95453ab4af3SHans de Goede 955*d1d4295aSJagan Teki spi1: spi@1c69000 { 95653ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-spi"; 95753ab4af3SHans de Goede reg = <0x01c69000 0x1000>; 95853ab4af3SHans de Goede interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 959*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_SPI1>, <&ccu CLK_SPI1>; 96053ab4af3SHans de Goede clock-names = "ahb", "mod"; 96153ab4af3SHans de Goede dmas = <&dma 24>, <&dma 24>; 96253ab4af3SHans de Goede dma-names = "rx", "tx"; 963*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_SPI1>; 96453ab4af3SHans de Goede status = "disabled"; 96553ab4af3SHans de Goede }; 96653ab4af3SHans de Goede 967*d1d4295aSJagan Teki spi2: spi@1c6a000 { 96853ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-spi"; 96953ab4af3SHans de Goede reg = <0x01c6a000 0x1000>; 97053ab4af3SHans de Goede interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 971*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_SPI2>, <&ccu CLK_SPI2>; 97253ab4af3SHans de Goede clock-names = "ahb", "mod"; 97353ab4af3SHans de Goede dmas = <&dma 25>, <&dma 25>; 97453ab4af3SHans de Goede dma-names = "rx", "tx"; 975*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_SPI2>; 97653ab4af3SHans de Goede status = "disabled"; 97753ab4af3SHans de Goede }; 97853ab4af3SHans de Goede 979*d1d4295aSJagan Teki spi3: spi@1c6b000 { 98053ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-spi"; 98153ab4af3SHans de Goede reg = <0x01c6b000 0x1000>; 98253ab4af3SHans de Goede interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 983*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_SPI3>, <&ccu CLK_SPI3>; 98453ab4af3SHans de Goede clock-names = "ahb", "mod"; 98553ab4af3SHans de Goede dmas = <&dma 26>, <&dma 26>; 98653ab4af3SHans de Goede dma-names = "rx", "tx"; 987*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_SPI3>; 98853ab4af3SHans de Goede status = "disabled"; 98953ab4af3SHans de Goede }; 99053ab4af3SHans de Goede 991*d1d4295aSJagan Teki gic: interrupt-controller@1c81000 { 99253ab4af3SHans de Goede compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 99353ab4af3SHans de Goede reg = <0x01c81000 0x1000>, 994*d1d4295aSJagan Teki <0x01c82000 0x2000>, 99553ab4af3SHans de Goede <0x01c84000 0x2000>, 99653ab4af3SHans de Goede <0x01c86000 0x2000>; 99753ab4af3SHans de Goede interrupt-controller; 99853ab4af3SHans de Goede #interrupt-cells = <3>; 99953ab4af3SHans de Goede interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 100053ab4af3SHans de Goede }; 100153ab4af3SHans de Goede 1002*d1d4295aSJagan Teki fe0: display-frontend@1e00000 { 1003*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-display-frontend"; 1004*d1d4295aSJagan Teki reg = <0x01e00000 0x20000>; 1005*d1d4295aSJagan Teki interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 1006*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_FE0>, <&ccu CLK_FE0>, 1007*d1d4295aSJagan Teki <&ccu CLK_DRAM_FE0>; 1008*d1d4295aSJagan Teki clock-names = "ahb", "mod", 1009*d1d4295aSJagan Teki "ram"; 1010*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_FE0>; 1011*d1d4295aSJagan Teki 1012*d1d4295aSJagan Teki ports { 1013*d1d4295aSJagan Teki #address-cells = <1>; 1014*d1d4295aSJagan Teki #size-cells = <0>; 1015*d1d4295aSJagan Teki 1016*d1d4295aSJagan Teki fe0_out: port@1 { 1017*d1d4295aSJagan Teki #address-cells = <1>; 1018*d1d4295aSJagan Teki #size-cells = <0>; 1019*d1d4295aSJagan Teki reg = <1>; 1020*d1d4295aSJagan Teki 1021*d1d4295aSJagan Teki fe0_out_be0: endpoint@0 { 1022*d1d4295aSJagan Teki reg = <0>; 1023*d1d4295aSJagan Teki remote-endpoint = <&be0_in_fe0>; 1024*d1d4295aSJagan Teki }; 1025*d1d4295aSJagan Teki 1026*d1d4295aSJagan Teki fe0_out_be1: endpoint@1 { 1027*d1d4295aSJagan Teki reg = <1>; 1028*d1d4295aSJagan Teki remote-endpoint = <&be1_in_fe0>; 1029*d1d4295aSJagan Teki }; 1030*d1d4295aSJagan Teki }; 1031*d1d4295aSJagan Teki }; 1032*d1d4295aSJagan Teki }; 1033*d1d4295aSJagan Teki 1034*d1d4295aSJagan Teki fe1: display-frontend@1e20000 { 1035*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-display-frontend"; 1036*d1d4295aSJagan Teki reg = <0x01e20000 0x20000>; 1037*d1d4295aSJagan Teki interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 1038*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_FE1>, <&ccu CLK_FE1>, 1039*d1d4295aSJagan Teki <&ccu CLK_DRAM_FE1>; 1040*d1d4295aSJagan Teki clock-names = "ahb", "mod", 1041*d1d4295aSJagan Teki "ram"; 1042*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_FE1>; 1043*d1d4295aSJagan Teki 1044*d1d4295aSJagan Teki ports { 1045*d1d4295aSJagan Teki #address-cells = <1>; 1046*d1d4295aSJagan Teki #size-cells = <0>; 1047*d1d4295aSJagan Teki 1048*d1d4295aSJagan Teki fe1_out: port@1 { 1049*d1d4295aSJagan Teki #address-cells = <1>; 1050*d1d4295aSJagan Teki #size-cells = <0>; 1051*d1d4295aSJagan Teki reg = <1>; 1052*d1d4295aSJagan Teki 1053*d1d4295aSJagan Teki fe1_out_be0: endpoint@0 { 1054*d1d4295aSJagan Teki reg = <0>; 1055*d1d4295aSJagan Teki remote-endpoint = <&be0_in_fe1>; 1056*d1d4295aSJagan Teki }; 1057*d1d4295aSJagan Teki 1058*d1d4295aSJagan Teki fe1_out_be1: endpoint@1 { 1059*d1d4295aSJagan Teki reg = <1>; 1060*d1d4295aSJagan Teki remote-endpoint = <&be1_in_fe1>; 1061*d1d4295aSJagan Teki }; 1062*d1d4295aSJagan Teki }; 1063*d1d4295aSJagan Teki }; 1064*d1d4295aSJagan Teki }; 1065*d1d4295aSJagan Teki 1066*d1d4295aSJagan Teki be1: display-backend@1e40000 { 1067*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-display-backend"; 1068*d1d4295aSJagan Teki reg = <0x01e40000 0x10000>; 1069*d1d4295aSJagan Teki interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 1070*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_BE1>, <&ccu CLK_BE1>, 1071*d1d4295aSJagan Teki <&ccu CLK_DRAM_BE1>; 1072*d1d4295aSJagan Teki clock-names = "ahb", "mod", 1073*d1d4295aSJagan Teki "ram"; 1074*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_BE1>; 1075*d1d4295aSJagan Teki 1076*d1d4295aSJagan Teki assigned-clocks = <&ccu CLK_BE1>; 1077*d1d4295aSJagan Teki assigned-clock-rates = <300000000>; 1078*d1d4295aSJagan Teki 1079*d1d4295aSJagan Teki ports { 1080*d1d4295aSJagan Teki #address-cells = <1>; 1081*d1d4295aSJagan Teki #size-cells = <0>; 1082*d1d4295aSJagan Teki 1083*d1d4295aSJagan Teki be1_in: port@0 { 1084*d1d4295aSJagan Teki #address-cells = <1>; 1085*d1d4295aSJagan Teki #size-cells = <0>; 1086*d1d4295aSJagan Teki reg = <0>; 1087*d1d4295aSJagan Teki 1088*d1d4295aSJagan Teki be1_in_fe0: endpoint@0 { 1089*d1d4295aSJagan Teki reg = <0>; 1090*d1d4295aSJagan Teki remote-endpoint = <&fe0_out_be1>; 1091*d1d4295aSJagan Teki }; 1092*d1d4295aSJagan Teki 1093*d1d4295aSJagan Teki be1_in_fe1: endpoint@1 { 1094*d1d4295aSJagan Teki reg = <1>; 1095*d1d4295aSJagan Teki remote-endpoint = <&fe1_out_be1>; 1096*d1d4295aSJagan Teki }; 1097*d1d4295aSJagan Teki }; 1098*d1d4295aSJagan Teki 1099*d1d4295aSJagan Teki be1_out: port@1 { 1100*d1d4295aSJagan Teki #address-cells = <1>; 1101*d1d4295aSJagan Teki #size-cells = <0>; 1102*d1d4295aSJagan Teki reg = <1>; 1103*d1d4295aSJagan Teki 1104*d1d4295aSJagan Teki be1_out_drc1: endpoint@1 { 1105*d1d4295aSJagan Teki reg = <1>; 1106*d1d4295aSJagan Teki remote-endpoint = <&drc1_in_be1>; 1107*d1d4295aSJagan Teki }; 1108*d1d4295aSJagan Teki }; 1109*d1d4295aSJagan Teki }; 1110*d1d4295aSJagan Teki }; 1111*d1d4295aSJagan Teki 1112*d1d4295aSJagan Teki drc1: drc@1e50000 { 1113*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-drc"; 1114*d1d4295aSJagan Teki reg = <0x01e50000 0x10000>; 1115*d1d4295aSJagan Teki interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 1116*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_DRC1>, <&ccu CLK_IEP_DRC1>, 1117*d1d4295aSJagan Teki <&ccu CLK_DRAM_DRC1>; 1118*d1d4295aSJagan Teki clock-names = "ahb", "mod", 1119*d1d4295aSJagan Teki "ram"; 1120*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_DRC1>; 1121*d1d4295aSJagan Teki 1122*d1d4295aSJagan Teki assigned-clocks = <&ccu CLK_IEP_DRC1>; 1123*d1d4295aSJagan Teki assigned-clock-rates = <300000000>; 1124*d1d4295aSJagan Teki 1125*d1d4295aSJagan Teki ports { 1126*d1d4295aSJagan Teki #address-cells = <1>; 1127*d1d4295aSJagan Teki #size-cells = <0>; 1128*d1d4295aSJagan Teki 1129*d1d4295aSJagan Teki drc1_in: port@0 { 1130*d1d4295aSJagan Teki #address-cells = <1>; 1131*d1d4295aSJagan Teki #size-cells = <0>; 1132*d1d4295aSJagan Teki reg = <0>; 1133*d1d4295aSJagan Teki 1134*d1d4295aSJagan Teki drc1_in_be1: endpoint@1 { 1135*d1d4295aSJagan Teki reg = <1>; 1136*d1d4295aSJagan Teki remote-endpoint = <&be1_out_drc1>; 1137*d1d4295aSJagan Teki }; 1138*d1d4295aSJagan Teki }; 1139*d1d4295aSJagan Teki 1140*d1d4295aSJagan Teki drc1_out: port@1 { 1141*d1d4295aSJagan Teki #address-cells = <1>; 1142*d1d4295aSJagan Teki #size-cells = <0>; 1143*d1d4295aSJagan Teki reg = <1>; 1144*d1d4295aSJagan Teki 1145*d1d4295aSJagan Teki drc1_out_tcon0: endpoint@0 { 1146*d1d4295aSJagan Teki reg = <0>; 1147*d1d4295aSJagan Teki remote-endpoint = <&tcon0_in_drc1>; 1148*d1d4295aSJagan Teki }; 1149*d1d4295aSJagan Teki 1150*d1d4295aSJagan Teki drc1_out_tcon1: endpoint@1 { 1151*d1d4295aSJagan Teki reg = <1>; 1152*d1d4295aSJagan Teki remote-endpoint = <&tcon1_in_drc1>; 1153*d1d4295aSJagan Teki }; 1154*d1d4295aSJagan Teki }; 1155*d1d4295aSJagan Teki }; 1156*d1d4295aSJagan Teki }; 1157*d1d4295aSJagan Teki 1158*d1d4295aSJagan Teki be0: display-backend@1e60000 { 1159*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-display-backend"; 1160*d1d4295aSJagan Teki reg = <0x01e60000 0x10000>; 1161*d1d4295aSJagan Teki interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 1162*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_BE0>, <&ccu CLK_BE0>, 1163*d1d4295aSJagan Teki <&ccu CLK_DRAM_BE0>; 1164*d1d4295aSJagan Teki clock-names = "ahb", "mod", 1165*d1d4295aSJagan Teki "ram"; 1166*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_BE0>; 1167*d1d4295aSJagan Teki 1168*d1d4295aSJagan Teki assigned-clocks = <&ccu CLK_BE0>; 1169*d1d4295aSJagan Teki assigned-clock-rates = <300000000>; 1170*d1d4295aSJagan Teki 1171*d1d4295aSJagan Teki ports { 1172*d1d4295aSJagan Teki #address-cells = <1>; 1173*d1d4295aSJagan Teki #size-cells = <0>; 1174*d1d4295aSJagan Teki 1175*d1d4295aSJagan Teki be0_in: port@0 { 1176*d1d4295aSJagan Teki #address-cells = <1>; 1177*d1d4295aSJagan Teki #size-cells = <0>; 1178*d1d4295aSJagan Teki reg = <0>; 1179*d1d4295aSJagan Teki 1180*d1d4295aSJagan Teki be0_in_fe0: endpoint@0 { 1181*d1d4295aSJagan Teki reg = <0>; 1182*d1d4295aSJagan Teki remote-endpoint = <&fe0_out_be0>; 1183*d1d4295aSJagan Teki }; 1184*d1d4295aSJagan Teki 1185*d1d4295aSJagan Teki be0_in_fe1: endpoint@1 { 1186*d1d4295aSJagan Teki reg = <1>; 1187*d1d4295aSJagan Teki remote-endpoint = <&fe1_out_be0>; 1188*d1d4295aSJagan Teki }; 1189*d1d4295aSJagan Teki }; 1190*d1d4295aSJagan Teki 1191*d1d4295aSJagan Teki be0_out: port@1 { 1192*d1d4295aSJagan Teki #address-cells = <1>; 1193*d1d4295aSJagan Teki #size-cells = <0>; 1194*d1d4295aSJagan Teki reg = <1>; 1195*d1d4295aSJagan Teki 1196*d1d4295aSJagan Teki be0_out_drc0: endpoint@0 { 1197*d1d4295aSJagan Teki reg = <0>; 1198*d1d4295aSJagan Teki remote-endpoint = <&drc0_in_be0>; 1199*d1d4295aSJagan Teki }; 1200*d1d4295aSJagan Teki }; 1201*d1d4295aSJagan Teki }; 1202*d1d4295aSJagan Teki }; 1203*d1d4295aSJagan Teki 1204*d1d4295aSJagan Teki drc0: drc@1e70000 { 1205*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-drc"; 1206*d1d4295aSJagan Teki reg = <0x01e70000 0x10000>; 1207*d1d4295aSJagan Teki interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 1208*d1d4295aSJagan Teki clocks = <&ccu CLK_AHB1_DRC0>, <&ccu CLK_IEP_DRC0>, 1209*d1d4295aSJagan Teki <&ccu CLK_DRAM_DRC0>; 1210*d1d4295aSJagan Teki clock-names = "ahb", "mod", 1211*d1d4295aSJagan Teki "ram"; 1212*d1d4295aSJagan Teki resets = <&ccu RST_AHB1_DRC0>; 1213*d1d4295aSJagan Teki 1214*d1d4295aSJagan Teki assigned-clocks = <&ccu CLK_IEP_DRC0>; 1215*d1d4295aSJagan Teki assigned-clock-rates = <300000000>; 1216*d1d4295aSJagan Teki 1217*d1d4295aSJagan Teki ports { 1218*d1d4295aSJagan Teki #address-cells = <1>; 1219*d1d4295aSJagan Teki #size-cells = <0>; 1220*d1d4295aSJagan Teki 1221*d1d4295aSJagan Teki drc0_in: port@0 { 1222*d1d4295aSJagan Teki #address-cells = <1>; 1223*d1d4295aSJagan Teki #size-cells = <0>; 1224*d1d4295aSJagan Teki reg = <0>; 1225*d1d4295aSJagan Teki 1226*d1d4295aSJagan Teki drc0_in_be0: endpoint@0 { 1227*d1d4295aSJagan Teki reg = <0>; 1228*d1d4295aSJagan Teki remote-endpoint = <&be0_out_drc0>; 1229*d1d4295aSJagan Teki }; 1230*d1d4295aSJagan Teki }; 1231*d1d4295aSJagan Teki 1232*d1d4295aSJagan Teki drc0_out: port@1 { 1233*d1d4295aSJagan Teki #address-cells = <1>; 1234*d1d4295aSJagan Teki #size-cells = <0>; 1235*d1d4295aSJagan Teki reg = <1>; 1236*d1d4295aSJagan Teki 1237*d1d4295aSJagan Teki drc0_out_tcon0: endpoint@0 { 1238*d1d4295aSJagan Teki reg = <0>; 1239*d1d4295aSJagan Teki remote-endpoint = <&tcon0_in_drc0>; 1240*d1d4295aSJagan Teki }; 1241*d1d4295aSJagan Teki 1242*d1d4295aSJagan Teki drc0_out_tcon1: endpoint@1 { 1243*d1d4295aSJagan Teki reg = <1>; 1244*d1d4295aSJagan Teki remote-endpoint = <&tcon1_in_drc0>; 1245*d1d4295aSJagan Teki }; 1246*d1d4295aSJagan Teki }; 1247*d1d4295aSJagan Teki }; 1248*d1d4295aSJagan Teki }; 1249*d1d4295aSJagan Teki 1250*d1d4295aSJagan Teki rtc: rtc@1f00000 { 125153ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-rtc"; 125253ab4af3SHans de Goede reg = <0x01f00000 0x54>; 125353ab4af3SHans de Goede interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 125453ab4af3SHans de Goede <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 125553ab4af3SHans de Goede }; 125653ab4af3SHans de Goede 1257*d1d4295aSJagan Teki nmi_intc: interrupt-controller@1f00c00 { 1258*d1d4295aSJagan Teki compatible = "allwinner,sun6i-a31-r-intc"; 125953ab4af3SHans de Goede interrupt-controller; 126053ab4af3SHans de Goede #interrupt-cells = <2>; 1261*d1d4295aSJagan Teki reg = <0x01f00c00 0x400>; 126253ab4af3SHans de Goede interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 126353ab4af3SHans de Goede }; 126453ab4af3SHans de Goede 1265*d1d4295aSJagan Teki prcm@1f01400 { 126653ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-prcm"; 126753ab4af3SHans de Goede reg = <0x01f01400 0x200>; 126853ab4af3SHans de Goede 126953ab4af3SHans de Goede ar100: ar100_clk { 127053ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ar100-clk"; 127153ab4af3SHans de Goede #clock-cells = <0>; 1272*d1d4295aSJagan Teki clocks = <&osc32k>, <&osc24M>, 1273*d1d4295aSJagan Teki <&ccu CLK_PLL_PERIPH>, 1274*d1d4295aSJagan Teki <&ccu CLK_PLL_PERIPH>; 127553ab4af3SHans de Goede clock-output-names = "ar100"; 127653ab4af3SHans de Goede }; 127753ab4af3SHans de Goede 127853ab4af3SHans de Goede ahb0: ahb0_clk { 127953ab4af3SHans de Goede compatible = "fixed-factor-clock"; 128053ab4af3SHans de Goede #clock-cells = <0>; 128153ab4af3SHans de Goede clock-div = <1>; 128253ab4af3SHans de Goede clock-mult = <1>; 128353ab4af3SHans de Goede clocks = <&ar100>; 128453ab4af3SHans de Goede clock-output-names = "ahb0"; 128553ab4af3SHans de Goede }; 128653ab4af3SHans de Goede 128753ab4af3SHans de Goede apb0: apb0_clk { 128853ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-apb0-clk"; 128953ab4af3SHans de Goede #clock-cells = <0>; 129053ab4af3SHans de Goede clocks = <&ahb0>; 129153ab4af3SHans de Goede clock-output-names = "apb0"; 129253ab4af3SHans de Goede }; 129353ab4af3SHans de Goede 129453ab4af3SHans de Goede apb0_gates: apb0_gates_clk { 129553ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-apb0-gates-clk"; 129653ab4af3SHans de Goede #clock-cells = <1>; 129753ab4af3SHans de Goede clocks = <&apb0>; 129853ab4af3SHans de Goede clock-output-names = "apb0_pio", "apb0_ir", 129953ab4af3SHans de Goede "apb0_timer", "apb0_p2wi", 130053ab4af3SHans de Goede "apb0_uart", "apb0_1wire", 130153ab4af3SHans de Goede "apb0_i2c"; 130253ab4af3SHans de Goede }; 130353ab4af3SHans de Goede 130453ab4af3SHans de Goede ir_clk: ir_clk { 130553ab4af3SHans de Goede #clock-cells = <0>; 130653ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 130753ab4af3SHans de Goede clocks = <&osc32k>, <&osc24M>; 130853ab4af3SHans de Goede clock-output-names = "ir"; 130953ab4af3SHans de Goede }; 131053ab4af3SHans de Goede 131153ab4af3SHans de Goede apb0_rst: apb0_rst { 131253ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-clock-reset"; 131353ab4af3SHans de Goede #reset-cells = <1>; 131453ab4af3SHans de Goede }; 131553ab4af3SHans de Goede }; 131653ab4af3SHans de Goede 1317*d1d4295aSJagan Teki cpucfg@1f01c00 { 131853ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-cpuconfig"; 131953ab4af3SHans de Goede reg = <0x01f01c00 0x300>; 132053ab4af3SHans de Goede }; 132153ab4af3SHans de Goede 1322*d1d4295aSJagan Teki ir: ir@1f02000 { 132353ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-ir"; 132453ab4af3SHans de Goede clocks = <&apb0_gates 1>, <&ir_clk>; 132553ab4af3SHans de Goede clock-names = "apb", "ir"; 132653ab4af3SHans de Goede resets = <&apb0_rst 1>; 132753ab4af3SHans de Goede interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 132853ab4af3SHans de Goede reg = <0x01f02000 0x40>; 132953ab4af3SHans de Goede status = "disabled"; 133053ab4af3SHans de Goede }; 133153ab4af3SHans de Goede 1332*d1d4295aSJagan Teki r_pio: pinctrl@1f02c00 { 133353ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-r-pinctrl"; 133453ab4af3SHans de Goede reg = <0x01f02c00 0x400>; 133553ab4af3SHans de Goede interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 133653ab4af3SHans de Goede <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 1337*d1d4295aSJagan Teki clocks = <&apb0_gates 0>, <&osc24M>, <&osc32k>; 1338*d1d4295aSJagan Teki clock-names = "apb", "hosc", "losc"; 133953ab4af3SHans de Goede resets = <&apb0_rst 0>; 134053ab4af3SHans de Goede gpio-controller; 134153ab4af3SHans de Goede interrupt-controller; 134280e5f83cSHans de Goede #interrupt-cells = <3>; 134353ab4af3SHans de Goede #size-cells = <0>; 134453ab4af3SHans de Goede #gpio-cells = <3>; 134553ab4af3SHans de Goede 134653ab4af3SHans de Goede ir_pins_a: ir@0 { 1347*d1d4295aSJagan Teki pins = "PL4"; 1348*d1d4295aSJagan Teki function = "s_ir"; 134953ab4af3SHans de Goede }; 135053ab4af3SHans de Goede 135153ab4af3SHans de Goede p2wi_pins: p2wi { 1352*d1d4295aSJagan Teki pins = "PL0", "PL1"; 1353*d1d4295aSJagan Teki function = "s_p2wi"; 135453ab4af3SHans de Goede }; 135553ab4af3SHans de Goede }; 135653ab4af3SHans de Goede 1357*d1d4295aSJagan Teki p2wi: i2c@1f03400 { 135853ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-p2wi"; 135953ab4af3SHans de Goede reg = <0x01f03400 0x400>; 136053ab4af3SHans de Goede interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 136153ab4af3SHans de Goede clocks = <&apb0_gates 3>; 136253ab4af3SHans de Goede clock-frequency = <100000>; 136353ab4af3SHans de Goede resets = <&apb0_rst 3>; 136453ab4af3SHans de Goede pinctrl-names = "default"; 136553ab4af3SHans de Goede pinctrl-0 = <&p2wi_pins>; 136653ab4af3SHans de Goede status = "disabled"; 136753ab4af3SHans de Goede #address-cells = <1>; 136853ab4af3SHans de Goede #size-cells = <0>; 136953ab4af3SHans de Goede }; 137053ab4af3SHans de Goede }; 137153ab4af3SHans de Goede}; 1372