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 6453ab4af3SHans de Goede 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 7253ab4af3SHans de Goede 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>; 25553ab4af3SHans de Goede clock-output-names = "ahb1_mipidsi", "ahb1_ss", 25653ab4af3SHans de Goede "ahb1_dma", "ahb1_mmc0", "ahb1_mmc1", 25753ab4af3SHans de Goede "ahb1_mmc2", "ahb1_mmc3", "ahb1_nand1", 25853ab4af3SHans de Goede "ahb1_nand0", "ahb1_sdram", 25953ab4af3SHans de Goede "ahb1_gmac", "ahb1_ts", "ahb1_hstimer", 26053ab4af3SHans de Goede "ahb1_spi0", "ahb1_spi1", "ahb1_spi2", 26153ab4af3SHans de Goede "ahb1_spi3", "ahb1_otg", "ahb1_ehci0", 26253ab4af3SHans de Goede "ahb1_ehci1", "ahb1_ohci0", 26353ab4af3SHans de Goede "ahb1_ohci1", "ahb1_ohci2", "ahb1_ve", 26453ab4af3SHans de Goede "ahb1_lcd0", "ahb1_lcd1", "ahb1_csi", 26553ab4af3SHans de Goede "ahb1_hdmi", "ahb1_de0", "ahb1_de1", 26653ab4af3SHans de Goede "ahb1_fe0", "ahb1_fe1", "ahb1_mp", 26753ab4af3SHans de Goede "ahb1_gpu", "ahb1_deu0", "ahb1_deu1", 26853ab4af3SHans de Goede "ahb1_drc0", "ahb1_drc1"; 26953ab4af3SHans de Goede }; 27053ab4af3SHans de Goede 27153ab4af3SHans de Goede apb1: apb1@01c20054 { 27253ab4af3SHans de Goede #clock-cells = <0>; 27353ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-apb0-clk"; 27453ab4af3SHans de Goede reg = <0x01c20054 0x4>; 27553ab4af3SHans de Goede clocks = <&ahb1>; 27653ab4af3SHans de Goede clock-output-names = "apb1"; 27753ab4af3SHans de Goede }; 27853ab4af3SHans de Goede 27953ab4af3SHans de Goede apb1_gates: clk@01c20068 { 28053ab4af3SHans de Goede #clock-cells = <1>; 28153ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-apb1-gates-clk"; 28253ab4af3SHans de Goede reg = <0x01c20068 0x4>; 28353ab4af3SHans de Goede clocks = <&apb1>; 28453ab4af3SHans de Goede clock-output-names = "apb1_codec", "apb1_digital_mic", 28553ab4af3SHans de Goede "apb1_pio", "apb1_daudio0", 28653ab4af3SHans de Goede "apb1_daudio1"; 28753ab4af3SHans de Goede }; 28853ab4af3SHans de Goede 28953ab4af3SHans de Goede apb2: clk@01c20058 { 29053ab4af3SHans de Goede #clock-cells = <0>; 29153ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-apb1-clk"; 29253ab4af3SHans de Goede reg = <0x01c20058 0x4>; 29353ab4af3SHans de Goede clocks = <&osc32k>, <&osc24M>, <&pll6 0>, <&pll6 0>; 29453ab4af3SHans de Goede clock-output-names = "apb2"; 29553ab4af3SHans de Goede }; 29653ab4af3SHans de Goede 29753ab4af3SHans de Goede apb2_gates: clk@01c2006c { 29853ab4af3SHans de Goede #clock-cells = <1>; 29953ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-apb2-gates-clk"; 30053ab4af3SHans de Goede reg = <0x01c2006c 0x4>; 30153ab4af3SHans de Goede clocks = <&apb2>; 30253ab4af3SHans de Goede clock-output-names = "apb2_i2c0", "apb2_i2c1", 3038b1ba941SHans de Goede "apb2_i2c2", "apb2_i2c3", 3048b1ba941SHans de Goede "apb2_uart0", "apb2_uart1", 3058b1ba941SHans de Goede "apb2_uart2", "apb2_uart3", 30653ab4af3SHans de Goede "apb2_uart4", "apb2_uart5"; 30753ab4af3SHans de Goede }; 30853ab4af3SHans de Goede 30953ab4af3SHans de Goede mmc0_clk: clk@01c20088 { 31053ab4af3SHans de Goede #clock-cells = <1>; 31153ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mmc-clk"; 31253ab4af3SHans de Goede reg = <0x01c20088 0x4>; 31353ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 31453ab4af3SHans de Goede clock-output-names = "mmc0", 31553ab4af3SHans de Goede "mmc0_output", 31653ab4af3SHans de Goede "mmc0_sample"; 31753ab4af3SHans de Goede }; 31853ab4af3SHans de Goede 31953ab4af3SHans de Goede mmc1_clk: clk@01c2008c { 32053ab4af3SHans de Goede #clock-cells = <1>; 32153ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mmc-clk"; 32253ab4af3SHans de Goede reg = <0x01c2008c 0x4>; 32353ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 32453ab4af3SHans de Goede clock-output-names = "mmc1", 32553ab4af3SHans de Goede "mmc1_output", 32653ab4af3SHans de Goede "mmc1_sample"; 32753ab4af3SHans de Goede }; 32853ab4af3SHans de Goede 32953ab4af3SHans de Goede mmc2_clk: clk@01c20090 { 33053ab4af3SHans de Goede #clock-cells = <1>; 33153ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mmc-clk"; 33253ab4af3SHans de Goede reg = <0x01c20090 0x4>; 33353ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 33453ab4af3SHans de Goede clock-output-names = "mmc2", 33553ab4af3SHans de Goede "mmc2_output", 33653ab4af3SHans de Goede "mmc2_sample"; 33753ab4af3SHans de Goede }; 33853ab4af3SHans de Goede 33953ab4af3SHans de Goede mmc3_clk: clk@01c20094 { 34053ab4af3SHans de Goede #clock-cells = <1>; 34153ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mmc-clk"; 34253ab4af3SHans de Goede reg = <0x01c20094 0x4>; 34353ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 34453ab4af3SHans de Goede clock-output-names = "mmc3", 34553ab4af3SHans de Goede "mmc3_output", 34653ab4af3SHans de Goede "mmc3_sample"; 34753ab4af3SHans de Goede }; 34853ab4af3SHans de Goede 34953ab4af3SHans de Goede spi0_clk: clk@01c200a0 { 35053ab4af3SHans de Goede #clock-cells = <0>; 35153ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 35253ab4af3SHans de Goede reg = <0x01c200a0 0x4>; 35353ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 35453ab4af3SHans de Goede clock-output-names = "spi0"; 35553ab4af3SHans de Goede }; 35653ab4af3SHans de Goede 35753ab4af3SHans de Goede spi1_clk: clk@01c200a4 { 35853ab4af3SHans de Goede #clock-cells = <0>; 35953ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 36053ab4af3SHans de Goede reg = <0x01c200a4 0x4>; 36153ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 36253ab4af3SHans de Goede clock-output-names = "spi1"; 36353ab4af3SHans de Goede }; 36453ab4af3SHans de Goede 36553ab4af3SHans de Goede spi2_clk: clk@01c200a8 { 36653ab4af3SHans de Goede #clock-cells = <0>; 36753ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 36853ab4af3SHans de Goede reg = <0x01c200a8 0x4>; 36953ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 37053ab4af3SHans de Goede clock-output-names = "spi2"; 37153ab4af3SHans de Goede }; 37253ab4af3SHans de Goede 37353ab4af3SHans de Goede spi3_clk: clk@01c200ac { 37453ab4af3SHans de Goede #clock-cells = <0>; 37553ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 37653ab4af3SHans de Goede reg = <0x01c200ac 0x4>; 37753ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 0>; 37853ab4af3SHans de Goede clock-output-names = "spi3"; 37953ab4af3SHans de Goede }; 38053ab4af3SHans de Goede 38153ab4af3SHans de Goede usb_clk: clk@01c200cc { 38253ab4af3SHans de Goede #clock-cells = <1>; 38353ab4af3SHans de Goede #reset-cells = <1>; 38453ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-usb-clk"; 38553ab4af3SHans de Goede reg = <0x01c200cc 0x4>; 38653ab4af3SHans de Goede clocks = <&osc24M>; 38753ab4af3SHans de Goede clock-output-names = "usb_phy0", "usb_phy1", "usb_phy2", 38853ab4af3SHans de Goede "usb_ohci0", "usb_ohci1", 38953ab4af3SHans de Goede "usb_ohci2"; 39053ab4af3SHans de Goede }; 39153ab4af3SHans de Goede 39253ab4af3SHans de Goede /* 3938b1ba941SHans de Goede * The following two are dummy clocks, placeholders 3948b1ba941SHans de Goede * used in the gmac_tx clock. The gmac driver will 3958b1ba941SHans de Goede * choose one parent depending on the PHY interface 3968b1ba941SHans de Goede * mode, using clk_set_rate auto-reparenting. 3978b1ba941SHans de Goede * 3988b1ba941SHans de Goede * The actual TX clock rate is not controlled by the 3998b1ba941SHans de Goede * gmac_tx clock. 40053ab4af3SHans de Goede */ 40153ab4af3SHans de Goede mii_phy_tx_clk: clk@1 { 40253ab4af3SHans de Goede #clock-cells = <0>; 40353ab4af3SHans de Goede compatible = "fixed-clock"; 40453ab4af3SHans de Goede clock-frequency = <25000000>; 40553ab4af3SHans de Goede clock-output-names = "mii_phy_tx"; 40653ab4af3SHans de Goede }; 40753ab4af3SHans de Goede 40853ab4af3SHans de Goede gmac_int_tx_clk: clk@2 { 40953ab4af3SHans de Goede #clock-cells = <0>; 41053ab4af3SHans de Goede compatible = "fixed-clock"; 41153ab4af3SHans de Goede clock-frequency = <125000000>; 41253ab4af3SHans de Goede clock-output-names = "gmac_int_tx"; 41353ab4af3SHans de Goede }; 41453ab4af3SHans de Goede 41553ab4af3SHans de Goede gmac_tx_clk: clk@01c200d0 { 41653ab4af3SHans de Goede #clock-cells = <0>; 41753ab4af3SHans de Goede compatible = "allwinner,sun7i-a20-gmac-clk"; 41853ab4af3SHans de Goede reg = <0x01c200d0 0x4>; 41953ab4af3SHans de Goede clocks = <&mii_phy_tx_clk>, <&gmac_int_tx_clk>; 42053ab4af3SHans de Goede clock-output-names = "gmac_tx"; 42153ab4af3SHans de Goede }; 42253ab4af3SHans de Goede }; 42353ab4af3SHans de Goede 42453ab4af3SHans de Goede soc@01c00000 { 42553ab4af3SHans de Goede compatible = "simple-bus"; 42653ab4af3SHans de Goede #address-cells = <1>; 42753ab4af3SHans de Goede #size-cells = <1>; 42853ab4af3SHans de Goede ranges; 42953ab4af3SHans de Goede 43053ab4af3SHans de Goede dma: dma-controller@01c02000 { 43153ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-dma"; 43253ab4af3SHans de Goede reg = <0x01c02000 0x1000>; 43353ab4af3SHans de Goede interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 43453ab4af3SHans de Goede clocks = <&ahb1_gates 6>; 43553ab4af3SHans de Goede resets = <&ahb1_rst 6>; 43653ab4af3SHans de Goede #dma-cells = <1>; 43753ab4af3SHans de Goede }; 43853ab4af3SHans de Goede 43953ab4af3SHans de Goede mmc0: mmc@01c0f000 { 44053ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-mmc"; 44153ab4af3SHans de Goede reg = <0x01c0f000 0x1000>; 44253ab4af3SHans de Goede clocks = <&ahb1_gates 8>, 44353ab4af3SHans de Goede <&mmc0_clk 0>, 44453ab4af3SHans de Goede <&mmc0_clk 1>, 44553ab4af3SHans de Goede <&mmc0_clk 2>; 44653ab4af3SHans de Goede clock-names = "ahb", 44753ab4af3SHans de Goede "mmc", 44853ab4af3SHans de Goede "output", 44953ab4af3SHans de Goede "sample"; 45053ab4af3SHans de Goede resets = <&ahb1_rst 8>; 45153ab4af3SHans de Goede reset-names = "ahb"; 45253ab4af3SHans de Goede interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 45353ab4af3SHans de Goede status = "disabled"; 45453ab4af3SHans de Goede #address-cells = <1>; 45553ab4af3SHans de Goede #size-cells = <0>; 45653ab4af3SHans de Goede }; 45753ab4af3SHans de Goede 45853ab4af3SHans de Goede mmc1: mmc@01c10000 { 45953ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-mmc"; 46053ab4af3SHans de Goede reg = <0x01c10000 0x1000>; 46153ab4af3SHans de Goede clocks = <&ahb1_gates 9>, 46253ab4af3SHans de Goede <&mmc1_clk 0>, 46353ab4af3SHans de Goede <&mmc1_clk 1>, 46453ab4af3SHans de Goede <&mmc1_clk 2>; 46553ab4af3SHans de Goede clock-names = "ahb", 46653ab4af3SHans de Goede "mmc", 46753ab4af3SHans de Goede "output", 46853ab4af3SHans de Goede "sample"; 46953ab4af3SHans de Goede resets = <&ahb1_rst 9>; 47053ab4af3SHans de Goede reset-names = "ahb"; 47153ab4af3SHans de Goede interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 47253ab4af3SHans de Goede status = "disabled"; 47353ab4af3SHans de Goede #address-cells = <1>; 47453ab4af3SHans de Goede #size-cells = <0>; 47553ab4af3SHans de Goede }; 47653ab4af3SHans de Goede 47753ab4af3SHans de Goede mmc2: mmc@01c11000 { 47853ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-mmc"; 47953ab4af3SHans de Goede reg = <0x01c11000 0x1000>; 48053ab4af3SHans de Goede clocks = <&ahb1_gates 10>, 48153ab4af3SHans de Goede <&mmc2_clk 0>, 48253ab4af3SHans de Goede <&mmc2_clk 1>, 48353ab4af3SHans de Goede <&mmc2_clk 2>; 48453ab4af3SHans de Goede clock-names = "ahb", 48553ab4af3SHans de Goede "mmc", 48653ab4af3SHans de Goede "output", 48753ab4af3SHans de Goede "sample"; 48853ab4af3SHans de Goede resets = <&ahb1_rst 10>; 48953ab4af3SHans de Goede reset-names = "ahb"; 49053ab4af3SHans de Goede interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 49153ab4af3SHans de Goede status = "disabled"; 49253ab4af3SHans de Goede #address-cells = <1>; 49353ab4af3SHans de Goede #size-cells = <0>; 49453ab4af3SHans de Goede }; 49553ab4af3SHans de Goede 49653ab4af3SHans de Goede mmc3: mmc@01c12000 { 49753ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-mmc"; 49853ab4af3SHans de Goede reg = <0x01c12000 0x1000>; 49953ab4af3SHans de Goede clocks = <&ahb1_gates 11>, 50053ab4af3SHans de Goede <&mmc3_clk 0>, 50153ab4af3SHans de Goede <&mmc3_clk 1>, 50253ab4af3SHans de Goede <&mmc3_clk 2>; 50353ab4af3SHans de Goede clock-names = "ahb", 50453ab4af3SHans de Goede "mmc", 50553ab4af3SHans de Goede "output", 50653ab4af3SHans de Goede "sample"; 50753ab4af3SHans de Goede resets = <&ahb1_rst 11>; 50853ab4af3SHans de Goede reset-names = "ahb"; 50953ab4af3SHans de Goede interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 51053ab4af3SHans de Goede status = "disabled"; 51153ab4af3SHans de Goede #address-cells = <1>; 51253ab4af3SHans de Goede #size-cells = <0>; 51353ab4af3SHans de Goede }; 51453ab4af3SHans de Goede 515da52a4a3SHans de Goede usb_otg: usb@01c19000 { 516da52a4a3SHans de Goede compatible = "allwinner,sun6i-a31-musb"; 517da52a4a3SHans de Goede reg = <0x01c19000 0x0400>; 518da52a4a3SHans de Goede clocks = <&ahb1_gates 24>; 519da52a4a3SHans de Goede resets = <&ahb1_rst 24>; 520da52a4a3SHans de Goede interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 521da52a4a3SHans de Goede interrupt-names = "mc"; 522da52a4a3SHans de Goede phys = <&usbphy 0>; 523da52a4a3SHans de Goede phy-names = "usb"; 524da52a4a3SHans de Goede extcon = <&usbphy 0>; 525da52a4a3SHans de Goede status = "disabled"; 526da52a4a3SHans de Goede }; 527da52a4a3SHans de Goede 52853ab4af3SHans de Goede usbphy: phy@01c19400 { 52953ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-usb-phy"; 53053ab4af3SHans de Goede reg = <0x01c19400 0x10>, 53153ab4af3SHans de Goede <0x01c1a800 0x4>, 53253ab4af3SHans de Goede <0x01c1b800 0x4>; 53353ab4af3SHans de Goede reg-names = "phy_ctrl", 53453ab4af3SHans de Goede "pmu1", 53553ab4af3SHans de Goede "pmu2"; 53653ab4af3SHans de Goede clocks = <&usb_clk 8>, 53753ab4af3SHans de Goede <&usb_clk 9>, 53853ab4af3SHans de Goede <&usb_clk 10>; 53953ab4af3SHans de Goede clock-names = "usb0_phy", 54053ab4af3SHans de Goede "usb1_phy", 54153ab4af3SHans de Goede "usb2_phy"; 54253ab4af3SHans de Goede resets = <&usb_clk 0>, 54353ab4af3SHans de Goede <&usb_clk 1>, 54453ab4af3SHans de Goede <&usb_clk 2>; 54553ab4af3SHans de Goede reset-names = "usb0_reset", 54653ab4af3SHans de Goede "usb1_reset", 54753ab4af3SHans de Goede "usb2_reset"; 54853ab4af3SHans de Goede status = "disabled"; 54953ab4af3SHans de Goede #phy-cells = <1>; 55053ab4af3SHans de Goede }; 55153ab4af3SHans de Goede 55253ab4af3SHans de Goede ehci0: usb@01c1a000 { 55353ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ehci", "generic-ehci"; 55453ab4af3SHans de Goede reg = <0x01c1a000 0x100>; 55553ab4af3SHans de Goede interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 55653ab4af3SHans de Goede clocks = <&ahb1_gates 26>; 55753ab4af3SHans de Goede resets = <&ahb1_rst 26>; 55853ab4af3SHans de Goede phys = <&usbphy 1>; 55953ab4af3SHans de Goede phy-names = "usb"; 56053ab4af3SHans de Goede status = "disabled"; 56153ab4af3SHans de Goede }; 56253ab4af3SHans de Goede 56353ab4af3SHans de Goede ohci0: usb@01c1a400 { 56453ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ohci", "generic-ohci"; 56553ab4af3SHans de Goede reg = <0x01c1a400 0x100>; 56653ab4af3SHans de Goede interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 56753ab4af3SHans de Goede clocks = <&ahb1_gates 29>, <&usb_clk 16>; 56853ab4af3SHans de Goede resets = <&ahb1_rst 29>; 56953ab4af3SHans de Goede phys = <&usbphy 1>; 57053ab4af3SHans de Goede phy-names = "usb"; 57153ab4af3SHans de Goede status = "disabled"; 57253ab4af3SHans de Goede }; 57353ab4af3SHans de Goede 57453ab4af3SHans de Goede ehci1: usb@01c1b000 { 57553ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ehci", "generic-ehci"; 57653ab4af3SHans de Goede reg = <0x01c1b000 0x100>; 57753ab4af3SHans de Goede interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 57853ab4af3SHans de Goede clocks = <&ahb1_gates 27>; 57953ab4af3SHans de Goede resets = <&ahb1_rst 27>; 58053ab4af3SHans de Goede phys = <&usbphy 2>; 58153ab4af3SHans de Goede phy-names = "usb"; 58253ab4af3SHans de Goede status = "disabled"; 58353ab4af3SHans de Goede }; 58453ab4af3SHans de Goede 58553ab4af3SHans de Goede ohci1: usb@01c1b400 { 58653ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ohci", "generic-ohci"; 58753ab4af3SHans de Goede reg = <0x01c1b400 0x100>; 58853ab4af3SHans de Goede interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 58953ab4af3SHans de Goede clocks = <&ahb1_gates 30>, <&usb_clk 17>; 59053ab4af3SHans de Goede resets = <&ahb1_rst 30>; 59153ab4af3SHans de Goede phys = <&usbphy 2>; 59253ab4af3SHans de Goede phy-names = "usb"; 59353ab4af3SHans de Goede status = "disabled"; 59453ab4af3SHans de Goede }; 59553ab4af3SHans de Goede 59653ab4af3SHans de Goede ohci2: usb@01c1c400 { 59753ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ohci", "generic-ohci"; 59853ab4af3SHans de Goede reg = <0x01c1c400 0x100>; 59953ab4af3SHans de Goede interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 60053ab4af3SHans de Goede clocks = <&ahb1_gates 31>, <&usb_clk 18>; 60153ab4af3SHans de Goede resets = <&ahb1_rst 31>; 60253ab4af3SHans de Goede status = "disabled"; 60353ab4af3SHans de Goede }; 60453ab4af3SHans de Goede 60553ab4af3SHans de Goede pio: pinctrl@01c20800 { 60653ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-pinctrl"; 60753ab4af3SHans de Goede reg = <0x01c20800 0x400>; 60853ab4af3SHans de Goede interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 60953ab4af3SHans de Goede <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 61053ab4af3SHans de Goede <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 61153ab4af3SHans de Goede <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 61253ab4af3SHans de Goede clocks = <&apb1_gates 5>; 61353ab4af3SHans de Goede gpio-controller; 61453ab4af3SHans de Goede interrupt-controller; 615da52a4a3SHans de Goede #interrupt-cells = <3>; 61653ab4af3SHans de Goede #gpio-cells = <3>; 61753ab4af3SHans de Goede 61853ab4af3SHans de Goede uart0_pins_a: uart0@0 { 61953ab4af3SHans de Goede allwinner,pins = "PH20", "PH21"; 62053ab4af3SHans de Goede allwinner,function = "uart0"; 62153ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 62253ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 62353ab4af3SHans de Goede }; 62453ab4af3SHans de Goede 62553ab4af3SHans de Goede i2c0_pins_a: i2c0@0 { 62653ab4af3SHans de Goede allwinner,pins = "PH14", "PH15"; 62753ab4af3SHans de Goede allwinner,function = "i2c0"; 62853ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 62953ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 63053ab4af3SHans de Goede }; 63153ab4af3SHans de Goede 63253ab4af3SHans de Goede i2c1_pins_a: i2c1@0 { 63353ab4af3SHans de Goede allwinner,pins = "PH16", "PH17"; 63453ab4af3SHans de Goede allwinner,function = "i2c1"; 63553ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 63653ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 63753ab4af3SHans de Goede }; 63853ab4af3SHans de Goede 63953ab4af3SHans de Goede i2c2_pins_a: i2c2@0 { 64053ab4af3SHans de Goede allwinner,pins = "PH18", "PH19"; 64153ab4af3SHans de Goede allwinner,function = "i2c2"; 64253ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 64353ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 64453ab4af3SHans de Goede }; 64553ab4af3SHans de Goede 64653ab4af3SHans de Goede mmc0_pins_a: mmc0@0 { 6478b1ba941SHans de Goede allwinner,pins = "PF0", "PF1", "PF2", 6488b1ba941SHans de Goede "PF3", "PF4", "PF5"; 64953ab4af3SHans de Goede allwinner,function = "mmc0"; 65053ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 65153ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 65253ab4af3SHans de Goede }; 65353ab4af3SHans de Goede 65453ab4af3SHans de Goede mmc1_pins_a: mmc1@0 { 65553ab4af3SHans de Goede allwinner,pins = "PG0", "PG1", "PG2", "PG3", 65653ab4af3SHans de Goede "PG4", "PG5"; 65753ab4af3SHans de Goede allwinner,function = "mmc1"; 65853ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 65953ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 66053ab4af3SHans de Goede }; 66153ab4af3SHans de Goede 662*fc01daeeSHans de Goede mmc2_pins_a: mmc2@0 { 663*fc01daeeSHans de Goede allwinner,pins = "PC6", "PC7", "PC8", "PC9", 664*fc01daeeSHans de Goede "PC10", "PC11"; 665*fc01daeeSHans de Goede allwinner,function = "mmc2"; 666*fc01daeeSHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 667*fc01daeeSHans de Goede allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 668*fc01daeeSHans de Goede }; 669*fc01daeeSHans de Goede 670*fc01daeeSHans de Goede mmc2_8bit_emmc_pins: mmc2@1 { 671*fc01daeeSHans de Goede allwinner,pins = "PC6", "PC7", "PC8", "PC9", 672*fc01daeeSHans de Goede "PC10", "PC11", "PC12", 673*fc01daeeSHans de Goede "PC13", "PC14", "PC15", 674*fc01daeeSHans de Goede "PC24"; 675*fc01daeeSHans de Goede allwinner,function = "mmc2"; 676*fc01daeeSHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 677*fc01daeeSHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 678*fc01daeeSHans de Goede }; 679*fc01daeeSHans de Goede 68053ab4af3SHans de Goede gmac_pins_mii_a: gmac_mii@0 { 68153ab4af3SHans de Goede allwinner,pins = "PA0", "PA1", "PA2", "PA3", 68253ab4af3SHans de Goede "PA8", "PA9", "PA11", 68353ab4af3SHans de Goede "PA12", "PA13", "PA14", "PA19", 68453ab4af3SHans de Goede "PA20", "PA21", "PA22", "PA23", 68553ab4af3SHans de Goede "PA24", "PA26", "PA27"; 68653ab4af3SHans de Goede allwinner,function = "gmac"; 68753ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 68853ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 68953ab4af3SHans de Goede }; 69053ab4af3SHans de Goede 69153ab4af3SHans de Goede gmac_pins_gmii_a: gmac_gmii@0 { 69253ab4af3SHans de Goede allwinner,pins = "PA0", "PA1", "PA2", "PA3", 69353ab4af3SHans de Goede "PA4", "PA5", "PA6", "PA7", 69453ab4af3SHans de Goede "PA8", "PA9", "PA10", "PA11", 69553ab4af3SHans de Goede "PA12", "PA13", "PA14", "PA15", 69653ab4af3SHans de Goede "PA16", "PA17", "PA18", "PA19", 69753ab4af3SHans de Goede "PA20", "PA21", "PA22", "PA23", 69853ab4af3SHans de Goede "PA24", "PA25", "PA26", "PA27"; 69953ab4af3SHans de Goede allwinner,function = "gmac"; 70053ab4af3SHans de Goede /* 70153ab4af3SHans de Goede * data lines in GMII mode run at 125MHz and 70253ab4af3SHans de Goede * might need a higher signal drive strength 70353ab4af3SHans de Goede */ 70453ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 70553ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 70653ab4af3SHans de Goede }; 70753ab4af3SHans de Goede 70853ab4af3SHans de Goede gmac_pins_rgmii_a: gmac_rgmii@0 { 70953ab4af3SHans de Goede allwinner,pins = "PA0", "PA1", "PA2", "PA3", 71053ab4af3SHans de Goede "PA9", "PA10", "PA11", 71153ab4af3SHans de Goede "PA12", "PA13", "PA14", "PA19", 71253ab4af3SHans de Goede "PA20", "PA25", "PA26", "PA27"; 71353ab4af3SHans de Goede allwinner,function = "gmac"; 71453ab4af3SHans de Goede /* 71553ab4af3SHans de Goede * data lines in RGMII mode use DDR mode 71653ab4af3SHans de Goede * and need a higher signal drive strength 71753ab4af3SHans de Goede */ 71853ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_40_MA>; 71953ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 72053ab4af3SHans de Goede }; 72153ab4af3SHans de Goede }; 72253ab4af3SHans de Goede 72353ab4af3SHans de Goede ahb1_rst: reset@01c202c0 { 72453ab4af3SHans de Goede #reset-cells = <1>; 72553ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ahb1-reset"; 72653ab4af3SHans de Goede reg = <0x01c202c0 0xc>; 72753ab4af3SHans de Goede }; 72853ab4af3SHans de Goede 72953ab4af3SHans de Goede apb1_rst: reset@01c202d0 { 73053ab4af3SHans de Goede #reset-cells = <1>; 73153ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-clock-reset"; 73253ab4af3SHans de Goede reg = <0x01c202d0 0x4>; 73353ab4af3SHans de Goede }; 73453ab4af3SHans de Goede 73553ab4af3SHans de Goede apb2_rst: reset@01c202d8 { 73653ab4af3SHans de Goede #reset-cells = <1>; 73753ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-clock-reset"; 73853ab4af3SHans de Goede reg = <0x01c202d8 0x4>; 73953ab4af3SHans de Goede }; 74053ab4af3SHans de Goede 74153ab4af3SHans de Goede timer@01c20c00 { 74253ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-timer"; 74353ab4af3SHans de Goede reg = <0x01c20c00 0xa0>; 74453ab4af3SHans de Goede interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 74553ab4af3SHans de Goede <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 74653ab4af3SHans de Goede <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, 74753ab4af3SHans de Goede <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>, 74853ab4af3SHans de Goede <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 74953ab4af3SHans de Goede clocks = <&osc24M>; 75053ab4af3SHans de Goede }; 75153ab4af3SHans de Goede 75253ab4af3SHans de Goede wdt1: watchdog@01c20ca0 { 75353ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-wdt"; 75453ab4af3SHans de Goede reg = <0x01c20ca0 0x20>; 75553ab4af3SHans de Goede }; 75653ab4af3SHans de Goede 75753ab4af3SHans de Goede rtp: rtp@01c25000 { 75853ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ts"; 75953ab4af3SHans de Goede reg = <0x01c25000 0x100>; 76053ab4af3SHans de Goede interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 76153ab4af3SHans de Goede #thermal-sensor-cells = <0>; 76253ab4af3SHans de Goede }; 76353ab4af3SHans de Goede 76453ab4af3SHans de Goede uart0: serial@01c28000 { 76553ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 76653ab4af3SHans de Goede reg = <0x01c28000 0x400>; 76753ab4af3SHans de Goede interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 76853ab4af3SHans de Goede reg-shift = <2>; 76953ab4af3SHans de Goede reg-io-width = <4>; 77053ab4af3SHans de Goede clocks = <&apb2_gates 16>; 77153ab4af3SHans de Goede resets = <&apb2_rst 16>; 77253ab4af3SHans de Goede dmas = <&dma 6>, <&dma 6>; 77353ab4af3SHans de Goede dma-names = "rx", "tx"; 77453ab4af3SHans de Goede status = "disabled"; 77553ab4af3SHans de Goede }; 77653ab4af3SHans de Goede 77753ab4af3SHans de Goede uart1: serial@01c28400 { 77853ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 77953ab4af3SHans de Goede reg = <0x01c28400 0x400>; 78053ab4af3SHans de Goede interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 78153ab4af3SHans de Goede reg-shift = <2>; 78253ab4af3SHans de Goede reg-io-width = <4>; 78353ab4af3SHans de Goede clocks = <&apb2_gates 17>; 78453ab4af3SHans de Goede resets = <&apb2_rst 17>; 78553ab4af3SHans de Goede dmas = <&dma 7>, <&dma 7>; 78653ab4af3SHans de Goede dma-names = "rx", "tx"; 78753ab4af3SHans de Goede status = "disabled"; 78853ab4af3SHans de Goede }; 78953ab4af3SHans de Goede 79053ab4af3SHans de Goede uart2: serial@01c28800 { 79153ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 79253ab4af3SHans de Goede reg = <0x01c28800 0x400>; 79353ab4af3SHans de Goede interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 79453ab4af3SHans de Goede reg-shift = <2>; 79553ab4af3SHans de Goede reg-io-width = <4>; 79653ab4af3SHans de Goede clocks = <&apb2_gates 18>; 79753ab4af3SHans de Goede resets = <&apb2_rst 18>; 79853ab4af3SHans de Goede dmas = <&dma 8>, <&dma 8>; 79953ab4af3SHans de Goede dma-names = "rx", "tx"; 80053ab4af3SHans de Goede status = "disabled"; 80153ab4af3SHans de Goede }; 80253ab4af3SHans de Goede 80353ab4af3SHans de Goede uart3: serial@01c28c00 { 80453ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 80553ab4af3SHans de Goede reg = <0x01c28c00 0x400>; 80653ab4af3SHans de Goede interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 80753ab4af3SHans de Goede reg-shift = <2>; 80853ab4af3SHans de Goede reg-io-width = <4>; 80953ab4af3SHans de Goede clocks = <&apb2_gates 19>; 81053ab4af3SHans de Goede resets = <&apb2_rst 19>; 81153ab4af3SHans de Goede dmas = <&dma 9>, <&dma 9>; 81253ab4af3SHans de Goede dma-names = "rx", "tx"; 81353ab4af3SHans de Goede status = "disabled"; 81453ab4af3SHans de Goede }; 81553ab4af3SHans de Goede 81653ab4af3SHans de Goede uart4: serial@01c29000 { 81753ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 81853ab4af3SHans de Goede reg = <0x01c29000 0x400>; 81953ab4af3SHans de Goede interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 82053ab4af3SHans de Goede reg-shift = <2>; 82153ab4af3SHans de Goede reg-io-width = <4>; 82253ab4af3SHans de Goede clocks = <&apb2_gates 20>; 82353ab4af3SHans de Goede resets = <&apb2_rst 20>; 82453ab4af3SHans de Goede dmas = <&dma 10>, <&dma 10>; 82553ab4af3SHans de Goede dma-names = "rx", "tx"; 82653ab4af3SHans de Goede status = "disabled"; 82753ab4af3SHans de Goede }; 82853ab4af3SHans de Goede 82953ab4af3SHans de Goede uart5: serial@01c29400 { 83053ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 83153ab4af3SHans de Goede reg = <0x01c29400 0x400>; 83253ab4af3SHans de Goede interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 83353ab4af3SHans de Goede reg-shift = <2>; 83453ab4af3SHans de Goede reg-io-width = <4>; 83553ab4af3SHans de Goede clocks = <&apb2_gates 21>; 83653ab4af3SHans de Goede resets = <&apb2_rst 21>; 83753ab4af3SHans de Goede dmas = <&dma 22>, <&dma 22>; 83853ab4af3SHans de Goede dma-names = "rx", "tx"; 83953ab4af3SHans de Goede status = "disabled"; 84053ab4af3SHans de Goede }; 84153ab4af3SHans de Goede 84253ab4af3SHans de Goede i2c0: i2c@01c2ac00 { 84353ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-i2c"; 84453ab4af3SHans de Goede reg = <0x01c2ac00 0x400>; 84553ab4af3SHans de Goede interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 84653ab4af3SHans de Goede clocks = <&apb2_gates 0>; 84753ab4af3SHans de Goede resets = <&apb2_rst 0>; 84853ab4af3SHans de Goede status = "disabled"; 84953ab4af3SHans de Goede #address-cells = <1>; 85053ab4af3SHans de Goede #size-cells = <0>; 85153ab4af3SHans de Goede }; 85253ab4af3SHans de Goede 85353ab4af3SHans de Goede i2c1: i2c@01c2b000 { 85453ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-i2c"; 85553ab4af3SHans de Goede reg = <0x01c2b000 0x400>; 85653ab4af3SHans de Goede interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 85753ab4af3SHans de Goede clocks = <&apb2_gates 1>; 85853ab4af3SHans de Goede resets = <&apb2_rst 1>; 85953ab4af3SHans de Goede status = "disabled"; 86053ab4af3SHans de Goede #address-cells = <1>; 86153ab4af3SHans de Goede #size-cells = <0>; 86253ab4af3SHans de Goede }; 86353ab4af3SHans de Goede 86453ab4af3SHans de Goede i2c2: i2c@01c2b400 { 86553ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-i2c"; 86653ab4af3SHans de Goede reg = <0x01c2b400 0x400>; 86753ab4af3SHans de Goede interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 86853ab4af3SHans de Goede clocks = <&apb2_gates 2>; 86953ab4af3SHans de Goede resets = <&apb2_rst 2>; 87053ab4af3SHans de Goede status = "disabled"; 87153ab4af3SHans de Goede #address-cells = <1>; 87253ab4af3SHans de Goede #size-cells = <0>; 87353ab4af3SHans de Goede }; 87453ab4af3SHans de Goede 87553ab4af3SHans de Goede i2c3: i2c@01c2b800 { 87653ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-i2c"; 87753ab4af3SHans de Goede reg = <0x01c2b800 0x400>; 87853ab4af3SHans de Goede interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 87953ab4af3SHans de Goede clocks = <&apb2_gates 3>; 88053ab4af3SHans de Goede resets = <&apb2_rst 3>; 88153ab4af3SHans de Goede status = "disabled"; 88253ab4af3SHans de Goede #address-cells = <1>; 88353ab4af3SHans de Goede #size-cells = <0>; 88453ab4af3SHans de Goede }; 88553ab4af3SHans de Goede 88653ab4af3SHans de Goede gmac: ethernet@01c30000 { 88753ab4af3SHans de Goede compatible = "allwinner,sun7i-a20-gmac"; 88853ab4af3SHans de Goede reg = <0x01c30000 0x1054>; 88953ab4af3SHans de Goede interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 89053ab4af3SHans de Goede interrupt-names = "macirq"; 89153ab4af3SHans de Goede clocks = <&ahb1_gates 17>, <&gmac_tx_clk>; 89253ab4af3SHans de Goede clock-names = "stmmaceth", "allwinner_gmac_tx"; 89353ab4af3SHans de Goede resets = <&ahb1_rst 17>; 89453ab4af3SHans de Goede reset-names = "stmmaceth"; 89553ab4af3SHans de Goede snps,pbl = <2>; 89653ab4af3SHans de Goede snps,fixed-burst; 89753ab4af3SHans de Goede snps,force_sf_dma_mode; 89853ab4af3SHans de Goede status = "disabled"; 89953ab4af3SHans de Goede #address-cells = <1>; 90053ab4af3SHans de Goede #size-cells = <0>; 90153ab4af3SHans de Goede }; 90253ab4af3SHans de Goede 90353ab4af3SHans de Goede timer@01c60000 { 9048b1ba941SHans de Goede compatible = "allwinner,sun6i-a31-hstimer", 9058b1ba941SHans de Goede "allwinner,sun7i-a20-hstimer"; 90653ab4af3SHans de Goede reg = <0x01c60000 0x1000>; 90753ab4af3SHans de Goede interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 90853ab4af3SHans de Goede <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 90953ab4af3SHans de Goede <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 91053ab4af3SHans de Goede <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; 91153ab4af3SHans de Goede clocks = <&ahb1_gates 19>; 91253ab4af3SHans de Goede resets = <&ahb1_rst 19>; 91353ab4af3SHans de Goede }; 91453ab4af3SHans de Goede 91553ab4af3SHans de Goede spi0: spi@01c68000 { 91653ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-spi"; 91753ab4af3SHans de Goede reg = <0x01c68000 0x1000>; 91853ab4af3SHans de Goede interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 91953ab4af3SHans de Goede clocks = <&ahb1_gates 20>, <&spi0_clk>; 92053ab4af3SHans de Goede clock-names = "ahb", "mod"; 92153ab4af3SHans de Goede dmas = <&dma 23>, <&dma 23>; 92253ab4af3SHans de Goede dma-names = "rx", "tx"; 92353ab4af3SHans de Goede resets = <&ahb1_rst 20>; 92453ab4af3SHans de Goede status = "disabled"; 92553ab4af3SHans de Goede }; 92653ab4af3SHans de Goede 92753ab4af3SHans de Goede spi1: spi@01c69000 { 92853ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-spi"; 92953ab4af3SHans de Goede reg = <0x01c69000 0x1000>; 93053ab4af3SHans de Goede interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 93153ab4af3SHans de Goede clocks = <&ahb1_gates 21>, <&spi1_clk>; 93253ab4af3SHans de Goede clock-names = "ahb", "mod"; 93353ab4af3SHans de Goede dmas = <&dma 24>, <&dma 24>; 93453ab4af3SHans de Goede dma-names = "rx", "tx"; 93553ab4af3SHans de Goede resets = <&ahb1_rst 21>; 93653ab4af3SHans de Goede status = "disabled"; 93753ab4af3SHans de Goede }; 93853ab4af3SHans de Goede 93953ab4af3SHans de Goede spi2: spi@01c6a000 { 94053ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-spi"; 94153ab4af3SHans de Goede reg = <0x01c6a000 0x1000>; 94253ab4af3SHans de Goede interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 94353ab4af3SHans de Goede clocks = <&ahb1_gates 22>, <&spi2_clk>; 94453ab4af3SHans de Goede clock-names = "ahb", "mod"; 94553ab4af3SHans de Goede dmas = <&dma 25>, <&dma 25>; 94653ab4af3SHans de Goede dma-names = "rx", "tx"; 94753ab4af3SHans de Goede resets = <&ahb1_rst 22>; 94853ab4af3SHans de Goede status = "disabled"; 94953ab4af3SHans de Goede }; 95053ab4af3SHans de Goede 95153ab4af3SHans de Goede spi3: spi@01c6b000 { 95253ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-spi"; 95353ab4af3SHans de Goede reg = <0x01c6b000 0x1000>; 95453ab4af3SHans de Goede interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 95553ab4af3SHans de Goede clocks = <&ahb1_gates 23>, <&spi3_clk>; 95653ab4af3SHans de Goede clock-names = "ahb", "mod"; 95753ab4af3SHans de Goede dmas = <&dma 26>, <&dma 26>; 95853ab4af3SHans de Goede dma-names = "rx", "tx"; 95953ab4af3SHans de Goede resets = <&ahb1_rst 23>; 96053ab4af3SHans de Goede status = "disabled"; 96153ab4af3SHans de Goede }; 96253ab4af3SHans de Goede 96353ab4af3SHans de Goede gic: interrupt-controller@01c81000 { 96453ab4af3SHans de Goede compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 96553ab4af3SHans de Goede reg = <0x01c81000 0x1000>, 96653ab4af3SHans de Goede <0x01c82000 0x1000>, 96753ab4af3SHans de Goede <0x01c84000 0x2000>, 96853ab4af3SHans de Goede <0x01c86000 0x2000>; 96953ab4af3SHans de Goede interrupt-controller; 97053ab4af3SHans de Goede #interrupt-cells = <3>; 97153ab4af3SHans de Goede interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 97253ab4af3SHans de Goede }; 97353ab4af3SHans de Goede 97453ab4af3SHans de Goede rtc: rtc@01f00000 { 97553ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-rtc"; 97653ab4af3SHans de Goede reg = <0x01f00000 0x54>; 97753ab4af3SHans de Goede interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 97853ab4af3SHans de Goede <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 97953ab4af3SHans de Goede }; 98053ab4af3SHans de Goede 98153ab4af3SHans de Goede nmi_intc: interrupt-controller@01f00c0c { 98253ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-sc-nmi"; 98353ab4af3SHans de Goede interrupt-controller; 98453ab4af3SHans de Goede #interrupt-cells = <2>; 98553ab4af3SHans de Goede reg = <0x01f00c0c 0x38>; 98653ab4af3SHans de Goede interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 98753ab4af3SHans de Goede }; 98853ab4af3SHans de Goede 98953ab4af3SHans de Goede prcm@01f01400 { 99053ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-prcm"; 99153ab4af3SHans de Goede reg = <0x01f01400 0x200>; 99253ab4af3SHans de Goede 99353ab4af3SHans de Goede ar100: ar100_clk { 99453ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-ar100-clk"; 99553ab4af3SHans de Goede #clock-cells = <0>; 9968b1ba941SHans de Goede clocks = <&osc32k>, <&osc24M>, <&pll6 0>, 9978b1ba941SHans de Goede <&pll6 0>; 99853ab4af3SHans de Goede clock-output-names = "ar100"; 99953ab4af3SHans de Goede }; 100053ab4af3SHans de Goede 100153ab4af3SHans de Goede ahb0: ahb0_clk { 100253ab4af3SHans de Goede compatible = "fixed-factor-clock"; 100353ab4af3SHans de Goede #clock-cells = <0>; 100453ab4af3SHans de Goede clock-div = <1>; 100553ab4af3SHans de Goede clock-mult = <1>; 100653ab4af3SHans de Goede clocks = <&ar100>; 100753ab4af3SHans de Goede clock-output-names = "ahb0"; 100853ab4af3SHans de Goede }; 100953ab4af3SHans de Goede 101053ab4af3SHans de Goede apb0: apb0_clk { 101153ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-apb0-clk"; 101253ab4af3SHans de Goede #clock-cells = <0>; 101353ab4af3SHans de Goede clocks = <&ahb0>; 101453ab4af3SHans de Goede clock-output-names = "apb0"; 101553ab4af3SHans de Goede }; 101653ab4af3SHans de Goede 101753ab4af3SHans de Goede apb0_gates: apb0_gates_clk { 101853ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-apb0-gates-clk"; 101953ab4af3SHans de Goede #clock-cells = <1>; 102053ab4af3SHans de Goede clocks = <&apb0>; 102153ab4af3SHans de Goede clock-output-names = "apb0_pio", "apb0_ir", 102253ab4af3SHans de Goede "apb0_timer", "apb0_p2wi", 102353ab4af3SHans de Goede "apb0_uart", "apb0_1wire", 102453ab4af3SHans de Goede "apb0_i2c"; 102553ab4af3SHans de Goede }; 102653ab4af3SHans de Goede 102753ab4af3SHans de Goede ir_clk: ir_clk { 102853ab4af3SHans de Goede #clock-cells = <0>; 102953ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 103053ab4af3SHans de Goede clocks = <&osc32k>, <&osc24M>; 103153ab4af3SHans de Goede clock-output-names = "ir"; 103253ab4af3SHans de Goede }; 103353ab4af3SHans de Goede 103453ab4af3SHans de Goede apb0_rst: apb0_rst { 103553ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-clock-reset"; 103653ab4af3SHans de Goede #reset-cells = <1>; 103753ab4af3SHans de Goede }; 103853ab4af3SHans de Goede }; 103953ab4af3SHans de Goede 104053ab4af3SHans de Goede cpucfg@01f01c00 { 104153ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-cpuconfig"; 104253ab4af3SHans de Goede reg = <0x01f01c00 0x300>; 104353ab4af3SHans de Goede }; 104453ab4af3SHans de Goede 104553ab4af3SHans de Goede ir: ir@01f02000 { 104653ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-ir"; 104753ab4af3SHans de Goede clocks = <&apb0_gates 1>, <&ir_clk>; 104853ab4af3SHans de Goede clock-names = "apb", "ir"; 104953ab4af3SHans de Goede resets = <&apb0_rst 1>; 105053ab4af3SHans de Goede interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 105153ab4af3SHans de Goede reg = <0x01f02000 0x40>; 105253ab4af3SHans de Goede status = "disabled"; 105353ab4af3SHans de Goede }; 105453ab4af3SHans de Goede 105553ab4af3SHans de Goede r_pio: pinctrl@01f02c00 { 105653ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-r-pinctrl"; 105753ab4af3SHans de Goede reg = <0x01f02c00 0x400>; 105853ab4af3SHans de Goede interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 105953ab4af3SHans de Goede <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 106053ab4af3SHans de Goede clocks = <&apb0_gates 0>; 106153ab4af3SHans de Goede resets = <&apb0_rst 0>; 106253ab4af3SHans de Goede gpio-controller; 106353ab4af3SHans de Goede interrupt-controller; 106453ab4af3SHans de Goede #interrupt-cells = <2>; 106553ab4af3SHans de Goede #size-cells = <0>; 106653ab4af3SHans de Goede #gpio-cells = <3>; 106753ab4af3SHans de Goede 106853ab4af3SHans de Goede ir_pins_a: ir@0 { 106953ab4af3SHans de Goede allwinner,pins = "PL4"; 107053ab4af3SHans de Goede allwinner,function = "s_ir"; 107153ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 107253ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 107353ab4af3SHans de Goede }; 107453ab4af3SHans de Goede 107553ab4af3SHans de Goede p2wi_pins: p2wi { 107653ab4af3SHans de Goede allwinner,pins = "PL0", "PL1"; 107753ab4af3SHans de Goede allwinner,function = "s_p2wi"; 107853ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 107953ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 108053ab4af3SHans de Goede }; 108153ab4af3SHans de Goede }; 108253ab4af3SHans de Goede 108353ab4af3SHans de Goede p2wi: i2c@01f03400 { 108453ab4af3SHans de Goede compatible = "allwinner,sun6i-a31-p2wi"; 108553ab4af3SHans de Goede reg = <0x01f03400 0x400>; 108653ab4af3SHans de Goede interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 108753ab4af3SHans de Goede clocks = <&apb0_gates 3>; 108853ab4af3SHans de Goede clock-frequency = <100000>; 108953ab4af3SHans de Goede resets = <&apb0_rst 3>; 109053ab4af3SHans de Goede pinctrl-names = "default"; 109153ab4af3SHans de Goede pinctrl-0 = <&p2wi_pins>; 109253ab4af3SHans de Goede status = "disabled"; 109353ab4af3SHans de Goede #address-cells = <1>; 109453ab4af3SHans de Goede #size-cells = <0>; 109553ab4af3SHans de Goede }; 109653ab4af3SHans de Goede }; 109753ab4af3SHans de Goede}; 1098