1d6e6d4b3SHans de Goede/* 2d6e6d4b3SHans de Goede * Copyright (C) 2015 Jens Kuske <jenskuske@gmail.com> 3d6e6d4b3SHans de Goede * 4d6e6d4b3SHans de Goede * This file is dual-licensed: you can use it either under the terms 5d6e6d4b3SHans de Goede * of the GPL or the X11 license, at your option. Note that this dual 6d6e6d4b3SHans de Goede * licensing only applies to this file, and not this project as a 7d6e6d4b3SHans de Goede * whole. 8d6e6d4b3SHans de Goede * 9d6e6d4b3SHans de Goede * a) This file is free software; you can redistribute it and/or 10d6e6d4b3SHans de Goede * modify it under the terms of the GNU General Public License as 11d6e6d4b3SHans de Goede * published by the Free Software Foundation; either version 2 of the 12d6e6d4b3SHans de Goede * License, or (at your option) any later version. 13d6e6d4b3SHans de Goede * 14d6e6d4b3SHans de Goede * This file is distributed in the hope that it will be useful, 15d6e6d4b3SHans de Goede * but WITHOUT ANY WARRANTY; without even the implied warranty of 16d6e6d4b3SHans de Goede * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17d6e6d4b3SHans de Goede * GNU General Public License for more details. 18d6e6d4b3SHans de Goede * 19d6e6d4b3SHans de Goede * Or, alternatively, 20d6e6d4b3SHans de Goede * 21d6e6d4b3SHans de Goede * b) Permission is hereby granted, free of charge, to any person 22d6e6d4b3SHans de Goede * obtaining a copy of this software and associated documentation 23d6e6d4b3SHans de Goede * files (the "Software"), to deal in the Software without 24d6e6d4b3SHans de Goede * restriction, including without limitation the rights to use, 25d6e6d4b3SHans de Goede * copy, modify, merge, publish, distribute, sublicense, and/or 26d6e6d4b3SHans de Goede * sell copies of the Software, and to permit persons to whom the 27d6e6d4b3SHans de Goede * Software is furnished to do so, subject to the following 28d6e6d4b3SHans de Goede * conditions: 29d6e6d4b3SHans de Goede * 30d6e6d4b3SHans de Goede * The above copyright notice and this permission notice shall be 31d6e6d4b3SHans de Goede * included in all copies or substantial portions of the Software. 32d6e6d4b3SHans de Goede * 33d6e6d4b3SHans de Goede * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34d6e6d4b3SHans de Goede * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35d6e6d4b3SHans de Goede * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36d6e6d4b3SHans de Goede * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37d6e6d4b3SHans de Goede * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38d6e6d4b3SHans de Goede * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39d6e6d4b3SHans de Goede * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40d6e6d4b3SHans de Goede * OTHER DEALINGS IN THE SOFTWARE. 41d6e6d4b3SHans de Goede */ 42d6e6d4b3SHans de Goede 43d6e6d4b3SHans de Goede#include "skeleton.dtsi" 44d6e6d4b3SHans de Goede 45860fbdd4SHans de Goede#include <dt-bindings/clock/sun8i-h3-ccu.h> 46d6e6d4b3SHans de Goede#include <dt-bindings/interrupt-controller/arm-gic.h> 47d6e6d4b3SHans de Goede#include <dt-bindings/pinctrl/sun4i-a10.h> 48860fbdd4SHans de Goede#include <dt-bindings/reset/sun8i-h3-ccu.h> 49d6e6d4b3SHans de Goede 50d6e6d4b3SHans de Goede/ { 51d6e6d4b3SHans de Goede interrupt-parent = <&gic>; 52d6e6d4b3SHans de Goede 536d7b22a5SChen-Yu Tsai aliases { 54860fbdd4SHans de Goede ethernet0 = &emac; 556d7b22a5SChen-Yu Tsai }; 566d7b22a5SChen-Yu Tsai 57d6e6d4b3SHans de Goede cpus { 58d6e6d4b3SHans de Goede #address-cells = <1>; 59d6e6d4b3SHans de Goede #size-cells = <0>; 60d6e6d4b3SHans de Goede 61d6e6d4b3SHans de Goede cpu@0 { 62d6e6d4b3SHans de Goede compatible = "arm,cortex-a7"; 63d6e6d4b3SHans de Goede device_type = "cpu"; 64d6e6d4b3SHans de Goede reg = <0>; 65d6e6d4b3SHans de Goede }; 66d6e6d4b3SHans de Goede 67d6e6d4b3SHans de Goede cpu@1 { 68d6e6d4b3SHans de Goede compatible = "arm,cortex-a7"; 69d6e6d4b3SHans de Goede device_type = "cpu"; 70d6e6d4b3SHans de Goede reg = <1>; 71d6e6d4b3SHans de Goede }; 72d6e6d4b3SHans de Goede 73d6e6d4b3SHans de Goede cpu@2 { 74d6e6d4b3SHans de Goede compatible = "arm,cortex-a7"; 75d6e6d4b3SHans de Goede device_type = "cpu"; 76d6e6d4b3SHans de Goede reg = <2>; 77d6e6d4b3SHans de Goede }; 78d6e6d4b3SHans de Goede 79d6e6d4b3SHans de Goede cpu@3 { 80d6e6d4b3SHans de Goede compatible = "arm,cortex-a7"; 81d6e6d4b3SHans de Goede device_type = "cpu"; 82d6e6d4b3SHans de Goede reg = <3>; 83d6e6d4b3SHans de Goede }; 84d6e6d4b3SHans de Goede }; 85d6e6d4b3SHans de Goede 86d6e6d4b3SHans de Goede timer { 87d6e6d4b3SHans de Goede compatible = "arm,armv7-timer"; 88d6e6d4b3SHans de Goede interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 89d6e6d4b3SHans de Goede <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 90d6e6d4b3SHans de Goede <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 91d6e6d4b3SHans de Goede <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 92d6e6d4b3SHans de Goede }; 93d6e6d4b3SHans de Goede 94d6e6d4b3SHans de Goede clocks { 95d6e6d4b3SHans de Goede #address-cells = <1>; 96d6e6d4b3SHans de Goede #size-cells = <1>; 97d6e6d4b3SHans de Goede ranges; 98d6e6d4b3SHans de Goede 99d6e6d4b3SHans de Goede osc24M: osc24M_clk { 100d6e6d4b3SHans de Goede #clock-cells = <0>; 101d6e6d4b3SHans de Goede compatible = "fixed-clock"; 102d6e6d4b3SHans de Goede clock-frequency = <24000000>; 103d6e6d4b3SHans de Goede clock-output-names = "osc24M"; 104d6e6d4b3SHans de Goede }; 105d6e6d4b3SHans de Goede 106d6e6d4b3SHans de Goede osc32k: osc32k_clk { 107d6e6d4b3SHans de Goede #clock-cells = <0>; 108d6e6d4b3SHans de Goede compatible = "fixed-clock"; 109d6e6d4b3SHans de Goede clock-frequency = <32768>; 110d6e6d4b3SHans de Goede clock-output-names = "osc32k"; 111d6e6d4b3SHans de Goede }; 112d6e6d4b3SHans de Goede 11380e5f83cSHans de Goede apb0: apb0_clk { 11480e5f83cSHans de Goede compatible = "fixed-factor-clock"; 11580e5f83cSHans de Goede #clock-cells = <0>; 11680e5f83cSHans de Goede clock-div = <1>; 11780e5f83cSHans de Goede clock-mult = <1>; 11880e5f83cSHans de Goede clocks = <&osc24M>; 11980e5f83cSHans de Goede clock-output-names = "apb0"; 12080e5f83cSHans de Goede }; 12180e5f83cSHans de Goede 12280e5f83cSHans de Goede apb0_gates: clk@01f01428 { 12380e5f83cSHans de Goede compatible = "allwinner,sun8i-h3-apb0-gates-clk", 12480e5f83cSHans de Goede "allwinner,sun4i-a10-gates-clk"; 12580e5f83cSHans de Goede reg = <0x01f01428 0x4>; 12680e5f83cSHans de Goede #clock-cells = <1>; 12780e5f83cSHans de Goede clocks = <&apb0>; 12880e5f83cSHans de Goede clock-indices = <0>, <1>; 12980e5f83cSHans de Goede clock-output-names = "apb0_pio", "apb0_ir"; 13080e5f83cSHans de Goede }; 13180e5f83cSHans de Goede 13280e5f83cSHans de Goede ir_clk: ir_clk@01f01454 { 13380e5f83cSHans de Goede compatible = "allwinner,sun4i-a10-mod0-clk"; 13480e5f83cSHans de Goede reg = <0x01f01454 0x4>; 13580e5f83cSHans de Goede #clock-cells = <0>; 13680e5f83cSHans de Goede clocks = <&osc32k>, <&osc24M>; 13780e5f83cSHans de Goede clock-output-names = "ir"; 13880e5f83cSHans de Goede }; 139d6e6d4b3SHans de Goede }; 140d6e6d4b3SHans de Goede 141d6e6d4b3SHans de Goede soc { 142d6e6d4b3SHans de Goede compatible = "simple-bus"; 143d6e6d4b3SHans de Goede #address-cells = <1>; 144d6e6d4b3SHans de Goede #size-cells = <1>; 145d6e6d4b3SHans de Goede ranges; 146d6e6d4b3SHans de Goede 147860fbdd4SHans de Goede syscon: syscon@01c00000 { 148860fbdd4SHans de Goede compatible = "allwinner,sun8i-h3-syscon","syscon"; 149860fbdd4SHans de Goede reg = <0x01c00000 0x34>; 150860fbdd4SHans de Goede }; 151860fbdd4SHans de Goede 152d6e6d4b3SHans de Goede dma: dma-controller@01c02000 { 153d6e6d4b3SHans de Goede compatible = "allwinner,sun8i-h3-dma"; 154d6e6d4b3SHans de Goede reg = <0x01c02000 0x1000>; 155d6e6d4b3SHans de Goede interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 156860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_DMA>; 157860fbdd4SHans de Goede resets = <&ccu RST_BUS_DMA>; 158d6e6d4b3SHans de Goede #dma-cells = <1>; 159d6e6d4b3SHans de Goede }; 160d6e6d4b3SHans de Goede 161d6e6d4b3SHans de Goede mmc0: mmc@01c0f000 { 162860fbdd4SHans de Goede compatible = "allwinner,sun7i-a20-mmc", 163860fbdd4SHans de Goede "allwinner,sun5i-a13-mmc"; 164d6e6d4b3SHans de Goede reg = <0x01c0f000 0x1000>; 165860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_MMC0>, 166860fbdd4SHans de Goede <&ccu CLK_MMC0>, 167860fbdd4SHans de Goede <&ccu CLK_MMC0_OUTPUT>, 168860fbdd4SHans de Goede <&ccu CLK_MMC0_SAMPLE>; 169d6e6d4b3SHans de Goede clock-names = "ahb", 170d6e6d4b3SHans de Goede "mmc", 171d6e6d4b3SHans de Goede "output", 172d6e6d4b3SHans de Goede "sample"; 173860fbdd4SHans de Goede resets = <&ccu RST_BUS_MMC0>; 174d6e6d4b3SHans de Goede reset-names = "ahb"; 175d6e6d4b3SHans de Goede interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 176d6e6d4b3SHans de Goede status = "disabled"; 177d6e6d4b3SHans de Goede #address-cells = <1>; 178d6e6d4b3SHans de Goede #size-cells = <0>; 179d6e6d4b3SHans de Goede }; 180d6e6d4b3SHans de Goede 181d6e6d4b3SHans de Goede mmc1: mmc@01c10000 { 182860fbdd4SHans de Goede compatible = "allwinner,sun7i-a20-mmc", 183860fbdd4SHans de Goede "allwinner,sun5i-a13-mmc"; 184d6e6d4b3SHans de Goede reg = <0x01c10000 0x1000>; 185860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_MMC1>, 186860fbdd4SHans de Goede <&ccu CLK_MMC1>, 187860fbdd4SHans de Goede <&ccu CLK_MMC1_OUTPUT>, 188860fbdd4SHans de Goede <&ccu CLK_MMC1_SAMPLE>; 189d6e6d4b3SHans de Goede clock-names = "ahb", 190d6e6d4b3SHans de Goede "mmc", 191d6e6d4b3SHans de Goede "output", 192d6e6d4b3SHans de Goede "sample"; 193860fbdd4SHans de Goede resets = <&ccu RST_BUS_MMC1>; 194d6e6d4b3SHans de Goede reset-names = "ahb"; 195d6e6d4b3SHans de Goede interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 196d6e6d4b3SHans de Goede status = "disabled"; 197d6e6d4b3SHans de Goede #address-cells = <1>; 198d6e6d4b3SHans de Goede #size-cells = <0>; 199d6e6d4b3SHans de Goede }; 200d6e6d4b3SHans de Goede 201d6e6d4b3SHans de Goede mmc2: mmc@01c11000 { 202860fbdd4SHans de Goede compatible = "allwinner,sun7i-a20-mmc", 203860fbdd4SHans de Goede "allwinner,sun5i-a13-mmc"; 204d6e6d4b3SHans de Goede reg = <0x01c11000 0x1000>; 205860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_MMC2>, 206860fbdd4SHans de Goede <&ccu CLK_MMC2>, 207860fbdd4SHans de Goede <&ccu CLK_MMC2_OUTPUT>, 208860fbdd4SHans de Goede <&ccu CLK_MMC2_SAMPLE>; 209d6e6d4b3SHans de Goede clock-names = "ahb", 210d6e6d4b3SHans de Goede "mmc", 211d6e6d4b3SHans de Goede "output", 212d6e6d4b3SHans de Goede "sample"; 213860fbdd4SHans de Goede resets = <&ccu RST_BUS_MMC2>; 214d6e6d4b3SHans de Goede reset-names = "ahb"; 215d6e6d4b3SHans de Goede interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 216d6e6d4b3SHans de Goede status = "disabled"; 217d6e6d4b3SHans de Goede #address-cells = <1>; 218d6e6d4b3SHans de Goede #size-cells = <0>; 219d6e6d4b3SHans de Goede }; 220d6e6d4b3SHans de Goede 221d6e6d4b3SHans de Goede usbphy: phy@01c19400 { 222d6e6d4b3SHans de Goede compatible = "allwinner,sun8i-h3-usb-phy"; 223d6e6d4b3SHans de Goede reg = <0x01c19400 0x2c>, 224d6e6d4b3SHans de Goede <0x01c1a800 0x4>, 225d6e6d4b3SHans de Goede <0x01c1b800 0x4>, 226d6e6d4b3SHans de Goede <0x01c1c800 0x4>, 227d6e6d4b3SHans de Goede <0x01c1d800 0x4>; 228d6e6d4b3SHans de Goede reg-names = "phy_ctrl", 229d6e6d4b3SHans de Goede "pmu0", 230d6e6d4b3SHans de Goede "pmu1", 231d6e6d4b3SHans de Goede "pmu2", 232d6e6d4b3SHans de Goede "pmu3"; 233860fbdd4SHans de Goede clocks = <&ccu CLK_USB_PHY0>, 234860fbdd4SHans de Goede <&ccu CLK_USB_PHY1>, 235860fbdd4SHans de Goede <&ccu CLK_USB_PHY2>, 236860fbdd4SHans de Goede <&ccu CLK_USB_PHY3>; 237d6e6d4b3SHans de Goede clock-names = "usb0_phy", 238d6e6d4b3SHans de Goede "usb1_phy", 239d6e6d4b3SHans de Goede "usb2_phy", 240d6e6d4b3SHans de Goede "usb3_phy"; 241860fbdd4SHans de Goede resets = <&ccu RST_USB_PHY0>, 242860fbdd4SHans de Goede <&ccu RST_USB_PHY1>, 243860fbdd4SHans de Goede <&ccu RST_USB_PHY2>, 244860fbdd4SHans de Goede <&ccu RST_USB_PHY3>; 245d6e6d4b3SHans de Goede reset-names = "usb0_reset", 246d6e6d4b3SHans de Goede "usb1_reset", 247d6e6d4b3SHans de Goede "usb2_reset", 248d6e6d4b3SHans de Goede "usb3_reset"; 249d6e6d4b3SHans de Goede status = "disabled"; 250d6e6d4b3SHans de Goede #phy-cells = <1>; 251d6e6d4b3SHans de Goede }; 252d6e6d4b3SHans de Goede 253d6e6d4b3SHans de Goede ehci1: usb@01c1b000 { 254d6e6d4b3SHans de Goede compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; 255d6e6d4b3SHans de Goede reg = <0x01c1b000 0x100>; 256d6e6d4b3SHans de Goede interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 257860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_EHCI1>, <&ccu CLK_BUS_OHCI1>; 258860fbdd4SHans de Goede resets = <&ccu RST_BUS_EHCI1>, <&ccu RST_BUS_OHCI1>; 259d6e6d4b3SHans de Goede phys = <&usbphy 1>; 260d6e6d4b3SHans de Goede phy-names = "usb"; 261d6e6d4b3SHans de Goede status = "disabled"; 262d6e6d4b3SHans de Goede }; 263d6e6d4b3SHans de Goede 264d6e6d4b3SHans de Goede ohci1: usb@01c1b400 { 265d6e6d4b3SHans de Goede compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; 266d6e6d4b3SHans de Goede reg = <0x01c1b400 0x100>; 267d6e6d4b3SHans de Goede interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 268860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_EHCI1>, <&ccu CLK_BUS_OHCI1>, 269860fbdd4SHans de Goede <&ccu CLK_USB_OHCI1>; 270860fbdd4SHans de Goede resets = <&ccu RST_BUS_EHCI1>, <&ccu RST_BUS_OHCI1>; 271d6e6d4b3SHans de Goede phys = <&usbphy 1>; 272d6e6d4b3SHans de Goede phy-names = "usb"; 273d6e6d4b3SHans de Goede status = "disabled"; 274d6e6d4b3SHans de Goede }; 275d6e6d4b3SHans de Goede 276d6e6d4b3SHans de Goede ehci2: usb@01c1c000 { 277d6e6d4b3SHans de Goede compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; 278d6e6d4b3SHans de Goede reg = <0x01c1c000 0x100>; 279d6e6d4b3SHans de Goede interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 280860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_EHCI2>, <&ccu CLK_BUS_OHCI2>; 281860fbdd4SHans de Goede resets = <&ccu RST_BUS_EHCI2>, <&ccu RST_BUS_OHCI2>; 282d6e6d4b3SHans de Goede phys = <&usbphy 2>; 283d6e6d4b3SHans de Goede phy-names = "usb"; 284d6e6d4b3SHans de Goede status = "disabled"; 285d6e6d4b3SHans de Goede }; 286d6e6d4b3SHans de Goede 287d6e6d4b3SHans de Goede ohci2: usb@01c1c400 { 288d6e6d4b3SHans de Goede compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; 289d6e6d4b3SHans de Goede reg = <0x01c1c400 0x100>; 290d6e6d4b3SHans de Goede interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 291860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_EHCI2>, <&ccu CLK_BUS_OHCI2>, 292860fbdd4SHans de Goede <&ccu CLK_USB_OHCI2>; 293860fbdd4SHans de Goede resets = <&ccu RST_BUS_EHCI2>, <&ccu RST_BUS_OHCI2>; 294d6e6d4b3SHans de Goede phys = <&usbphy 2>; 295d6e6d4b3SHans de Goede phy-names = "usb"; 296d6e6d4b3SHans de Goede status = "disabled"; 297d6e6d4b3SHans de Goede }; 298d6e6d4b3SHans de Goede 299d6e6d4b3SHans de Goede ehci3: usb@01c1d000 { 300d6e6d4b3SHans de Goede compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; 301d6e6d4b3SHans de Goede reg = <0x01c1d000 0x100>; 302d6e6d4b3SHans de Goede interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 303860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_EHCI3>, <&ccu CLK_BUS_OHCI3>; 304860fbdd4SHans de Goede resets = <&ccu RST_BUS_EHCI3>, <&ccu RST_BUS_OHCI3>; 305d6e6d4b3SHans de Goede phys = <&usbphy 3>; 306d6e6d4b3SHans de Goede phy-names = "usb"; 307d6e6d4b3SHans de Goede status = "disabled"; 308d6e6d4b3SHans de Goede }; 309d6e6d4b3SHans de Goede 310d6e6d4b3SHans de Goede ohci3: usb@01c1d400 { 311d6e6d4b3SHans de Goede compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; 312d6e6d4b3SHans de Goede reg = <0x01c1d400 0x100>; 313d6e6d4b3SHans de Goede interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 314860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_EHCI3>, <&ccu CLK_BUS_OHCI3>, 315860fbdd4SHans de Goede <&ccu CLK_USB_OHCI3>; 316860fbdd4SHans de Goede resets = <&ccu RST_BUS_EHCI3>, <&ccu RST_BUS_OHCI3>; 317d6e6d4b3SHans de Goede phys = <&usbphy 3>; 318d6e6d4b3SHans de Goede phy-names = "usb"; 319d6e6d4b3SHans de Goede status = "disabled"; 320d6e6d4b3SHans de Goede }; 321d6e6d4b3SHans de Goede 322860fbdd4SHans de Goede ccu: clock@01c20000 { 323860fbdd4SHans de Goede compatible = "allwinner,sun8i-h3-ccu"; 324860fbdd4SHans de Goede reg = <0x01c20000 0x400>; 325860fbdd4SHans de Goede clocks = <&osc24M>, <&osc32k>; 326860fbdd4SHans de Goede clock-names = "hosc", "losc"; 327860fbdd4SHans de Goede #clock-cells = <1>; 328860fbdd4SHans de Goede #reset-cells = <1>; 329860fbdd4SHans de Goede }; 330860fbdd4SHans de Goede 331d6e6d4b3SHans de Goede pio: pinctrl@01c20800 { 332d6e6d4b3SHans de Goede compatible = "allwinner,sun8i-h3-pinctrl"; 333d6e6d4b3SHans de Goede reg = <0x01c20800 0x400>; 334d6e6d4b3SHans de Goede interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 335d6e6d4b3SHans de Goede <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 336860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_PIO>; 337d6e6d4b3SHans de Goede gpio-controller; 338d6e6d4b3SHans de Goede #gpio-cells = <3>; 339d6e6d4b3SHans de Goede interrupt-controller; 34080e5f83cSHans de Goede #interrupt-cells = <3>; 341d6e6d4b3SHans de Goede 342860fbdd4SHans de Goede emac_rgmii_pins: emac0@0 { 343a29710c5SAmit Singh Tomar allwinner,pins = "PD0", "PD1", "PD2", "PD3", 344a29710c5SAmit Singh Tomar "PD4", "PD5", "PD7", 345a29710c5SAmit Singh Tomar "PD8", "PD9", "PD10", 346a29710c5SAmit Singh Tomar "PD12", "PD13", "PD15", 347a29710c5SAmit Singh Tomar "PD16", "PD17"; 348a29710c5SAmit Singh Tomar allwinner,function = "emac"; 349a29710c5SAmit Singh Tomar allwinner,drive = <SUN4I_PINCTRL_40_MA>; 350a29710c5SAmit Singh Tomar allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 351a29710c5SAmit Singh Tomar }; 352a29710c5SAmit Singh Tomar 353d6e6d4b3SHans de Goede mmc0_pins_a: mmc0@0 { 354d6e6d4b3SHans de Goede allwinner,pins = "PF0", "PF1", "PF2", "PF3", 355d6e6d4b3SHans de Goede "PF4", "PF5"; 356d6e6d4b3SHans de Goede allwinner,function = "mmc0"; 357d6e6d4b3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 358d6e6d4b3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 359d6e6d4b3SHans de Goede }; 360d6e6d4b3SHans de Goede 361d6e6d4b3SHans de Goede mmc0_cd_pin: mmc0_cd_pin@0 { 362d6e6d4b3SHans de Goede allwinner,pins = "PF6"; 363d6e6d4b3SHans de Goede allwinner,function = "gpio_in"; 364d6e6d4b3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 365d6e6d4b3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 366d6e6d4b3SHans de Goede }; 367d6e6d4b3SHans de Goede 368d6e6d4b3SHans de Goede mmc1_pins_a: mmc1@0 { 369d6e6d4b3SHans de Goede allwinner,pins = "PG0", "PG1", "PG2", "PG3", 370d6e6d4b3SHans de Goede "PG4", "PG5"; 371d6e6d4b3SHans de Goede allwinner,function = "mmc1"; 372d6e6d4b3SHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 373d6e6d4b3SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 374d6e6d4b3SHans de Goede }; 375fa8a485dSHans de Goede 376fa8a485dSHans de Goede mmc2_8bit_pins: mmc2_8bit { 377fa8a485dSHans de Goede allwinner,pins = "PC5", "PC6", "PC8", 378fa8a485dSHans de Goede "PC9", "PC10", "PC11", 379fa8a485dSHans de Goede "PC12", "PC13", "PC14", 380fa8a485dSHans de Goede "PC15", "PC16"; 381fa8a485dSHans de Goede allwinner,function = "mmc2"; 382fa8a485dSHans de Goede allwinner,drive = <SUN4I_PINCTRL_30_MA>; 383fa8a485dSHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 384fa8a485dSHans de Goede }; 385860fbdd4SHans de Goede 386860fbdd4SHans de Goede uart0_pins_a: uart0@0 { 387860fbdd4SHans de Goede allwinner,pins = "PA4", "PA5"; 388860fbdd4SHans de Goede allwinner,function = "uart0"; 389860fbdd4SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 390860fbdd4SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 391d6e6d4b3SHans de Goede }; 392d6e6d4b3SHans de Goede 393860fbdd4SHans de Goede uart1_pins_a: uart1@0 { 394860fbdd4SHans de Goede allwinner,pins = "PG6", "PG7", "PG8", "PG9"; 395860fbdd4SHans de Goede allwinner,function = "uart1"; 396860fbdd4SHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 397860fbdd4SHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 39880e5f83cSHans de Goede }; 399d6e6d4b3SHans de Goede }; 400d6e6d4b3SHans de Goede 401d6e6d4b3SHans de Goede timer@01c20c00 { 402d6e6d4b3SHans de Goede compatible = "allwinner,sun4i-a10-timer"; 403d6e6d4b3SHans de Goede reg = <0x01c20c00 0xa0>; 404d6e6d4b3SHans de Goede interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 405d6e6d4b3SHans de Goede <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 406d6e6d4b3SHans de Goede clocks = <&osc24M>; 407d6e6d4b3SHans de Goede }; 408d6e6d4b3SHans de Goede 409d6e6d4b3SHans de Goede wdt0: watchdog@01c20ca0 { 410d6e6d4b3SHans de Goede compatible = "allwinner,sun6i-a31-wdt"; 411d6e6d4b3SHans de Goede reg = <0x01c20ca0 0x20>; 412d6e6d4b3SHans de Goede interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 413d6e6d4b3SHans de Goede }; 414d6e6d4b3SHans de Goede 415d6e6d4b3SHans de Goede uart0: serial@01c28000 { 416d6e6d4b3SHans de Goede compatible = "snps,dw-apb-uart"; 417d6e6d4b3SHans de Goede reg = <0x01c28000 0x400>; 418d6e6d4b3SHans de Goede interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 419d6e6d4b3SHans de Goede reg-shift = <2>; 420d6e6d4b3SHans de Goede reg-io-width = <4>; 421860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_UART0>; 422860fbdd4SHans de Goede resets = <&ccu RST_BUS_UART0>; 423d6e6d4b3SHans de Goede dmas = <&dma 6>, <&dma 6>; 424d6e6d4b3SHans de Goede dma-names = "rx", "tx"; 425d6e6d4b3SHans de Goede status = "disabled"; 426d6e6d4b3SHans de Goede }; 427d6e6d4b3SHans de Goede 428d6e6d4b3SHans de Goede uart1: serial@01c28400 { 429d6e6d4b3SHans de Goede compatible = "snps,dw-apb-uart"; 430d6e6d4b3SHans de Goede reg = <0x01c28400 0x400>; 431d6e6d4b3SHans de Goede interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 432d6e6d4b3SHans de Goede reg-shift = <2>; 433d6e6d4b3SHans de Goede reg-io-width = <4>; 434860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_UART1>; 435860fbdd4SHans de Goede resets = <&ccu RST_BUS_UART1>; 436d6e6d4b3SHans de Goede dmas = <&dma 7>, <&dma 7>; 437d6e6d4b3SHans de Goede dma-names = "rx", "tx"; 438d6e6d4b3SHans de Goede status = "disabled"; 439d6e6d4b3SHans de Goede }; 440d6e6d4b3SHans de Goede 441d6e6d4b3SHans de Goede uart2: serial@01c28800 { 442d6e6d4b3SHans de Goede compatible = "snps,dw-apb-uart"; 443d6e6d4b3SHans de Goede reg = <0x01c28800 0x400>; 444d6e6d4b3SHans de Goede interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 445d6e6d4b3SHans de Goede reg-shift = <2>; 446d6e6d4b3SHans de Goede reg-io-width = <4>; 447860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_UART2>; 448860fbdd4SHans de Goede resets = <&ccu RST_BUS_UART2>; 449d6e6d4b3SHans de Goede dmas = <&dma 8>, <&dma 8>; 450d6e6d4b3SHans de Goede dma-names = "rx", "tx"; 451d6e6d4b3SHans de Goede status = "disabled"; 452d6e6d4b3SHans de Goede }; 453d6e6d4b3SHans de Goede 454d6e6d4b3SHans de Goede uart3: serial@01c28c00 { 455d6e6d4b3SHans de Goede compatible = "snps,dw-apb-uart"; 456d6e6d4b3SHans de Goede reg = <0x01c28c00 0x400>; 457d6e6d4b3SHans de Goede interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 458d6e6d4b3SHans de Goede reg-shift = <2>; 459d6e6d4b3SHans de Goede reg-io-width = <4>; 460860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_UART3>; 461860fbdd4SHans de Goede resets = <&ccu RST_BUS_UART3>; 462d6e6d4b3SHans de Goede dmas = <&dma 9>, <&dma 9>; 463d6e6d4b3SHans de Goede dma-names = "rx", "tx"; 464d6e6d4b3SHans de Goede status = "disabled"; 465d6e6d4b3SHans de Goede }; 466d6e6d4b3SHans de Goede 467860fbdd4SHans de Goede emac: ethernet@1c30000 { 468a29710c5SAmit Singh Tomar compatible = "allwinner,sun8i-h3-emac"; 469*68871efeSChen-Yu Tsai reg = <0x01c30000 0x104>, <0x01c00030 0x4>; 470*68871efeSChen-Yu Tsai reg-names = "emac", "syscon"; 471a29710c5SAmit Singh Tomar interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 472860fbdd4SHans de Goede resets = <&ccu RST_BUS_EMAC>, <&ccu RST_BUS_EPHY>; 473a29710c5SAmit Singh Tomar reset-names = "ahb", "ephy"; 474860fbdd4SHans de Goede clocks = <&ccu CLK_BUS_EMAC>, <&ccu CLK_BUS_EPHY>; 475a29710c5SAmit Singh Tomar clock-names = "ahb", "ephy"; 476a29710c5SAmit Singh Tomar #address-cells = <1>; 477a29710c5SAmit Singh Tomar #size-cells = <0>; 478a29710c5SAmit Singh Tomar status = "disabled"; 479a29710c5SAmit Singh Tomar }; 480a29710c5SAmit Singh Tomar 481d6e6d4b3SHans de Goede gic: interrupt-controller@01c81000 { 482d6e6d4b3SHans de Goede compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 483d6e6d4b3SHans de Goede reg = <0x01c81000 0x1000>, 484d6e6d4b3SHans de Goede <0x01c82000 0x1000>, 485d6e6d4b3SHans de Goede <0x01c84000 0x2000>, 486d6e6d4b3SHans de Goede <0x01c86000 0x2000>; 487d6e6d4b3SHans de Goede interrupt-controller; 488d6e6d4b3SHans de Goede #interrupt-cells = <3>; 489d6e6d4b3SHans de Goede interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 490d6e6d4b3SHans de Goede }; 491d6e6d4b3SHans de Goede 492d6e6d4b3SHans de Goede rtc: rtc@01f00000 { 493d6e6d4b3SHans de Goede compatible = "allwinner,sun6i-a31-rtc"; 494d6e6d4b3SHans de Goede reg = <0x01f00000 0x54>; 495d6e6d4b3SHans de Goede interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 496d6e6d4b3SHans de Goede <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 497d6e6d4b3SHans de Goede }; 49880e5f83cSHans de Goede 49980e5f83cSHans de Goede apb0_reset: reset@01f014b0 { 50080e5f83cSHans de Goede reg = <0x01f014b0 0x4>; 50180e5f83cSHans de Goede compatible = "allwinner,sun6i-a31-clock-reset"; 50280e5f83cSHans de Goede #reset-cells = <1>; 50380e5f83cSHans de Goede }; 50480e5f83cSHans de Goede 50580e5f83cSHans de Goede ir: ir@01f02000 { 50680e5f83cSHans de Goede compatible = "allwinner,sun5i-a13-ir"; 50780e5f83cSHans de Goede clocks = <&apb0_gates 1>, <&ir_clk>; 50880e5f83cSHans de Goede clock-names = "apb", "ir"; 50980e5f83cSHans de Goede resets = <&apb0_reset 1>; 51080e5f83cSHans de Goede interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 51180e5f83cSHans de Goede reg = <0x01f02000 0x40>; 51280e5f83cSHans de Goede status = "disabled"; 51380e5f83cSHans de Goede }; 51480e5f83cSHans de Goede 51580e5f83cSHans de Goede r_pio: pinctrl@01f02c00 { 51680e5f83cSHans de Goede compatible = "allwinner,sun8i-h3-r-pinctrl"; 51780e5f83cSHans de Goede reg = <0x01f02c00 0x400>; 51880e5f83cSHans de Goede interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 51980e5f83cSHans de Goede clocks = <&apb0_gates 0>; 52080e5f83cSHans de Goede resets = <&apb0_reset 0>; 52180e5f83cSHans de Goede gpio-controller; 52280e5f83cSHans de Goede #gpio-cells = <3>; 52380e5f83cSHans de Goede interrupt-controller; 52480e5f83cSHans de Goede #interrupt-cells = <3>; 52580e5f83cSHans de Goede 52680e5f83cSHans de Goede ir_pins_a: ir@0 { 52780e5f83cSHans de Goede allwinner,pins = "PL11"; 52880e5f83cSHans de Goede allwinner,function = "s_cir_rx"; 52980e5f83cSHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 53080e5f83cSHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 53180e5f83cSHans de Goede }; 53280e5f83cSHans de Goede }; 533d6e6d4b3SHans de Goede }; 534d6e6d4b3SHans de Goede}; 535