153ab4af3SHans de Goede/* 253ab4af3SHans de Goede * Copyright 2012-2015 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 library 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 library 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 4780e5f83cSHans de Goede#include <dt-bindings/clock/sun4i-a10-pll2.h> 4853ab4af3SHans de Goede#include <dt-bindings/dma/sun4i-a10.h> 4953ab4af3SHans de Goede#include <dt-bindings/pinctrl/sun4i-a10.h> 5053ab4af3SHans de Goede 5153ab4af3SHans de Goede/ { 5253ab4af3SHans de Goede interrupt-parent = <&intc>; 5353ab4af3SHans de Goede 5453ab4af3SHans de Goede cpus { 5553ab4af3SHans de Goede #address-cells = <1>; 5653ab4af3SHans de Goede #size-cells = <0>; 5753ab4af3SHans de Goede 5853ab4af3SHans de Goede cpu0: cpu@0 { 5953ab4af3SHans de Goede device_type = "cpu"; 6053ab4af3SHans de Goede compatible = "arm,cortex-a8"; 6153ab4af3SHans de Goede reg = <0x0>; 6253ab4af3SHans de Goede clocks = <&cpu>; 6353ab4af3SHans de Goede }; 6453ab4af3SHans de Goede }; 6553ab4af3SHans de Goede 6653ab4af3SHans de Goede clocks { 6753ab4af3SHans de Goede #address-cells = <1>; 6853ab4af3SHans de Goede #size-cells = <1>; 6953ab4af3SHans de Goede ranges; 7053ab4af3SHans de Goede 7153ab4af3SHans de Goede /* 7253ab4af3SHans de Goede * This is a dummy clock, to be used as placeholder on 7353ab4af3SHans de Goede * other mux clocks when a specific parent clock is not 7453ab4af3SHans de Goede * yet implemented. It should be dropped when the driver 7553ab4af3SHans de Goede * is complete. 7653ab4af3SHans de Goede */ 7753ab4af3SHans de Goede dummy: dummy { 7853ab4af3SHans de Goede #clock-cells = <0>; 7953ab4af3SHans de Goede compatible = "fixed-clock"; 8053ab4af3SHans de Goede clock-frequency = <0>; 8153ab4af3SHans de Goede }; 8253ab4af3SHans de Goede 8353ab4af3SHans de Goede osc24M: clk@01c20050 { 8453ab4af3SHans de Goede #clock-cells = <0>; 8553ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-osc-clk"; 8653ab4af3SHans de Goede reg = <0x01c20050 0x4>; 8753ab4af3SHans de Goede clock-frequency = <24000000>; 8853ab4af3SHans de Goede clock-output-names = "osc24M"; 8953ab4af3SHans de Goede }; 9053ab4af3SHans de Goede 91*860fbdd4SHans de Goede osc3M: osc3M_clk { 92*860fbdd4SHans de Goede compatible = "fixed-factor-clock"; 93*860fbdd4SHans de Goede #clock-cells = <0>; 94*860fbdd4SHans de Goede clock-div = <8>; 95*860fbdd4SHans de Goede clock-mult = <1>; 96*860fbdd4SHans de Goede clocks = <&osc24M>; 97*860fbdd4SHans de Goede clock-output-names = "osc3M"; 98*860fbdd4SHans de Goede }; 99*860fbdd4SHans de Goede 10053ab4af3SHans de Goede osc32k: clk@0 { 10153ab4af3SHans de Goede #clock-cells = <0>; 10253ab4af3SHans de Goede compatible = "fixed-clock"; 10353ab4af3SHans de Goede clock-frequency = <32768>; 10453ab4af3SHans de Goede clock-output-names = "osc32k"; 10553ab4af3SHans de Goede }; 10653ab4af3SHans de Goede 10753ab4af3SHans de Goede pll1: clk@01c20000 { 10853ab4af3SHans de Goede #clock-cells = <0>; 10953ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-pll1-clk"; 11053ab4af3SHans de Goede reg = <0x01c20000 0x4>; 11153ab4af3SHans de Goede clocks = <&osc24M>; 11253ab4af3SHans de Goede clock-output-names = "pll1"; 11353ab4af3SHans de Goede }; 11453ab4af3SHans de Goede 11580e5f83cSHans de Goede pll2: clk@01c20008 { 11680e5f83cSHans de Goede #clock-cells = <1>; 11780e5f83cSHans de Goede compatible = "allwinner,sun5i-a13-pll2-clk"; 11880e5f83cSHans de Goede reg = <0x01c20008 0x8>; 11980e5f83cSHans de Goede clocks = <&osc24M>; 12080e5f83cSHans de Goede clock-output-names = "pll2-1x", "pll2-2x", 12180e5f83cSHans de Goede "pll2-4x", "pll2-8x"; 12280e5f83cSHans de Goede }; 12380e5f83cSHans de Goede 124*860fbdd4SHans de Goede pll3: clk@01c20010 { 125*860fbdd4SHans de Goede #clock-cells = <0>; 126*860fbdd4SHans de Goede compatible = "allwinner,sun4i-a10-pll3-clk"; 127*860fbdd4SHans de Goede reg = <0x01c20010 0x4>; 128*860fbdd4SHans de Goede clocks = <&osc3M>; 129*860fbdd4SHans de Goede clock-output-names = "pll3"; 130*860fbdd4SHans de Goede }; 131*860fbdd4SHans de Goede 132*860fbdd4SHans de Goede pll3x2: pll3x2_clk { 133*860fbdd4SHans de Goede compatible = "allwinner,sun4i-a10-pll3-2x-clk", "fixed-factor-clock"; 134*860fbdd4SHans de Goede #clock-cells = <0>; 135*860fbdd4SHans de Goede clock-div = <1>; 136*860fbdd4SHans de Goede clock-mult = <2>; 137*860fbdd4SHans de Goede clocks = <&pll3>; 138*860fbdd4SHans de Goede clock-output-names = "pll3-2x"; 139*860fbdd4SHans de Goede }; 140*860fbdd4SHans de Goede 14153ab4af3SHans de Goede pll4: clk@01c20018 { 14253ab4af3SHans de Goede #clock-cells = <0>; 14353ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-pll1-clk"; 14453ab4af3SHans de Goede reg = <0x01c20018 0x4>; 14553ab4af3SHans de Goede clocks = <&osc24M>; 14653ab4af3SHans de Goede clock-output-names = "pll4"; 14753ab4af3SHans de Goede }; 14853ab4af3SHans de Goede 14953ab4af3SHans de Goede pll5: clk@01c20020 { 15053ab4af3SHans de Goede #clock-cells = <1>; 15153ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-pll5-clk"; 15253ab4af3SHans de Goede reg = <0x01c20020 0x4>; 15353ab4af3SHans de Goede clocks = <&osc24M>; 15453ab4af3SHans de Goede clock-output-names = "pll5_ddr", "pll5_other"; 15553ab4af3SHans de Goede }; 15653ab4af3SHans de Goede 15753ab4af3SHans de Goede pll6: clk@01c20028 { 15853ab4af3SHans de Goede #clock-cells = <1>; 15953ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-pll6-clk"; 16053ab4af3SHans de Goede reg = <0x01c20028 0x4>; 16153ab4af3SHans de Goede clocks = <&osc24M>; 16253ab4af3SHans de Goede clock-output-names = "pll6_sata", "pll6_other", "pll6"; 16353ab4af3SHans de Goede }; 16453ab4af3SHans de Goede 165*860fbdd4SHans de Goede pll7: clk@01c20030 { 166*860fbdd4SHans de Goede #clock-cells = <0>; 167*860fbdd4SHans de Goede compatible = "allwinner,sun4i-a10-pll3-clk"; 168*860fbdd4SHans de Goede reg = <0x01c20030 0x4>; 169*860fbdd4SHans de Goede clocks = <&osc3M>; 170*860fbdd4SHans de Goede clock-output-names = "pll7"; 171*860fbdd4SHans de Goede }; 172*860fbdd4SHans de Goede 173*860fbdd4SHans de Goede pll7x2: pll7x2_clk { 174*860fbdd4SHans de Goede compatible = "fixed-factor-clock"; 175*860fbdd4SHans de Goede #clock-cells = <0>; 176*860fbdd4SHans de Goede clock-div = <1>; 177*860fbdd4SHans de Goede clock-mult = <2>; 178*860fbdd4SHans de Goede clocks = <&pll7>; 179*860fbdd4SHans de Goede clock-output-names = "pll7-2x"; 180*860fbdd4SHans de Goede }; 181*860fbdd4SHans de Goede 18253ab4af3SHans de Goede /* dummy is 200M */ 18353ab4af3SHans de Goede cpu: cpu@01c20054 { 18453ab4af3SHans de Goede #clock-cells = <0>; 18553ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-cpu-clk"; 18653ab4af3SHans de Goede reg = <0x01c20054 0x4>; 18753ab4af3SHans de Goede clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>; 18853ab4af3SHans de Goede clock-output-names = "cpu"; 18953ab4af3SHans de Goede }; 19053ab4af3SHans de Goede 19153ab4af3SHans de Goede axi: axi@01c20054 { 19253ab4af3SHans de Goede #clock-cells = <0>; 19353ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-axi-clk"; 19453ab4af3SHans de Goede reg = <0x01c20054 0x4>; 19553ab4af3SHans de Goede clocks = <&cpu>; 19653ab4af3SHans de Goede clock-output-names = "axi"; 19753ab4af3SHans de Goede }; 19853ab4af3SHans de Goede 19953ab4af3SHans de Goede ahb: ahb@01c20054 { 20053ab4af3SHans de Goede #clock-cells = <0>; 2018b1ba941SHans de Goede compatible = "allwinner,sun5i-a13-ahb-clk"; 20253ab4af3SHans de Goede reg = <0x01c20054 0x4>; 2038b1ba941SHans de Goede clocks = <&axi>, <&cpu>, <&pll6 1>; 20453ab4af3SHans de Goede clock-output-names = "ahb"; 2058b1ba941SHans de Goede /* 2068b1ba941SHans de Goede * Use PLL6 as parent, instead of CPU/AXI 2078b1ba941SHans de Goede * which has rate changes due to cpufreq 2088b1ba941SHans de Goede */ 2098b1ba941SHans de Goede assigned-clocks = <&ahb>; 2108b1ba941SHans de Goede assigned-clock-parents = <&pll6 1>; 21153ab4af3SHans de Goede }; 21253ab4af3SHans de Goede 21353ab4af3SHans de Goede apb0: apb0@01c20054 { 21453ab4af3SHans de Goede #clock-cells = <0>; 21553ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-apb0-clk"; 21653ab4af3SHans de Goede reg = <0x01c20054 0x4>; 21753ab4af3SHans de Goede clocks = <&ahb>; 21853ab4af3SHans de Goede clock-output-names = "apb0"; 21953ab4af3SHans de Goede }; 22053ab4af3SHans de Goede 22153ab4af3SHans de Goede apb1: clk@01c20058 { 22253ab4af3SHans de Goede #clock-cells = <0>; 22353ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-apb1-clk"; 22453ab4af3SHans de Goede reg = <0x01c20058 0x4>; 22553ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 1>, <&osc32k>; 22653ab4af3SHans de Goede clock-output-names = "apb1"; 22753ab4af3SHans de Goede }; 22853ab4af3SHans de Goede 22953ab4af3SHans de Goede axi_gates: clk@01c2005c { 23053ab4af3SHans de Goede #clock-cells = <1>; 23153ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-axi-gates-clk"; 23253ab4af3SHans de Goede reg = <0x01c2005c 0x4>; 23353ab4af3SHans de Goede clocks = <&axi>; 234f0e8e8daSMaxime Ripard clock-indices = <0>; 23553ab4af3SHans de Goede clock-output-names = "axi_dram"; 23653ab4af3SHans de Goede }; 23753ab4af3SHans de Goede 23853ab4af3SHans de Goede nand_clk: clk@01c20080 { 23953ab4af3SHans de Goede #clock-cells = <0>; 24053ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 24153ab4af3SHans de Goede reg = <0x01c20080 0x4>; 24253ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; 24353ab4af3SHans de Goede clock-output-names = "nand"; 24453ab4af3SHans de Goede }; 24553ab4af3SHans de Goede 24653ab4af3SHans de Goede ms_clk: clk@01c20084 { 24753ab4af3SHans de Goede #clock-cells = <0>; 24853ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 24953ab4af3SHans de Goede reg = <0x01c20084 0x4>; 25053ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; 25153ab4af3SHans de Goede clock-output-names = "ms"; 25253ab4af3SHans de Goede }; 25353ab4af3SHans de Goede 25453ab4af3SHans de Goede mmc0_clk: clk@01c20088 { 25553ab4af3SHans de Goede #clock-cells = <1>; 25653ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mmc-clk"; 25753ab4af3SHans de Goede reg = <0x01c20088 0x4>; 25853ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; 25953ab4af3SHans de Goede clock-output-names = "mmc0", 26053ab4af3SHans de Goede "mmc0_output", 26153ab4af3SHans de Goede "mmc0_sample"; 26253ab4af3SHans de Goede }; 26353ab4af3SHans de Goede 26453ab4af3SHans de Goede mmc1_clk: clk@01c2008c { 26553ab4af3SHans de Goede #clock-cells = <1>; 26653ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mmc-clk"; 26753ab4af3SHans de Goede reg = <0x01c2008c 0x4>; 26853ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; 26953ab4af3SHans de Goede clock-output-names = "mmc1", 27053ab4af3SHans de Goede "mmc1_output", 27153ab4af3SHans de Goede "mmc1_sample"; 27253ab4af3SHans de Goede }; 27353ab4af3SHans de Goede 27453ab4af3SHans de Goede mmc2_clk: clk@01c20090 { 27553ab4af3SHans de Goede #clock-cells = <1>; 27653ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mmc-clk"; 27753ab4af3SHans de Goede reg = <0x01c20090 0x4>; 27853ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; 27953ab4af3SHans de Goede clock-output-names = "mmc2", 28053ab4af3SHans de Goede "mmc2_output", 28153ab4af3SHans de Goede "mmc2_sample"; 28253ab4af3SHans de Goede }; 28353ab4af3SHans de Goede 28453ab4af3SHans de Goede ts_clk: clk@01c20098 { 28553ab4af3SHans de Goede #clock-cells = <0>; 28653ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 28753ab4af3SHans de Goede reg = <0x01c20098 0x4>; 28853ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; 28953ab4af3SHans de Goede clock-output-names = "ts"; 29053ab4af3SHans de Goede }; 29153ab4af3SHans de Goede 29253ab4af3SHans de Goede ss_clk: clk@01c2009c { 29353ab4af3SHans de Goede #clock-cells = <0>; 29453ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 29553ab4af3SHans de Goede reg = <0x01c2009c 0x4>; 29653ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; 29753ab4af3SHans de Goede clock-output-names = "ss"; 29853ab4af3SHans de Goede }; 29953ab4af3SHans de Goede 30053ab4af3SHans de Goede spi0_clk: clk@01c200a0 { 30153ab4af3SHans de Goede #clock-cells = <0>; 30253ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 30353ab4af3SHans de Goede reg = <0x01c200a0 0x4>; 30453ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; 30553ab4af3SHans de Goede clock-output-names = "spi0"; 30653ab4af3SHans de Goede }; 30753ab4af3SHans de Goede 30853ab4af3SHans de Goede spi1_clk: clk@01c200a4 { 30953ab4af3SHans de Goede #clock-cells = <0>; 31053ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 31153ab4af3SHans de Goede reg = <0x01c200a4 0x4>; 31253ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; 31353ab4af3SHans de Goede clock-output-names = "spi1"; 31453ab4af3SHans de Goede }; 31553ab4af3SHans de Goede 31653ab4af3SHans de Goede spi2_clk: clk@01c200a8 { 31753ab4af3SHans de Goede #clock-cells = <0>; 31853ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 31953ab4af3SHans de Goede reg = <0x01c200a8 0x4>; 32053ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; 32153ab4af3SHans de Goede clock-output-names = "spi2"; 32253ab4af3SHans de Goede }; 32353ab4af3SHans de Goede 32453ab4af3SHans de Goede ir0_clk: clk@01c200b0 { 32553ab4af3SHans de Goede #clock-cells = <0>; 32653ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 32753ab4af3SHans de Goede reg = <0x01c200b0 0x4>; 32853ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; 32953ab4af3SHans de Goede clock-output-names = "ir0"; 33053ab4af3SHans de Goede }; 33153ab4af3SHans de Goede 33253ab4af3SHans de Goede usb_clk: clk@01c200cc { 33353ab4af3SHans de Goede #clock-cells = <1>; 33453ab4af3SHans de Goede #reset-cells = <1>; 33553ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-usb-clk"; 33653ab4af3SHans de Goede reg = <0x01c200cc 0x4>; 33753ab4af3SHans de Goede clocks = <&pll6 1>; 33853ab4af3SHans de Goede clock-output-names = "usb_ohci0", "usb_phy"; 33953ab4af3SHans de Goede }; 34053ab4af3SHans de Goede 34180e5f83cSHans de Goede codec_clk: clk@01c20140 { 34280e5f83cSHans de Goede #clock-cells = <0>; 34380e5f83cSHans de Goede compatible = "allwinner,sun4i-a10-codec-clk"; 34480e5f83cSHans de Goede reg = <0x01c20140 0x4>; 34580e5f83cSHans de Goede clocks = <&pll2 SUN4I_A10_PLL2_1X>; 34680e5f83cSHans de Goede clock-output-names = "codec"; 34780e5f83cSHans de Goede }; 34880e5f83cSHans de Goede 34953ab4af3SHans de Goede mbus_clk: clk@01c2015c { 35053ab4af3SHans de Goede #clock-cells = <0>; 35153ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-mbus-clk"; 35253ab4af3SHans de Goede reg = <0x01c2015c 0x4>; 35353ab4af3SHans de Goede clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; 35453ab4af3SHans de Goede clock-output-names = "mbus"; 35553ab4af3SHans de Goede }; 35653ab4af3SHans de Goede }; 35753ab4af3SHans de Goede 35853ab4af3SHans de Goede soc@01c00000 { 35953ab4af3SHans de Goede compatible = "simple-bus"; 36053ab4af3SHans de Goede #address-cells = <1>; 36153ab4af3SHans de Goede #size-cells = <1>; 36253ab4af3SHans de Goede ranges; 36353ab4af3SHans de Goede 36453ab4af3SHans de Goede sram-controller@01c00000 { 36553ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-sram-controller"; 36653ab4af3SHans de Goede reg = <0x01c00000 0x30>; 3678b1ba941SHans de Goede #address-cells = <1>; 3688b1ba941SHans de Goede #size-cells = <1>; 3698b1ba941SHans de Goede ranges; 3708b1ba941SHans de Goede 3718b1ba941SHans de Goede sram_a: sram@00000000 { 3728b1ba941SHans de Goede compatible = "mmio-sram"; 3738b1ba941SHans de Goede reg = <0x00000000 0xc000>; 3748b1ba941SHans de Goede #address-cells = <1>; 3758b1ba941SHans de Goede #size-cells = <1>; 3768b1ba941SHans de Goede ranges = <0 0x00000000 0xc000>; 3778b1ba941SHans de Goede }; 3788b1ba941SHans de Goede 3798b1ba941SHans de Goede sram_d: sram@00010000 { 3808b1ba941SHans de Goede compatible = "mmio-sram"; 3818b1ba941SHans de Goede reg = <0x00010000 0x1000>; 3828b1ba941SHans de Goede #address-cells = <1>; 3838b1ba941SHans de Goede #size-cells = <1>; 3848b1ba941SHans de Goede ranges = <0 0x00010000 0x1000>; 3858b1ba941SHans de Goede 3868b1ba941SHans de Goede otg_sram: sram-section@0000 { 3878b1ba941SHans de Goede compatible = "allwinner,sun4i-a10-sram-d"; 3888b1ba941SHans de Goede reg = <0x0000 0x1000>; 3898b1ba941SHans de Goede status = "disabled"; 3908b1ba941SHans de Goede }; 3918b1ba941SHans de Goede }; 39253ab4af3SHans de Goede }; 39353ab4af3SHans de Goede 39453ab4af3SHans de Goede dma: dma-controller@01c02000 { 39553ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-dma"; 39653ab4af3SHans de Goede reg = <0x01c02000 0x1000>; 39753ab4af3SHans de Goede interrupts = <27>; 39853ab4af3SHans de Goede clocks = <&ahb_gates 6>; 39953ab4af3SHans de Goede #dma-cells = <2>; 40053ab4af3SHans de Goede }; 40153ab4af3SHans de Goede 40253ab4af3SHans de Goede spi0: spi@01c05000 { 40353ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-spi"; 40453ab4af3SHans de Goede reg = <0x01c05000 0x1000>; 40553ab4af3SHans de Goede interrupts = <10>; 40653ab4af3SHans de Goede clocks = <&ahb_gates 20>, <&spi0_clk>; 40753ab4af3SHans de Goede clock-names = "ahb", "mod"; 40853ab4af3SHans de Goede dmas = <&dma SUN4I_DMA_DEDICATED 27>, 40953ab4af3SHans de Goede <&dma SUN4I_DMA_DEDICATED 26>; 41053ab4af3SHans de Goede dma-names = "rx", "tx"; 41153ab4af3SHans de Goede status = "disabled"; 41253ab4af3SHans de Goede #address-cells = <1>; 41353ab4af3SHans de Goede #size-cells = <0>; 41453ab4af3SHans de Goede }; 41553ab4af3SHans de Goede 41653ab4af3SHans de Goede spi1: spi@01c06000 { 41753ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-spi"; 41853ab4af3SHans de Goede reg = <0x01c06000 0x1000>; 41953ab4af3SHans de Goede interrupts = <11>; 42053ab4af3SHans de Goede clocks = <&ahb_gates 21>, <&spi1_clk>; 42153ab4af3SHans de Goede clock-names = "ahb", "mod"; 42253ab4af3SHans de Goede dmas = <&dma SUN4I_DMA_DEDICATED 9>, 42353ab4af3SHans de Goede <&dma SUN4I_DMA_DEDICATED 8>; 42453ab4af3SHans de Goede dma-names = "rx", "tx"; 42553ab4af3SHans de Goede status = "disabled"; 42653ab4af3SHans de Goede #address-cells = <1>; 42753ab4af3SHans de Goede #size-cells = <0>; 42853ab4af3SHans de Goede }; 42953ab4af3SHans de Goede 43053ab4af3SHans de Goede mmc0: mmc@01c0f000 { 43153ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-mmc"; 43253ab4af3SHans de Goede reg = <0x01c0f000 0x1000>; 43353ab4af3SHans de Goede clocks = <&ahb_gates 8>, 43453ab4af3SHans de Goede <&mmc0_clk 0>, 43553ab4af3SHans de Goede <&mmc0_clk 1>, 43653ab4af3SHans de Goede <&mmc0_clk 2>; 43753ab4af3SHans de Goede clock-names = "ahb", 43853ab4af3SHans de Goede "mmc", 43953ab4af3SHans de Goede "output", 44053ab4af3SHans de Goede "sample"; 44153ab4af3SHans de Goede interrupts = <32>; 44253ab4af3SHans de Goede status = "disabled"; 44353ab4af3SHans de Goede #address-cells = <1>; 44453ab4af3SHans de Goede #size-cells = <0>; 44553ab4af3SHans de Goede }; 44653ab4af3SHans de Goede 44753ab4af3SHans de Goede mmc1: mmc@01c10000 { 44853ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-mmc"; 44953ab4af3SHans de Goede reg = <0x01c10000 0x1000>; 45053ab4af3SHans de Goede clocks = <&ahb_gates 9>, 45153ab4af3SHans de Goede <&mmc1_clk 0>, 45253ab4af3SHans de Goede <&mmc1_clk 1>, 45353ab4af3SHans de Goede <&mmc1_clk 2>; 45453ab4af3SHans de Goede clock-names = "ahb", 45553ab4af3SHans de Goede "mmc", 45653ab4af3SHans de Goede "output", 45753ab4af3SHans de Goede "sample"; 45853ab4af3SHans de Goede interrupts = <33>; 45953ab4af3SHans de Goede status = "disabled"; 46053ab4af3SHans de Goede #address-cells = <1>; 46153ab4af3SHans de Goede #size-cells = <0>; 46253ab4af3SHans de Goede }; 46353ab4af3SHans de Goede 46453ab4af3SHans de Goede mmc2: mmc@01c11000 { 46553ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-mmc"; 46653ab4af3SHans de Goede reg = <0x01c11000 0x1000>; 46753ab4af3SHans de Goede clocks = <&ahb_gates 10>, 46853ab4af3SHans de Goede <&mmc2_clk 0>, 46953ab4af3SHans de Goede <&mmc2_clk 1>, 47053ab4af3SHans de Goede <&mmc2_clk 2>; 47153ab4af3SHans de Goede clock-names = "ahb", 47253ab4af3SHans de Goede "mmc", 47353ab4af3SHans de Goede "output", 47453ab4af3SHans de Goede "sample"; 47553ab4af3SHans de Goede interrupts = <34>; 47653ab4af3SHans de Goede status = "disabled"; 47753ab4af3SHans de Goede #address-cells = <1>; 47853ab4af3SHans de Goede #size-cells = <0>; 47953ab4af3SHans de Goede }; 48053ab4af3SHans de Goede 481da52a4a3SHans de Goede usb_otg: usb@01c13000 { 482da52a4a3SHans de Goede compatible = "allwinner,sun4i-a10-musb"; 483da52a4a3SHans de Goede reg = <0x01c13000 0x0400>; 484da52a4a3SHans de Goede clocks = <&ahb_gates 0>; 485da52a4a3SHans de Goede interrupts = <38>; 486da52a4a3SHans de Goede interrupt-names = "mc"; 487da52a4a3SHans de Goede phys = <&usbphy 0>; 488da52a4a3SHans de Goede phy-names = "usb"; 489da52a4a3SHans de Goede extcon = <&usbphy 0>; 490da52a4a3SHans de Goede allwinner,sram = <&otg_sram 1>; 491da52a4a3SHans de Goede status = "disabled"; 492da52a4a3SHans de Goede }; 493da52a4a3SHans de Goede 49453ab4af3SHans de Goede usbphy: phy@01c13400 { 49553ab4af3SHans de Goede #phy-cells = <1>; 49653ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-usb-phy"; 49753ab4af3SHans de Goede reg = <0x01c13400 0x10 0x01c14800 0x4>; 49853ab4af3SHans de Goede reg-names = "phy_ctrl", "pmu1"; 49953ab4af3SHans de Goede clocks = <&usb_clk 8>; 50053ab4af3SHans de Goede clock-names = "usb_phy"; 50153ab4af3SHans de Goede resets = <&usb_clk 0>, <&usb_clk 1>; 50253ab4af3SHans de Goede reset-names = "usb0_reset", "usb1_reset"; 50353ab4af3SHans de Goede status = "disabled"; 50453ab4af3SHans de Goede }; 50553ab4af3SHans de Goede 50653ab4af3SHans de Goede ehci0: usb@01c14000 { 50753ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-ehci", "generic-ehci"; 50853ab4af3SHans de Goede reg = <0x01c14000 0x100>; 50953ab4af3SHans de Goede interrupts = <39>; 51053ab4af3SHans de Goede clocks = <&ahb_gates 1>; 51153ab4af3SHans de Goede phys = <&usbphy 1>; 51253ab4af3SHans de Goede phy-names = "usb"; 51353ab4af3SHans de Goede status = "disabled"; 51453ab4af3SHans de Goede }; 51553ab4af3SHans de Goede 51653ab4af3SHans de Goede ohci0: usb@01c14400 { 51753ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-ohci", "generic-ohci"; 51853ab4af3SHans de Goede reg = <0x01c14400 0x100>; 51953ab4af3SHans de Goede interrupts = <40>; 52053ab4af3SHans de Goede clocks = <&usb_clk 6>, <&ahb_gates 2>; 52153ab4af3SHans de Goede phys = <&usbphy 1>; 52253ab4af3SHans de Goede phy-names = "usb"; 52353ab4af3SHans de Goede status = "disabled"; 52453ab4af3SHans de Goede }; 52553ab4af3SHans de Goede 52653ab4af3SHans de Goede spi2: spi@01c17000 { 52753ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-spi"; 52853ab4af3SHans de Goede reg = <0x01c17000 0x1000>; 52953ab4af3SHans de Goede interrupts = <12>; 53053ab4af3SHans de Goede clocks = <&ahb_gates 22>, <&spi2_clk>; 53153ab4af3SHans de Goede clock-names = "ahb", "mod"; 53253ab4af3SHans de Goede dmas = <&dma SUN4I_DMA_DEDICATED 29>, 53353ab4af3SHans de Goede <&dma SUN4I_DMA_DEDICATED 28>; 53453ab4af3SHans de Goede dma-names = "rx", "tx"; 53553ab4af3SHans de Goede status = "disabled"; 53653ab4af3SHans de Goede #address-cells = <1>; 53753ab4af3SHans de Goede #size-cells = <0>; 53853ab4af3SHans de Goede }; 53953ab4af3SHans de Goede 54053ab4af3SHans de Goede intc: interrupt-controller@01c20400 { 54153ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-ic"; 54253ab4af3SHans de Goede reg = <0x01c20400 0x400>; 54353ab4af3SHans de Goede interrupt-controller; 54453ab4af3SHans de Goede #interrupt-cells = <1>; 54553ab4af3SHans de Goede }; 54653ab4af3SHans de Goede 54753ab4af3SHans de Goede pio: pinctrl@01c20800 { 54853ab4af3SHans de Goede reg = <0x01c20800 0x400>; 54953ab4af3SHans de Goede interrupts = <28>; 55053ab4af3SHans de Goede clocks = <&apb0_gates 5>; 55153ab4af3SHans de Goede gpio-controller; 55253ab4af3SHans de Goede interrupt-controller; 553da52a4a3SHans de Goede #interrupt-cells = <3>; 55453ab4af3SHans de Goede #gpio-cells = <3>; 55553ab4af3SHans de Goede 55653ab4af3SHans de Goede i2c0_pins_a: i2c0@0 { 55753ab4af3SHans de Goede allwinner,pins = "PB0", "PB1"; 55853ab4af3SHans de Goede allwinner,function = "i2c0"; 55953ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 56053ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 56153ab4af3SHans de Goede }; 56253ab4af3SHans de Goede 56353ab4af3SHans de Goede i2c1_pins_a: i2c1@0 { 56453ab4af3SHans de Goede allwinner,pins = "PB15", "PB16"; 56553ab4af3SHans de Goede allwinner,function = "i2c1"; 56653ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 56753ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 56853ab4af3SHans de Goede }; 56953ab4af3SHans de Goede 57053ab4af3SHans de Goede i2c2_pins_a: i2c2@0 { 57153ab4af3SHans de Goede allwinner,pins = "PB17", "PB18"; 57253ab4af3SHans de Goede allwinner,function = "i2c2"; 57353ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 57453ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 57553ab4af3SHans de Goede }; 57653ab4af3SHans de Goede 57753ab4af3SHans de Goede mmc0_pins_a: mmc0@0 { 5788b1ba941SHans de Goede allwinner,pins = "PF0", "PF1", "PF2", "PF3", 5798b1ba941SHans de Goede "PF4", "PF5"; 58053ab4af3SHans de Goede allwinner,function = "mmc0"; 58153ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 58253ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 58353ab4af3SHans de Goede }; 58453ab4af3SHans de Goede 58553ab4af3SHans de Goede mmc2_pins_a: mmc2@0 { 58653ab4af3SHans de Goede allwinner,pins = "PC6", "PC7", "PC8", "PC9", 58753ab4af3SHans de Goede "PC10", "PC11", "PC12", "PC13", 58853ab4af3SHans de Goede "PC14", "PC15"; 58953ab4af3SHans de Goede allwinner,function = "mmc2"; 59053ab4af3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 59153ab4af3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 59253ab4af3SHans de Goede }; 593f0e8e8daSMaxime Ripard 594f0e8e8daSMaxime Ripard uart3_pins_a: uart3@0 { 595f0e8e8daSMaxime Ripard allwinner,pins = "PG9", "PG10"; 596f0e8e8daSMaxime Ripard allwinner,function = "uart3"; 597f0e8e8daSMaxime Ripard allwinner,drive = <SUN4I_PINCTRL_10_MA>; 598f0e8e8daSMaxime Ripard allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 599f0e8e8daSMaxime Ripard }; 600f0e8e8daSMaxime Ripard 601f0e8e8daSMaxime Ripard uart3_pins_cts_rts_a: uart3-cts-rts@0 { 602f0e8e8daSMaxime Ripard allwinner,pins = "PG11", "PG12"; 603f0e8e8daSMaxime Ripard allwinner,function = "uart3"; 604f0e8e8daSMaxime Ripard allwinner,drive = <SUN4I_PINCTRL_10_MA>; 605f0e8e8daSMaxime Ripard allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 606f0e8e8daSMaxime Ripard }; 607f0e8e8daSMaxime Ripard 608f0e8e8daSMaxime Ripard pwm0_pins: pwm0 { 609f0e8e8daSMaxime Ripard allwinner,pins = "PB2"; 610f0e8e8daSMaxime Ripard allwinner,function = "pwm"; 611f0e8e8daSMaxime Ripard allwinner,drive = <SUN4I_PINCTRL_10_MA>; 612f0e8e8daSMaxime Ripard allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 613f0e8e8daSMaxime Ripard }; 61453ab4af3SHans de Goede }; 61553ab4af3SHans de Goede 61653ab4af3SHans de Goede timer@01c20c00 { 61753ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-timer"; 61853ab4af3SHans de Goede reg = <0x01c20c00 0x90>; 61953ab4af3SHans de Goede interrupts = <22>; 62053ab4af3SHans de Goede clocks = <&osc24M>; 62153ab4af3SHans de Goede }; 62253ab4af3SHans de Goede 62353ab4af3SHans de Goede wdt: watchdog@01c20c90 { 62453ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-wdt"; 62553ab4af3SHans de Goede reg = <0x01c20c90 0x10>; 62653ab4af3SHans de Goede }; 62753ab4af3SHans de Goede 62853ab4af3SHans de Goede lradc: lradc@01c22800 { 62953ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-lradc-keys"; 63053ab4af3SHans de Goede reg = <0x01c22800 0x100>; 63153ab4af3SHans de Goede interrupts = <31>; 63253ab4af3SHans de Goede status = "disabled"; 63353ab4af3SHans de Goede }; 63453ab4af3SHans de Goede 63580e5f83cSHans de Goede codec: codec@01c22c00 { 63680e5f83cSHans de Goede #sound-dai-cells = <0>; 63780e5f83cSHans de Goede compatible = "allwinner,sun4i-a10-codec"; 63880e5f83cSHans de Goede reg = <0x01c22c00 0x40>; 63980e5f83cSHans de Goede interrupts = <30>; 64080e5f83cSHans de Goede clocks = <&apb0_gates 0>, <&codec_clk>; 64180e5f83cSHans de Goede clock-names = "apb", "codec"; 64280e5f83cSHans de Goede dmas = <&dma SUN4I_DMA_NORMAL 19>, 64380e5f83cSHans de Goede <&dma SUN4I_DMA_NORMAL 19>; 64480e5f83cSHans de Goede dma-names = "rx", "tx"; 64580e5f83cSHans de Goede status = "disabled"; 64680e5f83cSHans de Goede }; 64780e5f83cSHans de Goede 64853ab4af3SHans de Goede sid: eeprom@01c23800 { 64953ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-sid"; 65053ab4af3SHans de Goede reg = <0x01c23800 0x10>; 65153ab4af3SHans de Goede }; 65253ab4af3SHans de Goede 65353ab4af3SHans de Goede rtp: rtp@01c25000 { 65453ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-ts"; 65553ab4af3SHans de Goede reg = <0x01c25000 0x100>; 65653ab4af3SHans de Goede interrupts = <29>; 65753ab4af3SHans de Goede #thermal-sensor-cells = <0>; 65853ab4af3SHans de Goede }; 65953ab4af3SHans de Goede 66053ab4af3SHans de Goede uart1: serial@01c28400 { 66153ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 66253ab4af3SHans de Goede reg = <0x01c28400 0x400>; 66353ab4af3SHans de Goede interrupts = <2>; 66453ab4af3SHans de Goede reg-shift = <2>; 66553ab4af3SHans de Goede reg-io-width = <4>; 66653ab4af3SHans de Goede clocks = <&apb1_gates 17>; 66753ab4af3SHans de Goede status = "disabled"; 66853ab4af3SHans de Goede }; 66953ab4af3SHans de Goede 67053ab4af3SHans de Goede uart3: serial@01c28c00 { 67153ab4af3SHans de Goede compatible = "snps,dw-apb-uart"; 67253ab4af3SHans de Goede reg = <0x01c28c00 0x400>; 67353ab4af3SHans de Goede interrupts = <4>; 67453ab4af3SHans de Goede reg-shift = <2>; 67553ab4af3SHans de Goede reg-io-width = <4>; 67653ab4af3SHans de Goede clocks = <&apb1_gates 19>; 67753ab4af3SHans de Goede status = "disabled"; 67853ab4af3SHans de Goede }; 67953ab4af3SHans de Goede 68053ab4af3SHans de Goede i2c0: i2c@01c2ac00 { 68153ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-i2c"; 68253ab4af3SHans de Goede reg = <0x01c2ac00 0x400>; 68353ab4af3SHans de Goede interrupts = <7>; 68453ab4af3SHans de Goede clocks = <&apb1_gates 0>; 68553ab4af3SHans de Goede status = "disabled"; 68653ab4af3SHans de Goede #address-cells = <1>; 68753ab4af3SHans de Goede #size-cells = <0>; 68853ab4af3SHans de Goede }; 68953ab4af3SHans de Goede 69053ab4af3SHans de Goede i2c1: i2c@01c2b000 { 69153ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-i2c"; 69253ab4af3SHans de Goede reg = <0x01c2b000 0x400>; 69353ab4af3SHans de Goede interrupts = <8>; 69453ab4af3SHans de Goede clocks = <&apb1_gates 1>; 69553ab4af3SHans de Goede status = "disabled"; 69653ab4af3SHans de Goede #address-cells = <1>; 69753ab4af3SHans de Goede #size-cells = <0>; 69853ab4af3SHans de Goede }; 69953ab4af3SHans de Goede 70053ab4af3SHans de Goede i2c2: i2c@01c2b400 { 70153ab4af3SHans de Goede compatible = "allwinner,sun4i-a10-i2c"; 70253ab4af3SHans de Goede reg = <0x01c2b400 0x400>; 70353ab4af3SHans de Goede interrupts = <9>; 70453ab4af3SHans de Goede clocks = <&apb1_gates 2>; 70553ab4af3SHans de Goede status = "disabled"; 70653ab4af3SHans de Goede #address-cells = <1>; 70753ab4af3SHans de Goede #size-cells = <0>; 70853ab4af3SHans de Goede }; 70953ab4af3SHans de Goede 71053ab4af3SHans de Goede timer@01c60000 { 71153ab4af3SHans de Goede compatible = "allwinner,sun5i-a13-hstimer"; 71253ab4af3SHans de Goede reg = <0x01c60000 0x1000>; 71353ab4af3SHans de Goede interrupts = <82>, <83>; 71453ab4af3SHans de Goede clocks = <&ahb_gates 28>; 71553ab4af3SHans de Goede }; 71653ab4af3SHans de Goede }; 71753ab4af3SHans de Goede}; 718