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 5053ab4af3SHans de Goede#include <dt-bindings/pinctrl/sun4i-a10.h> 5153ab4af3SHans de Goede 5253ab4af3SHans de Goede/ { 5353ab4af3SHans de Goede interrupt-parent = <&gic>; 5453ab4af3SHans de Goede 5553ab4af3SHans de Goede aliases { 5653ab4af3SHans de Goede ethernet0 = &gmac; 5753ab4af3SHans de Goede }; 5853ab4af3SHans de Goede 5953ab4af3SHans de Goede chosen { 6053ab4af3SHans de Goede #address-cells = <1>; 6153ab4af3SHans de Goede #size-cells = <1>; 6253ab4af3SHans de Goede ranges; 6353ab4af3SHans de Goede 6480e5f83cSHans de Goede simplefb_hdmi: framebuffer@0 { 658b1ba941SHans de Goede compatible = "allwinner,simple-framebuffer", 668b1ba941SHans de Goede "simple-framebuffer"; 6753ab4af3SHans de Goede allwinner,pipeline = "de_be0-lcd0-hdmi"; 6853ab4af3SHans de Goede clocks = <&pll6 0>; 6953ab4af3SHans de Goede status = "disabled"; 7053ab4af3SHans de Goede }; 7153ab4af3SHans de Goede 7280e5f83cSHans de Goede simplefb_lcd: framebuffer@1 { 7353ab4af3SHans de Goede compatible = "allwinner,simple-framebuffer", 7453ab4af3SHans de Goede "simple-framebuffer"; 7553ab4af3SHans de Goede allwinner,pipeline = "de_be0-lcd0"; 7653ab4af3SHans de Goede clocks = <&pll6 0>; 7753ab4af3SHans de Goede status = "disabled"; 7853ab4af3SHans de Goede }; 7953ab4af3SHans de Goede }; 8053ab4af3SHans de Goede 8153ab4af3SHans de Goede timer { 8253ab4af3SHans de Goede compatible = "arm,armv7-timer"; 8353ab4af3SHans de Goede interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 8453ab4af3SHans de Goede <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 8553ab4af3SHans de Goede <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 8653ab4af3SHans de Goede <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 8753ab4af3SHans de Goede clock-frequency = <24000000>; 8853ab4af3SHans de Goede arm,cpu-registers-not-fw-configured; 8953ab4af3SHans de Goede }; 9053ab4af3SHans de Goede 9153ab4af3SHans de Goede cpus { 9253ab4af3SHans de Goede enable-method = "allwinner,sun6i-a31"; 9353ab4af3SHans de Goede #address-cells = <1>; 9453ab4af3SHans de Goede #size-cells = <0>; 9553ab4af3SHans de Goede 9653ab4af3SHans de Goede cpu0: cpu@0 { 9753ab4af3SHans de Goede compatible = "arm,cortex-a7"; 9853ab4af3SHans de Goede device_type = "cpu"; 9953ab4af3SHans de Goede reg = <0>; 10053ab4af3SHans de Goede clocks = <&cpu>; 10153ab4af3SHans de Goede clock-latency = <244144>; /* 8 32k periods */ 10253ab4af3SHans de Goede operating-points = < 10353ab4af3SHans de Goede /* kHz uV */ 10453ab4af3SHans de Goede 1008000 1200000 10553ab4af3SHans de Goede 864000 1200000 10653ab4af3SHans de Goede 720000 1100000 10753ab4af3SHans de Goede 480000 1000000 10853ab4af3SHans de Goede >; 10953ab4af3SHans de Goede #cooling-cells = <2>; 11053ab4af3SHans de Goede cooling-min-level = <0>; 11153ab4af3SHans de Goede cooling-max-level = <3>; 11253ab4af3SHans de Goede }; 11353ab4af3SHans de Goede 11453ab4af3SHans de Goede cpu@1 { 11553ab4af3SHans de Goede compatible = "arm,cortex-a7"; 11653ab4af3SHans de Goede device_type = "cpu"; 11753ab4af3SHans de Goede reg = <1>; 11853ab4af3SHans de Goede }; 11953ab4af3SHans de Goede 12053ab4af3SHans de Goede cpu@2 { 12153ab4af3SHans de Goede compatible = "arm,cortex-a7"; 12253ab4af3SHans de Goede device_type = "cpu"; 12353ab4af3SHans de Goede reg = <2>; 12453ab4af3SHans de Goede }; 12553ab4af3SHans de Goede 12653ab4af3SHans de Goede cpu@3 { 12753ab4af3SHans de Goede compatible = "arm,cortex-a7"; 12853ab4af3SHans de Goede device_type = "cpu"; 12953ab4af3SHans de Goede reg = <3>; 13053ab4af3SHans de Goede }; 13153ab4af3SHans de Goede }; 13253ab4af3SHans de Goede 13353ab4af3SHans de Goede thermal-zones { 13453ab4af3SHans de Goede cpu_thermal { 13553ab4af3SHans de Goede /* milliseconds */ 13653ab4af3SHans de Goede polling-delay-passive = <250>; 13753ab4af3SHans de Goede polling-delay = <1000>; 13853ab4af3SHans de Goede thermal-sensors = <&rtp>; 13953ab4af3SHans de Goede 14053ab4af3SHans de Goede cooling-maps { 14153ab4af3SHans de Goede map0 { 14253ab4af3SHans de Goede trip = <&cpu_alert0>; 14353ab4af3SHans de Goede cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 14453ab4af3SHans de Goede }; 14553ab4af3SHans de Goede }; 14653ab4af3SHans de Goede 14753ab4af3SHans de Goede trips { 14853ab4af3SHans de Goede cpu_alert0: cpu_alert0 { 14953ab4af3SHans de Goede /* milliCelsius */ 15053ab4af3SHans de Goede temperature = <70000>; 15153ab4af3SHans de Goede hysteresis = <2000>; 15253ab4af3SHans de Goede type = "passive"; 15353ab4af3SHans de Goede }; 15453ab4af3SHans de Goede 15553ab4af3SHans de Goede cpu_crit: cpu_crit { 15653ab4af3SHans de Goede /* milliCelsius */ 15753ab4af3SHans de Goede temperature = <100000>; 15853ab4af3SHans de Goede hysteresis = <2000>; 15953ab4af3SHans de Goede type = "critical"; 16053ab4af3SHans de Goede }; 16153ab4af3SHans de Goede }; 16253ab4af3SHans de Goede }; 16353ab4af3SHans de Goede }; 16453ab4af3SHans de Goede 16553ab4af3SHans de Goede memory { 16653ab4af3SHans de Goede reg = <0x40000000 0x80000000>; 16753ab4af3SHans de Goede }; 16853ab4af3SHans de Goede 16953ab4af3SHans de Goede pmu { 17053ab4af3SHans de Goede compatible = "arm,cortex-a7-pmu", "arm,cortex-a15-pmu"; 17153ab4af3SHans de Goede interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 17253ab4af3SHans de Goede <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 17353ab4af3SHans de Goede <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 17453ab4af3SHans de Goede <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; 17553ab4af3SHans de Goede }; 17653ab4af3SHans de Goede 17753ab4af3SHans de Goede clocks { 17853ab4af3SHans de Goede #address-cells = <1>; 17953ab4af3SHans de Goede #size-cells = <1>; 18053ab4af3SHans de Goede ranges; 18153ab4af3SHans de Goede 18253ab4af3SHans de Goede osc24M: osc24M { 18353ab4af3SHans de Goede #clock-cells = <0>; 18453ab4af3SHans de Goede compatible = "fixed-clock"; 18553ab4af3SHans de Goede clock-frequency = <24000000>; 18653ab4af3SHans de Goede }; 18753ab4af3SHans de Goede 18853ab4af3SHans de Goede osc32k: clk@0 { 18953ab4af3SHans de Goede #clock-cells = <0>; 19053ab4af3SHans de Goede compatible = "fixed-clock"; 19153ab4af3SHans de Goede clock-frequency = <32768>; 19253ab4af3SHans de Goede clock-output-names = "osc32k"; 19353ab4af3SHans de Goede }; 19453ab4af3SHans de Goede 19553ab4af3SHans de Goede pll1: clk@01c20000 { 19653ab4af3SHans de Goede #clock-cells = <0>; 19753ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-pll1-clk"; 19853ab4af3SHans de Goede reg = <0x01c20000 0x4>; 19953ab4af3SHans de Goede clocks = <&osc24M>; 20053ab4af3SHans de Goede clock-output-names = "pll1"; 20153ab4af3SHans de Goede }; 20253ab4af3SHans de Goede 20353ab4af3SHans de Goede pll6: clk@01c20028 { 20453ab4af3SHans de Goede #clock-cells = <1>; 20553ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-pll6-clk"; 20653ab4af3SHans de Goede reg = <0x01c20028 0x4>; 20753ab4af3SHans de Goede clocks = <&osc24M>; 20853ab4af3SHans de Goede clock-output-names = "pll6", "pll6x2"; 20953ab4af3SHans de Goede }; 21053ab4af3SHans de Goede 21153ab4af3SHans de Goede cpu: cpu@01c20050 { 21253ab4af3SHans de Goede #clock-cells = <0>; 21353ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-cpu-clk"; 21453ab4af3SHans de Goede reg = <0x01c20050 0x4>; 21553ab4af3SHans de Goede 21653ab4af3SHans de Goede /* 21753ab4af3SHans de Goede * PLL1 is listed twice here. 21853ab4af3SHans de Goede * While it looks suspicious, it's actually documented 21953ab4af3SHans de Goede * that way both in the datasheet and in the code from 22053ab4af3SHans de Goede * Allwinner. 22153ab4af3SHans de Goede */ 22253ab4af3SHans de Goede clocks = <&osc32k>, <&osc24M>, <&pll1>, <&pll1>; 22353ab4af3SHans de Goede clock-output-names = "cpu"; 22453ab4af3SHans de Goede }; 22553ab4af3SHans de Goede 22653ab4af3SHans de Goede axi: axi@01c20050 { 22753ab4af3SHans de Goede #clock-cells = <0>; 22853ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-axi-clk"; 22953ab4af3SHans de Goede reg = <0x01c20050 0x4>; 23053ab4af3SHans de Goede clocks = <&cpu>; 23153ab4af3SHans de Goede clock-output-names = "axi"; 23253ab4af3SHans de Goede }; 23353ab4af3SHans de Goede 23453ab4af3SHans de Goede ahb1: ahb1@01c20054 { 23553ab4af3SHans de Goede #clock-cells = <0>; 23653ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ahb1-clk"; 23753ab4af3SHans de Goede reg = <0x01c20054 0x4>; 23853ab4af3SHans de Goede clocks = <&osc32k>, <&osc24M>, <&axi>, <&pll6 0>; 23953ab4af3SHans de Goede clock-output-names = "ahb1"; 2408b1ba941SHans de Goede 2418b1ba941SHans de Goede /* 2428b1ba941SHans de Goede * Clock AHB1 from PLL6, instead of CPU/AXI which 2438b1ba941SHans de Goede * has rate changes due to cpufreq. Also the DMA 2448b1ba941SHans de Goede * controller requires AHB1 clocked from PLL6. 2458b1ba941SHans de Goede */ 2468b1ba941SHans de Goede assigned-clocks = <&ahb1>; 2478b1ba941SHans de Goede assigned-clock-parents = <&pll6 0>; 24853ab4af3SHans de Goede }; 24953ab4af3SHans de Goede 25053ab4af3SHans de Goede ahb1_gates: clk@01c20060 { 25153ab4af3SHans de Goede #clock-cells = <1>; 25253ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ahb1-gates-clk"; 25353ab4af3SHans de Goede reg = <0x01c20060 0x8>; 25453ab4af3SHans de Goede clocks = <&ahb1>; 25580e5f83cSHans de Goede clock-indices = <1>, <5>, 25680e5f83cSHans de Goede <6>, <8>, <9>, 25780e5f83cSHans de Goede <10>, <11>, <12>, 25880e5f83cSHans de Goede <13>, <14>, 25980e5f83cSHans de Goede <17>, <18>, <19>, 26080e5f83cSHans de Goede <20>, <21>, <22>, 26180e5f83cSHans de Goede <23>, <24>, <26>, 26280e5f83cSHans de Goede <27>, <29>, 26380e5f83cSHans de Goede <30>, <31>, <32>, 26480e5f83cSHans de Goede <36>, <37>, <40>, 26580e5f83cSHans de Goede <43>, <44>, <45>, 26680e5f83cSHans de Goede <46>, <47>, <50>, 26780e5f83cSHans de Goede <52>, <55>, <56>, 26880e5f83cSHans de Goede <57>, <58>; 26953ab4af3SHans de Goede clock-output-names = "ahb1_mipidsi", "ahb1_ss", 27053ab4af3SHans de Goede "ahb1_dma", "ahb1_mmc0", "ahb1_mmc1", 27153ab4af3SHans de Goede "ahb1_mmc2", "ahb1_mmc3", "ahb1_nand1", 27253ab4af3SHans de Goede "ahb1_nand0", "ahb1_sdram", 27353ab4af3SHans de Goede "ahb1_gmac", "ahb1_ts", "ahb1_hstimer", 27453ab4af3SHans de Goede "ahb1_spi0", "ahb1_spi1", "ahb1_spi2", 27553ab4af3SHans de Goede "ahb1_spi3", "ahb1_otg", "ahb1_ehci0", 27653ab4af3SHans de Goede "ahb1_ehci1", "ahb1_ohci0", 27753ab4af3SHans de Goede "ahb1_ohci1", "ahb1_ohci2", "ahb1_ve", 27853ab4af3SHans de Goede "ahb1_lcd0", "ahb1_lcd1", "ahb1_csi", 27953ab4af3SHans de Goede "ahb1_hdmi", "ahb1_de0", "ahb1_de1", 28053ab4af3SHans de Goede "ahb1_fe0", "ahb1_fe1", "ahb1_mp", 28153ab4af3SHans de Goede "ahb1_gpu", "ahb1_deu0", "ahb1_deu1", 28253ab4af3SHans de Goede "ahb1_drc0", "ahb1_drc1"; 28353ab4af3SHans de Goede }; 28453ab4af3SHans de Goede 28553ab4af3SHans de Goede apb1: apb1@01c20054 { 28653ab4af3SHans de Goede #clock-cells = <0>; 28753ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-apb0-clk"; 28853ab4af3SHans de Goede reg = <0x01c20054 0x4>; 28953ab4af3SHans de Goede clocks = <&ahb1>; 29053ab4af3SHans de Goede clock-output-names = "apb1"; 29153ab4af3SHans de Goede }; 29253ab4af3SHans de Goede 29353ab4af3SHans de Goede apb1_gates: clk@01c20068 { 29453ab4af3SHans de Goede #clock-cells = <1>; 29553ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-apb1-gates-clk"; 29653ab4af3SHans de Goede reg = <0x01c20068 0x4>; 29753ab4af3SHans de Goede clocks = <&apb1>; 29880e5f83cSHans de Goede clock-indices = <0>, <4>, 29980e5f83cSHans de Goede <5>, <12>, 30080e5f83cSHans de Goede <13>; 30153ab4af3SHans de Goede clock-output-names = "apb1_codec", "apb1_digital_mic", 30253ab4af3SHans de Goede "apb1_pio", "apb1_daudio0", 30353ab4af3SHans de Goede "apb1_daudio1"; 30453ab4af3SHans de Goede }; 30553ab4af3SHans de Goede 30653ab4af3SHans de Goede apb2: clk@01c20058 { 30753ab4af3SHans de Goede #clock-cells = <0>; 30853ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-apb1-clk"; 30953ab4af3SHans de Goede reg = <0x01c20058 0x4>; 31053ab4af3SHans de Goede clocks = <&osc32k>, <&osc24M>, <&pll6 0>, <&pll6 0>; 31153ab4af3SHans de Goede clock-output-names = "apb2"; 31253ab4af3SHans de Goede }; 31353ab4af3SHans de Goede 31453ab4af3SHans de Goede apb2_gates: clk@01c2006c { 31553ab4af3SHans de Goede #clock-cells = <1>; 31653ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-apb2-gates-clk"; 31753ab4af3SHans de Goede reg = <0x01c2006c 0x4>; 31853ab4af3SHans de Goede clocks = <&apb2>; 31980e5f83cSHans de Goede clock-indices = <0>, <1>, 32080e5f83cSHans de Goede <2>, <3>, <16>, 32180e5f83cSHans de Goede <17>, <18>, <19>, 32280e5f83cSHans de Goede <20>, <21>; 32353ab4af3SHans de Goede clock-output-names = "apb2_i2c0", "apb2_i2c1", 3248b1ba941SHans de Goede "apb2_i2c2", "apb2_i2c3", 3258b1ba941SHans de Goede "apb2_uart0", "apb2_uart1", 3268b1ba941SHans de Goede "apb2_uart2", "apb2_uart3", 32753ab4af3SHans de Goede "apb2_uart4", "apb2_uart5"; 32853ab4af3SHans de Goede }; 32953ab4af3SHans de Goede 33053ab4af3SHans de Goede mmc0_clk: clk@01c20088 { 33153ab4af3SHans de Goede #clock-cells = <1>; 33253ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mmc-clk"; 33353ab4af3SHans de Goede reg = <0x01c20088 0x4>; 33453ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 33553ab4af3SHans de Goede clock-output-names = "mmc0", 33653ab4af3SHans de Goede "mmc0_output", 33753ab4af3SHans de Goede "mmc0_sample"; 33853ab4af3SHans de Goede }; 33953ab4af3SHans de Goede 34053ab4af3SHans de Goede mmc1_clk: clk@01c2008c { 34153ab4af3SHans de Goede #clock-cells = <1>; 34253ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mmc-clk"; 34353ab4af3SHans de Goede reg = <0x01c2008c 0x4>; 34453ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 34553ab4af3SHans de Goede clock-output-names = "mmc1", 34653ab4af3SHans de Goede "mmc1_output", 34753ab4af3SHans de Goede "mmc1_sample"; 34853ab4af3SHans de Goede }; 34953ab4af3SHans de Goede 35053ab4af3SHans de Goede mmc2_clk: clk@01c20090 { 35153ab4af3SHans de Goede #clock-cells = <1>; 35253ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mmc-clk"; 35353ab4af3SHans de Goede reg = <0x01c20090 0x4>; 35453ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 35553ab4af3SHans de Goede clock-output-names = "mmc2", 35653ab4af3SHans de Goede "mmc2_output", 35753ab4af3SHans de Goede "mmc2_sample"; 35853ab4af3SHans de Goede }; 35953ab4af3SHans de Goede 36053ab4af3SHans de Goede mmc3_clk: clk@01c20094 { 36153ab4af3SHans de Goede #clock-cells = <1>; 36253ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mmc-clk"; 36353ab4af3SHans de Goede reg = <0x01c20094 0x4>; 36453ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 36553ab4af3SHans de Goede clock-output-names = "mmc3", 36653ab4af3SHans de Goede "mmc3_output", 36753ab4af3SHans de Goede "mmc3_sample"; 36853ab4af3SHans de Goede }; 36953ab4af3SHans de Goede 37080e5f83cSHans de Goede ss_clk: clk@01c2009c { 37180e5f83cSHans de Goede #clock-cells = <0>; 37280e5f83cSHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 37380e5f83cSHans de Goede reg = <0x01c2009c 0x4>; 37480e5f83cSHans de Goede clocks = <&osc24M>, <&pll6 0>; 37580e5f83cSHans de Goede clock-output-names = "ss"; 37680e5f83cSHans de Goede }; 37780e5f83cSHans de Goede 37853ab4af3SHans de Goede spi0_clk: clk@01c200a0 { 37953ab4af3SHans de Goede #clock-cells = <0>; 38053ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 38153ab4af3SHans de Goede reg = <0x01c200a0 0x4>; 38253ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 38353ab4af3SHans de Goede clock-output-names = "spi0"; 38453ab4af3SHans de Goede }; 38553ab4af3SHans de Goede 38653ab4af3SHans de Goede spi1_clk: clk@01c200a4 { 38753ab4af3SHans de Goede #clock-cells = <0>; 38853ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 38953ab4af3SHans de Goede reg = <0x01c200a4 0x4>; 39053ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 39153ab4af3SHans de Goede clock-output-names = "spi1"; 39253ab4af3SHans de Goede }; 39353ab4af3SHans de Goede 39453ab4af3SHans de Goede spi2_clk: clk@01c200a8 { 39553ab4af3SHans de Goede #clock-cells = <0>; 39653ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 39753ab4af3SHans de Goede reg = <0x01c200a8 0x4>; 39853ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 39953ab4af3SHans de Goede clock-output-names = "spi2"; 40053ab4af3SHans de Goede }; 40153ab4af3SHans de Goede 40253ab4af3SHans de Goede spi3_clk: clk@01c200ac { 40353ab4af3SHans de Goede #clock-cells = <0>; 40453ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 40553ab4af3SHans de Goede reg = <0x01c200ac 0x4>; 40653ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 40753ab4af3SHans de Goede clock-output-names = "spi3"; 40853ab4af3SHans de Goede }; 40953ab4af3SHans de Goede 41053ab4af3SHans de Goede usb_clk: clk@01c200cc { 41153ab4af3SHans de Goede #clock-cells = <1>; 41253ab4af3SHans de Goede #reset-cells = <1>; 41353ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-usb-clk"; 41453ab4af3SHans de Goede reg = <0x01c200cc 0x4>; 41553ab4af3SHans de Goede clocks = <&osc24M>; 41680e5f83cSHans de Goede clock-indices = <8>, <9>, <10>, 41780e5f83cSHans de Goede <16>, <17>, 41880e5f83cSHans de Goede <18>; 41953ab4af3SHans de Goede clock-output-names = "usb_phy0", "usb_phy1", "usb_phy2", 42053ab4af3SHans de Goede "usb_ohci0", "usb_ohci1", 42153ab4af3SHans de Goede "usb_ohci2"; 42253ab4af3SHans de Goede }; 42353ab4af3SHans de Goede 42453ab4af3SHans de Goede /* 4258b1ba941SHans de Goede * The following two are dummy clocks, placeholders 4268b1ba941SHans de Goede * used in the gmac_tx clock. The gmac driver will 4278b1ba941SHans de Goede * choose one parent depending on the PHY interface 4288b1ba941SHans de Goede * mode, using clk_set_rate auto-reparenting. 4298b1ba941SHans de Goede * 4308b1ba941SHans de Goede * The actual TX clock rate is not controlled by the 4318b1ba941SHans de Goede * gmac_tx clock. 43253ab4af3SHans de Goede */ 43353ab4af3SHans de Goede mii_phy_tx_clk: clk@1 { 43453ab4af3SHans de Goede #clock-cells = <0>; 43553ab4af3SHans de Goede compatible = "fixed-clock"; 43653ab4af3SHans de Goede clock-frequency = <25000000>; 43753ab4af3SHans de Goede clock-output-names = "mii_phy_tx"; 43853ab4af3SHans de Goede }; 43953ab4af3SHans de Goede 44053ab4af3SHans de Goede gmac_int_tx_clk: clk@2 { 44153ab4af3SHans de Goede #clock-cells = <0>; 44253ab4af3SHans de Goede compatible = "fixed-clock"; 44353ab4af3SHans de Goede clock-frequency = <125000000>; 44453ab4af3SHans de Goede clock-output-names = "gmac_int_tx"; 44553ab4af3SHans de Goede }; 44653ab4af3SHans de Goede 44753ab4af3SHans de Goede gmac_tx_clk: clk@01c200d0 { 44853ab4af3SHans de Goede #clock-cells = <0>; 44953ab4af3SHans de Goede compatible = "allwinner,sun7i-a20-gmac-clk"; 45053ab4af3SHans de Goede reg = <0x01c200d0 0x4>; 45153ab4af3SHans de Goede clocks = <&mii_phy_tx_clk>, <&gmac_int_tx_clk>; 45253ab4af3SHans de Goede clock-output-names = "gmac_tx"; 45353ab4af3SHans de Goede }; 45453ab4af3SHans de Goede }; 45553ab4af3SHans de Goede 45653ab4af3SHans de Goede soc@01c00000 { 45753ab4af3SHans de Goede compatible = "simple-bus"; 45853ab4af3SHans de Goede #address-cells = <1>; 45953ab4af3SHans de Goede #size-cells = <1>; 46053ab4af3SHans de Goede ranges; 46153ab4af3SHans de Goede 46253ab4af3SHans de Goede dma: dma-controller@01c02000 { 46353ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-dma"; 46453ab4af3SHans de Goede reg = <0x01c02000 0x1000>; 46553ab4af3SHans de Goede interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 46653ab4af3SHans de Goede clocks = <&ahb1_gates 6>; 46753ab4af3SHans de Goede resets = <&ahb1_rst 6>; 46853ab4af3SHans de Goede #dma-cells = <1>; 46953ab4af3SHans de Goede }; 47053ab4af3SHans de Goede 47153ab4af3SHans de Goede mmc0: mmc@01c0f000 { 472*860fbdd4SHans de Goede compatible = "allwinner,sun7i-a20-mmc", 473*860fbdd4SHans de Goede "allwinner,sun5i-a13-mmc"; 47453ab4af3SHans de Goede reg = <0x01c0f000 0x1000>; 47553ab4af3SHans de Goede clocks = <&ahb1_gates 8>, 47653ab4af3SHans de Goede <&mmc0_clk 0>, 47753ab4af3SHans de Goede <&mmc0_clk 1>, 47853ab4af3SHans de Goede <&mmc0_clk 2>; 47953ab4af3SHans de Goede clock-names = "ahb", 48053ab4af3SHans de Goede "mmc", 48153ab4af3SHans de Goede "output", 48253ab4af3SHans de Goede "sample"; 48353ab4af3SHans de Goede resets = <&ahb1_rst 8>; 48453ab4af3SHans de Goede reset-names = "ahb"; 48553ab4af3SHans de Goede interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 48653ab4af3SHans de Goede status = "disabled"; 48753ab4af3SHans de Goede #address-cells = <1>; 48853ab4af3SHans de Goede #size-cells = <0>; 48953ab4af3SHans de Goede }; 49053ab4af3SHans de Goede 49153ab4af3SHans de Goede mmc1: mmc@01c10000 { 492*860fbdd4SHans de Goede compatible = "allwinner,sun7i-a20-mmc", 493*860fbdd4SHans de Goede "allwinner,sun5i-a13-mmc"; 49453ab4af3SHans de Goede reg = <0x01c10000 0x1000>; 49553ab4af3SHans de Goede clocks = <&ahb1_gates 9>, 49653ab4af3SHans de Goede <&mmc1_clk 0>, 49753ab4af3SHans de Goede <&mmc1_clk 1>, 49853ab4af3SHans de Goede <&mmc1_clk 2>; 49953ab4af3SHans de Goede clock-names = "ahb", 50053ab4af3SHans de Goede "mmc", 50153ab4af3SHans de Goede "output", 50253ab4af3SHans de Goede "sample"; 50353ab4af3SHans de Goede resets = <&ahb1_rst 9>; 50453ab4af3SHans de Goede reset-names = "ahb"; 50553ab4af3SHans de Goede interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 50653ab4af3SHans de Goede status = "disabled"; 50753ab4af3SHans de Goede #address-cells = <1>; 50853ab4af3SHans de Goede #size-cells = <0>; 50953ab4af3SHans de Goede }; 51053ab4af3SHans de Goede 51153ab4af3SHans de Goede mmc2: mmc@01c11000 { 512*860fbdd4SHans de Goede compatible = "allwinner,sun7i-a20-mmc", 513*860fbdd4SHans de Goede "allwinner,sun5i-a13-mmc"; 51453ab4af3SHans de Goede reg = <0x01c11000 0x1000>; 51553ab4af3SHans de Goede clocks = <&ahb1_gates 10>, 51653ab4af3SHans de Goede <&mmc2_clk 0>, 51753ab4af3SHans de Goede <&mmc2_clk 1>, 51853ab4af3SHans de Goede <&mmc2_clk 2>; 51953ab4af3SHans de Goede clock-names = "ahb", 52053ab4af3SHans de Goede "mmc", 52153ab4af3SHans de Goede "output", 52253ab4af3SHans de Goede "sample"; 52353ab4af3SHans de Goede resets = <&ahb1_rst 10>; 52453ab4af3SHans de Goede reset-names = "ahb"; 52553ab4af3SHans de Goede interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 52653ab4af3SHans de Goede status = "disabled"; 52753ab4af3SHans de Goede #address-cells = <1>; 52853ab4af3SHans de Goede #size-cells = <0>; 52953ab4af3SHans de Goede }; 53053ab4af3SHans de Goede 53153ab4af3SHans de Goede mmc3: mmc@01c12000 { 532*860fbdd4SHans de Goede compatible = "allwinner,sun7i-a20-mmc", 533*860fbdd4SHans de Goede "allwinner,sun5i-a13-mmc"; 53453ab4af3SHans de Goede reg = <0x01c12000 0x1000>; 53553ab4af3SHans de Goede clocks = <&ahb1_gates 11>, 53653ab4af3SHans de Goede <&mmc3_clk 0>, 53753ab4af3SHans de Goede <&mmc3_clk 1>, 53853ab4af3SHans de Goede <&mmc3_clk 2>; 53953ab4af3SHans de Goede clock-names = "ahb", 54053ab4af3SHans de Goede "mmc", 54153ab4af3SHans de Goede "output", 54253ab4af3SHans de Goede "sample"; 54353ab4af3SHans de Goede resets = <&ahb1_rst 11>; 54453ab4af3SHans de Goede reset-names = "ahb"; 54553ab4af3SHans de Goede interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 54653ab4af3SHans de Goede status = "disabled"; 54753ab4af3SHans de Goede #address-cells = <1>; 54853ab4af3SHans de Goede #size-cells = <0>; 54953ab4af3SHans de Goede }; 55053ab4af3SHans de Goede 551da52a4a3SHans de Goede usb_otg: usb@01c19000 { 552da52a4a3SHans de Goede compatible = "allwinner,sun6i-a31-musb"; 553da52a4a3SHans de Goede reg = <0x01c19000 0x0400>; 554da52a4a3SHans de Goede clocks = <&ahb1_gates 24>; 555da52a4a3SHans de Goede resets = <&ahb1_rst 24>; 556da52a4a3SHans de Goede interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 557da52a4a3SHans de Goede interrupt-names = "mc"; 558da52a4a3SHans de Goede phys = <&usbphy 0>; 559da52a4a3SHans de Goede phy-names = "usb"; 560da52a4a3SHans de Goede extcon = <&usbphy 0>; 561da52a4a3SHans de Goede status = "disabled"; 562da52a4a3SHans de Goede }; 563da52a4a3SHans de Goede 56453ab4af3SHans de Goede usbphy: phy@01c19400 { 56553ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-usb-phy"; 56653ab4af3SHans de Goede reg = <0x01c19400 0x10>, 56753ab4af3SHans de Goede <0x01c1a800 0x4>, 56853ab4af3SHans de Goede <0x01c1b800 0x4>; 56953ab4af3SHans de Goede reg-names = "phy_ctrl", 57053ab4af3SHans de Goede "pmu1", 57153ab4af3SHans de Goede "pmu2"; 57253ab4af3SHans de Goede clocks = <&usb_clk 8>, 57353ab4af3SHans de Goede <&usb_clk 9>, 57453ab4af3SHans de Goede <&usb_clk 10>; 57553ab4af3SHans de Goede clock-names = "usb0_phy", 57653ab4af3SHans de Goede "usb1_phy", 57753ab4af3SHans de Goede "usb2_phy"; 57853ab4af3SHans de Goede resets = <&usb_clk 0>, 57953ab4af3SHans de Goede <&usb_clk 1>, 58053ab4af3SHans de Goede <&usb_clk 2>; 58153ab4af3SHans de Goede reset-names = "usb0_reset", 58253ab4af3SHans de Goede "usb1_reset", 58353ab4af3SHans de Goede "usb2_reset"; 58453ab4af3SHans de Goede status = "disabled"; 58553ab4af3SHans de Goede #phy-cells = <1>; 58653ab4af3SHans de Goede }; 58753ab4af3SHans de Goede 58853ab4af3SHans de Goede ehci0: usb@01c1a000 { 58953ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ehci", "generic-ehci"; 59053ab4af3SHans de Goede reg = <0x01c1a000 0x100>; 59153ab4af3SHans de Goede interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 59253ab4af3SHans de Goede clocks = <&ahb1_gates 26>; 59353ab4af3SHans de Goede resets = <&ahb1_rst 26>; 59453ab4af3SHans de Goede phys = <&usbphy 1>; 59553ab4af3SHans de Goede phy-names = "usb"; 59653ab4af3SHans de Goede status = "disabled"; 59753ab4af3SHans de Goede }; 59853ab4af3SHans de Goede 59953ab4af3SHans de Goede ohci0: usb@01c1a400 { 60053ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ohci", "generic-ohci"; 60153ab4af3SHans de Goede reg = <0x01c1a400 0x100>; 60253ab4af3SHans de Goede interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 60353ab4af3SHans de Goede clocks = <&ahb1_gates 29>, <&usb_clk 16>; 60453ab4af3SHans de Goede resets = <&ahb1_rst 29>; 60553ab4af3SHans de Goede phys = <&usbphy 1>; 60653ab4af3SHans de Goede phy-names = "usb"; 60753ab4af3SHans de Goede status = "disabled"; 60853ab4af3SHans de Goede }; 60953ab4af3SHans de Goede 61053ab4af3SHans de Goede ehci1: usb@01c1b000 { 61153ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ehci", "generic-ehci"; 61253ab4af3SHans de Goede reg = <0x01c1b000 0x100>; 61353ab4af3SHans de Goede interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 61453ab4af3SHans de Goede clocks = <&ahb1_gates 27>; 61553ab4af3SHans de Goede resets = <&ahb1_rst 27>; 61653ab4af3SHans de Goede phys = <&usbphy 2>; 61753ab4af3SHans de Goede phy-names = "usb"; 61853ab4af3SHans de Goede status = "disabled"; 61953ab4af3SHans de Goede }; 62053ab4af3SHans de Goede 62153ab4af3SHans de Goede ohci1: usb@01c1b400 { 62253ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ohci", "generic-ohci"; 62353ab4af3SHans de Goede reg = <0x01c1b400 0x100>; 62453ab4af3SHans de Goede interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 62553ab4af3SHans de Goede clocks = <&ahb1_gates 30>, <&usb_clk 17>; 62653ab4af3SHans de Goede resets = <&ahb1_rst 30>; 62753ab4af3SHans de Goede phys = <&usbphy 2>; 62853ab4af3SHans de Goede phy-names = "usb"; 62953ab4af3SHans de Goede status = "disabled"; 63053ab4af3SHans de Goede }; 63153ab4af3SHans de Goede 63253ab4af3SHans de Goede ohci2: usb@01c1c400 { 63353ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ohci", "generic-ohci"; 63453ab4af3SHans de Goede reg = <0x01c1c400 0x100>; 63553ab4af3SHans de Goede interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 63653ab4af3SHans de Goede clocks = <&ahb1_gates 31>, <&usb_clk 18>; 63753ab4af3SHans de Goede resets = <&ahb1_rst 31>; 63853ab4af3SHans de Goede status = "disabled"; 63953ab4af3SHans de Goede }; 64053ab4af3SHans de Goede 64153ab4af3SHans de Goede pio: pinctrl@01c20800 { 64253ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-pinctrl"; 64353ab4af3SHans de Goede reg = <0x01c20800 0x400>; 64453ab4af3SHans de Goede interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 64553ab4af3SHans de Goede <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 64653ab4af3SHans de Goede <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 64753ab4af3SHans de Goede <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 64853ab4af3SHans de Goede clocks = <&apb1_gates 5>; 64953ab4af3SHans de Goede gpio-controller; 65053ab4af3SHans de Goede interrupt-controller; 651da52a4a3SHans de Goede #interrupt-cells = <3>; 65253ab4af3SHans de Goede #gpio-cells = <3>; 65353ab4af3SHans de Goede 65453ab4af3SHans de Goede uart0_pins_a: uart0@0 { 65553ab4af3SHans de Goede allwinner,pins = "PH20", "PH21"; 65653ab4af3SHans de Goede allwinner,function = "uart0"; 65753ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 65853ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 65953ab4af3SHans de Goede }; 66053ab4af3SHans de Goede 66153ab4af3SHans de Goede i2c0_pins_a: i2c0@0 { 66253ab4af3SHans de Goede allwinner,pins = "PH14", "PH15"; 66353ab4af3SHans de Goede allwinner,function = "i2c0"; 66453ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 66553ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 66653ab4af3SHans de Goede }; 66753ab4af3SHans de Goede 66853ab4af3SHans de Goede i2c1_pins_a: i2c1@0 { 66953ab4af3SHans de Goede allwinner,pins = "PH16", "PH17"; 67053ab4af3SHans de Goede allwinner,function = "i2c1"; 67153ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 67253ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 67353ab4af3SHans de Goede }; 67453ab4af3SHans de Goede 67553ab4af3SHans de Goede i2c2_pins_a: i2c2@0 { 67653ab4af3SHans de Goede allwinner,pins = "PH18", "PH19"; 67753ab4af3SHans de Goede allwinner,function = "i2c2"; 67853ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 67953ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 68053ab4af3SHans de Goede }; 68153ab4af3SHans de Goede 68253ab4af3SHans de Goede mmc0_pins_a: mmc0@0 { 6838b1ba941SHans de Goede allwinner,pins = "PF0", "PF1", "PF2", 6848b1ba941SHans de Goede "PF3", "PF4", "PF5"; 68553ab4af3SHans de Goede allwinner,function = "mmc0"; 68653ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 68753ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 68853ab4af3SHans de Goede }; 68953ab4af3SHans de Goede 69053ab4af3SHans de Goede mmc1_pins_a: mmc1@0 { 69153ab4af3SHans de Goede allwinner,pins = "PG0", "PG1", "PG2", "PG3", 69253ab4af3SHans de Goede "PG4", "PG5"; 69353ab4af3SHans de Goede allwinner,function = "mmc1"; 69453ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 69553ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 69653ab4af3SHans de Goede }; 69753ab4af3SHans de Goede 698fc01daeeSHans de Goede mmc2_pins_a: mmc2@0 { 699fc01daeeSHans de Goede allwinner,pins = "PC6", "PC7", "PC8", "PC9", 700fc01daeeSHans de Goede "PC10", "PC11"; 701fc01daeeSHans de Goede allwinner,function = "mmc2"; 702fc01daeeSHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 703fc01daeeSHans de Goede allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 704fc01daeeSHans de Goede }; 705fc01daeeSHans de Goede 706fc01daeeSHans de Goede mmc2_8bit_emmc_pins: mmc2@1 { 707fc01daeeSHans de Goede allwinner,pins = "PC6", "PC7", "PC8", "PC9", 708fc01daeeSHans de Goede "PC10", "PC11", "PC12", 709fc01daeeSHans de Goede "PC13", "PC14", "PC15", 710fc01daeeSHans de Goede "PC24"; 711fc01daeeSHans de Goede allwinner,function = "mmc2"; 712fc01daeeSHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 713fc01daeeSHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 714fc01daeeSHans de Goede }; 715fc01daeeSHans de Goede 71680e5f83cSHans de Goede mmc3_8bit_emmc_pins: mmc3@1 { 71780e5f83cSHans de Goede allwinner,pins = "PC6", "PC7", "PC8", "PC9", 71880e5f83cSHans de Goede "PC10", "PC11", "PC12", 71980e5f83cSHans de Goede "PC13", "PC14", "PC15", 72080e5f83cSHans de Goede "PC24"; 72180e5f83cSHans de Goede allwinner,function = "mmc3"; 72280e5f83cSHans de Goede allwinner,drive = <SUN4I_PINCTRL_40_MA>; 72380e5f83cSHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 72480e5f83cSHans de Goede }; 72580e5f83cSHans de Goede 72653ab4af3SHans de Goede gmac_pins_mii_a: gmac_mii@0 { 72753ab4af3SHans de Goede allwinner,pins = "PA0", "PA1", "PA2", "PA3", 72853ab4af3SHans de Goede "PA8", "PA9", "PA11", 72953ab4af3SHans de Goede "PA12", "PA13", "PA14", "PA19", 73053ab4af3SHans de Goede "PA20", "PA21", "PA22", "PA23", 73153ab4af3SHans de Goede "PA24", "PA26", "PA27"; 73253ab4af3SHans de Goede allwinner,function = "gmac"; 73353ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 73453ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 73553ab4af3SHans de Goede }; 73653ab4af3SHans de Goede 73753ab4af3SHans de Goede gmac_pins_gmii_a: gmac_gmii@0 { 73853ab4af3SHans de Goede allwinner,pins = "PA0", "PA1", "PA2", "PA3", 73953ab4af3SHans de Goede "PA4", "PA5", "PA6", "PA7", 74053ab4af3SHans de Goede "PA8", "PA9", "PA10", "PA11", 74153ab4af3SHans de Goede "PA12", "PA13", "PA14", "PA15", 74253ab4af3SHans de Goede "PA16", "PA17", "PA18", "PA19", 74353ab4af3SHans de Goede "PA20", "PA21", "PA22", "PA23", 74453ab4af3SHans de Goede "PA24", "PA25", "PA26", "PA27"; 74553ab4af3SHans de Goede allwinner,function = "gmac"; 74653ab4af3SHans de Goede /* 74753ab4af3SHans de Goede * data lines in GMII mode run at 125MHz and 74853ab4af3SHans de Goede * might need a higher signal drive strength 74953ab4af3SHans de Goede */ 75053ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 75153ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 75253ab4af3SHans de Goede }; 75353ab4af3SHans de Goede 75453ab4af3SHans de Goede gmac_pins_rgmii_a: gmac_rgmii@0 { 75553ab4af3SHans de Goede allwinner,pins = "PA0", "PA1", "PA2", "PA3", 75653ab4af3SHans de Goede "PA9", "PA10", "PA11", 75753ab4af3SHans de Goede "PA12", "PA13", "PA14", "PA19", 75853ab4af3SHans de Goede "PA20", "PA25", "PA26", "PA27"; 75953ab4af3SHans de Goede allwinner,function = "gmac"; 76053ab4af3SHans de Goede /* 76153ab4af3SHans de Goede * data lines in RGMII mode use DDR mode 76253ab4af3SHans de Goede * and need a higher signal drive strength 76353ab4af3SHans de Goede */ 76453ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_40_MA>; 76553ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 76653ab4af3SHans de Goede }; 76753ab4af3SHans de Goede }; 76853ab4af3SHans de Goede 76953ab4af3SHans de Goede ahb1_rst: reset@01c202c0 { 77053ab4af3SHans de Goede #reset-cells = <1>; 77153ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ahb1-reset"; 77253ab4af3SHans de Goede reg = <0x01c202c0 0xc>; 77353ab4af3SHans de Goede }; 77453ab4af3SHans de Goede 77553ab4af3SHans de Goede apb1_rst: reset@01c202d0 { 77653ab4af3SHans de Goede #reset-cells = <1>; 77753ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-clock-reset"; 77853ab4af3SHans de Goede reg = <0x01c202d0 0x4>; 77953ab4af3SHans de Goede }; 78053ab4af3SHans de Goede 78153ab4af3SHans de Goede apb2_rst: reset@01c202d8 { 78253ab4af3SHans de Goede #reset-cells = <1>; 78353ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-clock-reset"; 78453ab4af3SHans de Goede reg = <0x01c202d8 0x4>; 78553ab4af3SHans de Goede }; 78653ab4af3SHans de Goede 78753ab4af3SHans de Goede timer@01c20c00 { 78853ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-timer"; 78953ab4af3SHans de Goede reg = <0x01c20c00 0xa0>; 79053ab4af3SHans de Goede interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 79153ab4af3SHans de Goede <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 79253ab4af3SHans de Goede <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, 79353ab4af3SHans de Goede <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>, 79453ab4af3SHans de Goede <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 79553ab4af3SHans de Goede clocks = <&osc24M>; 79653ab4af3SHans de Goede }; 79753ab4af3SHans de Goede 79853ab4af3SHans de Goede wdt1: watchdog@01c20ca0 { 79953ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-wdt"; 80053ab4af3SHans de Goede reg = <0x01c20ca0 0x20>; 80153ab4af3SHans de Goede }; 80253ab4af3SHans de Goede 80380e5f83cSHans de Goede lradc: lradc@01c22800 { 80480e5f83cSHans de Goede compatible = "allwinner,sun4i-a10-lradc-keys"; 80580e5f83cSHans de Goede reg = <0x01c22800 0x100>; 80680e5f83cSHans de Goede interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 80780e5f83cSHans de Goede status = "disabled"; 80880e5f83cSHans de Goede }; 80980e5f83cSHans de Goede 81053ab4af3SHans de Goede rtp: rtp@01c25000 { 81153ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ts"; 81253ab4af3SHans de Goede reg = <0x01c25000 0x100>; 81353ab4af3SHans de Goede interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 81453ab4af3SHans de Goede #thermal-sensor-cells = <0>; 81553ab4af3SHans de Goede }; 81653ab4af3SHans de Goede 81753ab4af3SHans de Goede uart0: serial@01c28000 { 81853ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 81953ab4af3SHans de Goede reg = <0x01c28000 0x400>; 82053ab4af3SHans de Goede interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 82153ab4af3SHans de Goede reg-shift = <2>; 82253ab4af3SHans de Goede reg-io-width = <4>; 82353ab4af3SHans de Goede clocks = <&apb2_gates 16>; 82453ab4af3SHans de Goede resets = <&apb2_rst 16>; 82553ab4af3SHans de Goede dmas = <&dma 6>, <&dma 6>; 82653ab4af3SHans de Goede dma-names = "rx", "tx"; 82753ab4af3SHans de Goede status = "disabled"; 82853ab4af3SHans de Goede }; 82953ab4af3SHans de Goede 83053ab4af3SHans de Goede uart1: serial@01c28400 { 83153ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 83253ab4af3SHans de Goede reg = <0x01c28400 0x400>; 83353ab4af3SHans de Goede interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 83453ab4af3SHans de Goede reg-shift = <2>; 83553ab4af3SHans de Goede reg-io-width = <4>; 83653ab4af3SHans de Goede clocks = <&apb2_gates 17>; 83753ab4af3SHans de Goede resets = <&apb2_rst 17>; 83853ab4af3SHans de Goede dmas = <&dma 7>, <&dma 7>; 83953ab4af3SHans de Goede dma-names = "rx", "tx"; 84053ab4af3SHans de Goede status = "disabled"; 84153ab4af3SHans de Goede }; 84253ab4af3SHans de Goede 84353ab4af3SHans de Goede uart2: serial@01c28800 { 84453ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 84553ab4af3SHans de Goede reg = <0x01c28800 0x400>; 84653ab4af3SHans de Goede interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 84753ab4af3SHans de Goede reg-shift = <2>; 84853ab4af3SHans de Goede reg-io-width = <4>; 84953ab4af3SHans de Goede clocks = <&apb2_gates 18>; 85053ab4af3SHans de Goede resets = <&apb2_rst 18>; 85153ab4af3SHans de Goede dmas = <&dma 8>, <&dma 8>; 85253ab4af3SHans de Goede dma-names = "rx", "tx"; 85353ab4af3SHans de Goede status = "disabled"; 85453ab4af3SHans de Goede }; 85553ab4af3SHans de Goede 85653ab4af3SHans de Goede uart3: serial@01c28c00 { 85753ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 85853ab4af3SHans de Goede reg = <0x01c28c00 0x400>; 85953ab4af3SHans de Goede interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 86053ab4af3SHans de Goede reg-shift = <2>; 86153ab4af3SHans de Goede reg-io-width = <4>; 86253ab4af3SHans de Goede clocks = <&apb2_gates 19>; 86353ab4af3SHans de Goede resets = <&apb2_rst 19>; 86453ab4af3SHans de Goede dmas = <&dma 9>, <&dma 9>; 86553ab4af3SHans de Goede dma-names = "rx", "tx"; 86653ab4af3SHans de Goede status = "disabled"; 86753ab4af3SHans de Goede }; 86853ab4af3SHans de Goede 86953ab4af3SHans de Goede uart4: serial@01c29000 { 87053ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 87153ab4af3SHans de Goede reg = <0x01c29000 0x400>; 87253ab4af3SHans de Goede interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 87353ab4af3SHans de Goede reg-shift = <2>; 87453ab4af3SHans de Goede reg-io-width = <4>; 87553ab4af3SHans de Goede clocks = <&apb2_gates 20>; 87653ab4af3SHans de Goede resets = <&apb2_rst 20>; 87753ab4af3SHans de Goede dmas = <&dma 10>, <&dma 10>; 87853ab4af3SHans de Goede dma-names = "rx", "tx"; 87953ab4af3SHans de Goede status = "disabled"; 88053ab4af3SHans de Goede }; 88153ab4af3SHans de Goede 88253ab4af3SHans de Goede uart5: serial@01c29400 { 88353ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 88453ab4af3SHans de Goede reg = <0x01c29400 0x400>; 88553ab4af3SHans de Goede interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 88653ab4af3SHans de Goede reg-shift = <2>; 88753ab4af3SHans de Goede reg-io-width = <4>; 88853ab4af3SHans de Goede clocks = <&apb2_gates 21>; 88953ab4af3SHans de Goede resets = <&apb2_rst 21>; 89053ab4af3SHans de Goede dmas = <&dma 22>, <&dma 22>; 89153ab4af3SHans de Goede dma-names = "rx", "tx"; 89253ab4af3SHans de Goede status = "disabled"; 89353ab4af3SHans de Goede }; 89453ab4af3SHans de Goede 89553ab4af3SHans de Goede i2c0: i2c@01c2ac00 { 89653ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-i2c"; 89753ab4af3SHans de Goede reg = <0x01c2ac00 0x400>; 89853ab4af3SHans de Goede interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 89953ab4af3SHans de Goede clocks = <&apb2_gates 0>; 90053ab4af3SHans de Goede resets = <&apb2_rst 0>; 90153ab4af3SHans de Goede status = "disabled"; 90253ab4af3SHans de Goede #address-cells = <1>; 90353ab4af3SHans de Goede #size-cells = <0>; 90453ab4af3SHans de Goede }; 90553ab4af3SHans de Goede 90653ab4af3SHans de Goede i2c1: i2c@01c2b000 { 90753ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-i2c"; 90853ab4af3SHans de Goede reg = <0x01c2b000 0x400>; 90953ab4af3SHans de Goede interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 91053ab4af3SHans de Goede clocks = <&apb2_gates 1>; 91153ab4af3SHans de Goede resets = <&apb2_rst 1>; 91253ab4af3SHans de Goede status = "disabled"; 91353ab4af3SHans de Goede #address-cells = <1>; 91453ab4af3SHans de Goede #size-cells = <0>; 91553ab4af3SHans de Goede }; 91653ab4af3SHans de Goede 91753ab4af3SHans de Goede i2c2: i2c@01c2b400 { 91853ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-i2c"; 91953ab4af3SHans de Goede reg = <0x01c2b400 0x400>; 92053ab4af3SHans de Goede interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 92153ab4af3SHans de Goede clocks = <&apb2_gates 2>; 92253ab4af3SHans de Goede resets = <&apb2_rst 2>; 92353ab4af3SHans de Goede status = "disabled"; 92453ab4af3SHans de Goede #address-cells = <1>; 92553ab4af3SHans de Goede #size-cells = <0>; 92653ab4af3SHans de Goede }; 92753ab4af3SHans de Goede 92853ab4af3SHans de Goede i2c3: i2c@01c2b800 { 92953ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-i2c"; 93053ab4af3SHans de Goede reg = <0x01c2b800 0x400>; 93153ab4af3SHans de Goede interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 93253ab4af3SHans de Goede clocks = <&apb2_gates 3>; 93353ab4af3SHans de Goede resets = <&apb2_rst 3>; 93453ab4af3SHans de Goede status = "disabled"; 93553ab4af3SHans de Goede #address-cells = <1>; 93653ab4af3SHans de Goede #size-cells = <0>; 93753ab4af3SHans de Goede }; 93853ab4af3SHans de Goede 93953ab4af3SHans de Goede gmac: ethernet@01c30000 { 94053ab4af3SHans de Goede compatible = "allwinner,sun7i-a20-gmac"; 94153ab4af3SHans de Goede reg = <0x01c30000 0x1054>; 94253ab4af3SHans de Goede interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 94353ab4af3SHans de Goede interrupt-names = "macirq"; 94453ab4af3SHans de Goede clocks = <&ahb1_gates 17>, <&gmac_tx_clk>; 94553ab4af3SHans de Goede clock-names = "stmmaceth", "allwinner_gmac_tx"; 94653ab4af3SHans de Goede resets = <&ahb1_rst 17>; 94753ab4af3SHans de Goede reset-names = "stmmaceth"; 94853ab4af3SHans de Goede snps,pbl = <2>; 94953ab4af3SHans de Goede snps,fixed-burst; 95053ab4af3SHans de Goede snps,force_sf_dma_mode; 95153ab4af3SHans de Goede status = "disabled"; 95253ab4af3SHans de Goede #address-cells = <1>; 95353ab4af3SHans de Goede #size-cells = <0>; 95453ab4af3SHans de Goede }; 95553ab4af3SHans de Goede 95680e5f83cSHans de Goede crypto: crypto-engine@01c15000 { 95780e5f83cSHans de Goede compatible = "allwinner,sun4i-a10-crypto"; 95880e5f83cSHans de Goede reg = <0x01c15000 0x1000>; 95980e5f83cSHans de Goede interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 96080e5f83cSHans de Goede clocks = <&ahb1_gates 5>, <&ss_clk>; 96180e5f83cSHans de Goede clock-names = "ahb", "mod"; 96280e5f83cSHans de Goede resets = <&ahb1_rst 5>; 96380e5f83cSHans de Goede reset-names = "ahb"; 96480e5f83cSHans de Goede }; 96580e5f83cSHans de Goede 96653ab4af3SHans de Goede timer@01c60000 { 9678b1ba941SHans de Goede compatible = "allwinner,sun6i-a31-hstimer", 9688b1ba941SHans de Goede "allwinner,sun7i-a20-hstimer"; 96953ab4af3SHans de Goede reg = <0x01c60000 0x1000>; 97053ab4af3SHans de Goede interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 97153ab4af3SHans de Goede <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 97253ab4af3SHans de Goede <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 97353ab4af3SHans de Goede <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; 97453ab4af3SHans de Goede clocks = <&ahb1_gates 19>; 97553ab4af3SHans de Goede resets = <&ahb1_rst 19>; 97653ab4af3SHans de Goede }; 97753ab4af3SHans de Goede 97853ab4af3SHans de Goede spi0: spi@01c68000 { 97953ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-spi"; 98053ab4af3SHans de Goede reg = <0x01c68000 0x1000>; 98153ab4af3SHans de Goede interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 98253ab4af3SHans de Goede clocks = <&ahb1_gates 20>, <&spi0_clk>; 98353ab4af3SHans de Goede clock-names = "ahb", "mod"; 98453ab4af3SHans de Goede dmas = <&dma 23>, <&dma 23>; 98553ab4af3SHans de Goede dma-names = "rx", "tx"; 98653ab4af3SHans de Goede resets = <&ahb1_rst 20>; 98753ab4af3SHans de Goede status = "disabled"; 98853ab4af3SHans de Goede }; 98953ab4af3SHans de Goede 99053ab4af3SHans de Goede spi1: spi@01c69000 { 99153ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-spi"; 99253ab4af3SHans de Goede reg = <0x01c69000 0x1000>; 99353ab4af3SHans de Goede interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 99453ab4af3SHans de Goede clocks = <&ahb1_gates 21>, <&spi1_clk>; 99553ab4af3SHans de Goede clock-names = "ahb", "mod"; 99653ab4af3SHans de Goede dmas = <&dma 24>, <&dma 24>; 99753ab4af3SHans de Goede dma-names = "rx", "tx"; 99853ab4af3SHans de Goede resets = <&ahb1_rst 21>; 99953ab4af3SHans de Goede status = "disabled"; 100053ab4af3SHans de Goede }; 100153ab4af3SHans de Goede 100253ab4af3SHans de Goede spi2: spi@01c6a000 { 100353ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-spi"; 100453ab4af3SHans de Goede reg = <0x01c6a000 0x1000>; 100553ab4af3SHans de Goede interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 100653ab4af3SHans de Goede clocks = <&ahb1_gates 22>, <&spi2_clk>; 100753ab4af3SHans de Goede clock-names = "ahb", "mod"; 100853ab4af3SHans de Goede dmas = <&dma 25>, <&dma 25>; 100953ab4af3SHans de Goede dma-names = "rx", "tx"; 101053ab4af3SHans de Goede resets = <&ahb1_rst 22>; 101153ab4af3SHans de Goede status = "disabled"; 101253ab4af3SHans de Goede }; 101353ab4af3SHans de Goede 101453ab4af3SHans de Goede spi3: spi@01c6b000 { 101553ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-spi"; 101653ab4af3SHans de Goede reg = <0x01c6b000 0x1000>; 101753ab4af3SHans de Goede interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 101853ab4af3SHans de Goede clocks = <&ahb1_gates 23>, <&spi3_clk>; 101953ab4af3SHans de Goede clock-names = "ahb", "mod"; 102053ab4af3SHans de Goede dmas = <&dma 26>, <&dma 26>; 102153ab4af3SHans de Goede dma-names = "rx", "tx"; 102253ab4af3SHans de Goede resets = <&ahb1_rst 23>; 102353ab4af3SHans de Goede status = "disabled"; 102453ab4af3SHans de Goede }; 102553ab4af3SHans de Goede 102653ab4af3SHans de Goede gic: interrupt-controller@01c81000 { 102753ab4af3SHans de Goede compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 102853ab4af3SHans de Goede reg = <0x01c81000 0x1000>, 102953ab4af3SHans de Goede <0x01c82000 0x1000>, 103053ab4af3SHans de Goede <0x01c84000 0x2000>, 103153ab4af3SHans de Goede <0x01c86000 0x2000>; 103253ab4af3SHans de Goede interrupt-controller; 103353ab4af3SHans de Goede #interrupt-cells = <3>; 103453ab4af3SHans de Goede interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 103553ab4af3SHans de Goede }; 103653ab4af3SHans de Goede 103753ab4af3SHans de Goede rtc: rtc@01f00000 { 103853ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-rtc"; 103953ab4af3SHans de Goede reg = <0x01f00000 0x54>; 104053ab4af3SHans de Goede interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 104153ab4af3SHans de Goede <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 104253ab4af3SHans de Goede }; 104353ab4af3SHans de Goede 104453ab4af3SHans de Goede nmi_intc: interrupt-controller@01f00c0c { 104553ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-sc-nmi"; 104653ab4af3SHans de Goede interrupt-controller; 104753ab4af3SHans de Goede #interrupt-cells = <2>; 104853ab4af3SHans de Goede reg = <0x01f00c0c 0x38>; 104953ab4af3SHans de Goede interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 105053ab4af3SHans de Goede }; 105153ab4af3SHans de Goede 105253ab4af3SHans de Goede prcm@01f01400 { 105353ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-prcm"; 105453ab4af3SHans de Goede reg = <0x01f01400 0x200>; 105553ab4af3SHans de Goede 105653ab4af3SHans de Goede ar100: ar100_clk { 105753ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ar100-clk"; 105853ab4af3SHans de Goede #clock-cells = <0>; 10598b1ba941SHans de Goede clocks = <&osc32k>, <&osc24M>, <&pll6 0>, 10608b1ba941SHans de Goede <&pll6 0>; 106153ab4af3SHans de Goede clock-output-names = "ar100"; 106253ab4af3SHans de Goede }; 106353ab4af3SHans de Goede 106453ab4af3SHans de Goede ahb0: ahb0_clk { 106553ab4af3SHans de Goede compatible = "fixed-factor-clock"; 106653ab4af3SHans de Goede #clock-cells = <0>; 106753ab4af3SHans de Goede clock-div = <1>; 106853ab4af3SHans de Goede clock-mult = <1>; 106953ab4af3SHans de Goede clocks = <&ar100>; 107053ab4af3SHans de Goede clock-output-names = "ahb0"; 107153ab4af3SHans de Goede }; 107253ab4af3SHans de Goede 107353ab4af3SHans de Goede apb0: apb0_clk { 107453ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-apb0-clk"; 107553ab4af3SHans de Goede #clock-cells = <0>; 107653ab4af3SHans de Goede clocks = <&ahb0>; 107753ab4af3SHans de Goede clock-output-names = "apb0"; 107853ab4af3SHans de Goede }; 107953ab4af3SHans de Goede 108053ab4af3SHans de Goede apb0_gates: apb0_gates_clk { 108153ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-apb0-gates-clk"; 108253ab4af3SHans de Goede #clock-cells = <1>; 108353ab4af3SHans de Goede clocks = <&apb0>; 108453ab4af3SHans de Goede clock-output-names = "apb0_pio", "apb0_ir", 108553ab4af3SHans de Goede "apb0_timer", "apb0_p2wi", 108653ab4af3SHans de Goede "apb0_uart", "apb0_1wire", 108753ab4af3SHans de Goede "apb0_i2c"; 108853ab4af3SHans de Goede }; 108953ab4af3SHans de Goede 109053ab4af3SHans de Goede ir_clk: ir_clk { 109153ab4af3SHans de Goede #clock-cells = <0>; 109253ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 109353ab4af3SHans de Goede clocks = <&osc32k>, <&osc24M>; 109453ab4af3SHans de Goede clock-output-names = "ir"; 109553ab4af3SHans de Goede }; 109653ab4af3SHans de Goede 109753ab4af3SHans de Goede apb0_rst: apb0_rst { 109853ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-clock-reset"; 109953ab4af3SHans de Goede #reset-cells = <1>; 110053ab4af3SHans de Goede }; 110153ab4af3SHans de Goede }; 110253ab4af3SHans de Goede 110353ab4af3SHans de Goede cpucfg@01f01c00 { 110453ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-cpuconfig"; 110553ab4af3SHans de Goede reg = <0x01f01c00 0x300>; 110653ab4af3SHans de Goede }; 110753ab4af3SHans de Goede 110853ab4af3SHans de Goede ir: ir@01f02000 { 110953ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-ir"; 111053ab4af3SHans de Goede clocks = <&apb0_gates 1>, <&ir_clk>; 111153ab4af3SHans de Goede clock-names = "apb", "ir"; 111253ab4af3SHans de Goede resets = <&apb0_rst 1>; 111353ab4af3SHans de Goede interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 111453ab4af3SHans de Goede reg = <0x01f02000 0x40>; 111553ab4af3SHans de Goede status = "disabled"; 111653ab4af3SHans de Goede }; 111753ab4af3SHans de Goede 111853ab4af3SHans de Goede r_pio: pinctrl@01f02c00 { 111953ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-r-pinctrl"; 112053ab4af3SHans de Goede reg = <0x01f02c00 0x400>; 112153ab4af3SHans de Goede interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 112253ab4af3SHans de Goede <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 112353ab4af3SHans de Goede clocks = <&apb0_gates 0>; 112453ab4af3SHans de Goede resets = <&apb0_rst 0>; 112553ab4af3SHans de Goede gpio-controller; 112653ab4af3SHans de Goede interrupt-controller; 112780e5f83cSHans de Goede #interrupt-cells = <3>; 112853ab4af3SHans de Goede #size-cells = <0>; 112953ab4af3SHans de Goede #gpio-cells = <3>; 113053ab4af3SHans de Goede 113153ab4af3SHans de Goede ir_pins_a: ir@0 { 113253ab4af3SHans de Goede allwinner,pins = "PL4"; 113353ab4af3SHans de Goede allwinner,function = "s_ir"; 113453ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 113553ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 113653ab4af3SHans de Goede }; 113753ab4af3SHans de Goede 113853ab4af3SHans de Goede p2wi_pins: p2wi { 113953ab4af3SHans de Goede allwinner,pins = "PL0", "PL1"; 114053ab4af3SHans de Goede allwinner,function = "s_p2wi"; 114153ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 114253ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 114353ab4af3SHans de Goede }; 114453ab4af3SHans de Goede }; 114553ab4af3SHans de Goede 114653ab4af3SHans de Goede p2wi: i2c@01f03400 { 114753ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-p2wi"; 114853ab4af3SHans de Goede reg = <0x01f03400 0x400>; 114953ab4af3SHans de Goede interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 115053ab4af3SHans de Goede clocks = <&apb0_gates 3>; 115153ab4af3SHans de Goede clock-frequency = <100000>; 115253ab4af3SHans de Goede resets = <&apb0_rst 3>; 115353ab4af3SHans de Goede pinctrl-names = "default"; 115453ab4af3SHans de Goede pinctrl-0 = <&p2wi_pins>; 115553ab4af3SHans de Goede status = "disabled"; 115653ab4af3SHans de Goede #address-cells = <1>; 115753ab4af3SHans de Goede #size-cells = <0>; 115853ab4af3SHans de Goede }; 115953ab4af3SHans de Goede }; 116053ab4af3SHans de Goede}; 1161