1f126890aSEmmanuel Vadot/* 2f126890aSEmmanuel Vadot * Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz> 3f126890aSEmmanuel Vadot * Copyright (C) 2021 Tobias Schramm <t.schramm@manjaro.org> 4f126890aSEmmanuel Vadot * 5f126890aSEmmanuel Vadot * This file is dual-licensed: you can use it either under the terms 6f126890aSEmmanuel Vadot * of the GPL or the X11 license, at your option. Note that this dual 7f126890aSEmmanuel Vadot * licensing only applies to this file, and not this project as a 8f126890aSEmmanuel Vadot * whole. 9f126890aSEmmanuel Vadot * 10f126890aSEmmanuel Vadot * a) This file is free software; you can redistribute it and/or 11f126890aSEmmanuel Vadot * modify it under the terms of the GNU General Public License as 12f126890aSEmmanuel Vadot * published by the Free Software Foundation; either version 2 of the 13f126890aSEmmanuel Vadot * License, or (at your option) any later version. 14f126890aSEmmanuel Vadot * 15f126890aSEmmanuel Vadot * This file is distributed in the hope that it will be useful, 16f126890aSEmmanuel Vadot * but WITHOUT ANY WARRANTY; without even the implied warranty of 17f126890aSEmmanuel Vadot * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18f126890aSEmmanuel Vadot * GNU General Public License for more details. 19f126890aSEmmanuel Vadot * 20f126890aSEmmanuel Vadot * Or, alternatively, 21f126890aSEmmanuel Vadot * 22f126890aSEmmanuel Vadot * b) Permission is hereby granted, free of charge, to any person 23f126890aSEmmanuel Vadot * obtaining a copy of this software and associated documentation 24f126890aSEmmanuel Vadot * files (the "Software"), to deal in the Software without 25f126890aSEmmanuel Vadot * restriction, including without limitation the rights to use, 26f126890aSEmmanuel Vadot * copy, modify, merge, publish, distribute, sublicense, and/or 27f126890aSEmmanuel Vadot * sell copies of the Software, and to permit persons to whom the 28f126890aSEmmanuel Vadot * Software is furnished to do so, subject to the following 29f126890aSEmmanuel Vadot * conditions: 30f126890aSEmmanuel Vadot * 31f126890aSEmmanuel Vadot * The above copyright notice and this permission notice shall be 32f126890aSEmmanuel Vadot * included in all copies or substantial portions of the Software. 33f126890aSEmmanuel Vadot * 34f126890aSEmmanuel Vadot * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 35f126890aSEmmanuel Vadot * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36f126890aSEmmanuel Vadot * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37f126890aSEmmanuel Vadot * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38f126890aSEmmanuel Vadot * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 39f126890aSEmmanuel Vadot * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40f126890aSEmmanuel Vadot * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41f126890aSEmmanuel Vadot * OTHER DEALINGS IN THE SOFTWARE. 42f126890aSEmmanuel Vadot */ 43f126890aSEmmanuel Vadot 44f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 45f126890aSEmmanuel Vadot#include <dt-bindings/clock/sun6i-rtc.h> 46f126890aSEmmanuel Vadot#include <dt-bindings/clock/sun8i-v3s-ccu.h> 47f126890aSEmmanuel Vadot#include <dt-bindings/reset/sun8i-v3s-ccu.h> 48f126890aSEmmanuel Vadot#include <dt-bindings/clock/sun8i-de2.h> 49f126890aSEmmanuel Vadot 50f126890aSEmmanuel Vadot/ { 51f126890aSEmmanuel Vadot #address-cells = <1>; 52f126890aSEmmanuel Vadot #size-cells = <1>; 53f126890aSEmmanuel Vadot interrupt-parent = <&gic>; 54f126890aSEmmanuel Vadot 55f126890aSEmmanuel Vadot chosen { 56f126890aSEmmanuel Vadot #address-cells = <1>; 57f126890aSEmmanuel Vadot #size-cells = <1>; 58f126890aSEmmanuel Vadot ranges; 59f126890aSEmmanuel Vadot 60f126890aSEmmanuel Vadot framebuffer-lcd { 61f126890aSEmmanuel Vadot compatible = "allwinner,simple-framebuffer", 62f126890aSEmmanuel Vadot "simple-framebuffer"; 63f126890aSEmmanuel Vadot allwinner,pipeline = "mixer0-lcd0"; 64f126890aSEmmanuel Vadot clocks = <&display_clocks CLK_MIXER0>, 65f126890aSEmmanuel Vadot <&ccu CLK_TCON0>; 66f126890aSEmmanuel Vadot status = "disabled"; 67f126890aSEmmanuel Vadot }; 68f126890aSEmmanuel Vadot }; 69f126890aSEmmanuel Vadot 70f126890aSEmmanuel Vadot cpus { 71f126890aSEmmanuel Vadot #address-cells = <1>; 72f126890aSEmmanuel Vadot #size-cells = <0>; 73f126890aSEmmanuel Vadot 74f126890aSEmmanuel Vadot cpu@0 { 75f126890aSEmmanuel Vadot compatible = "arm,cortex-a7"; 76f126890aSEmmanuel Vadot device_type = "cpu"; 77f126890aSEmmanuel Vadot reg = <0>; 78f126890aSEmmanuel Vadot clocks = <&ccu CLK_CPU>; 79f126890aSEmmanuel Vadot }; 80f126890aSEmmanuel Vadot }; 81f126890aSEmmanuel Vadot 82f126890aSEmmanuel Vadot de: display-engine { 83f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-display-engine"; 84f126890aSEmmanuel Vadot allwinner,pipelines = <&mixer0>; 85f126890aSEmmanuel Vadot status = "disabled"; 86f126890aSEmmanuel Vadot }; 87f126890aSEmmanuel Vadot 88f126890aSEmmanuel Vadot timer { 89f126890aSEmmanuel Vadot compatible = "arm,armv7-timer"; 90f126890aSEmmanuel Vadot interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 91f126890aSEmmanuel Vadot <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 92f126890aSEmmanuel Vadot <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 93f126890aSEmmanuel Vadot <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 94f126890aSEmmanuel Vadot }; 95f126890aSEmmanuel Vadot 96f126890aSEmmanuel Vadot clocks { 97f126890aSEmmanuel Vadot #address-cells = <1>; 98f126890aSEmmanuel Vadot #size-cells = <1>; 99f126890aSEmmanuel Vadot ranges; 100f126890aSEmmanuel Vadot 101*7d0873ebSEmmanuel Vadot osc24M: osc24M-clk { 102f126890aSEmmanuel Vadot #clock-cells = <0>; 103f126890aSEmmanuel Vadot compatible = "fixed-clock"; 104f126890aSEmmanuel Vadot clock-frequency = <24000000>; 105f126890aSEmmanuel Vadot clock-accuracy = <50000>; 106f126890aSEmmanuel Vadot clock-output-names = "osc24M"; 107f126890aSEmmanuel Vadot }; 108f126890aSEmmanuel Vadot 109*7d0873ebSEmmanuel Vadot osc32k: osc32k-clk { 110f126890aSEmmanuel Vadot #clock-cells = <0>; 111f126890aSEmmanuel Vadot compatible = "fixed-clock"; 112f126890aSEmmanuel Vadot clock-frequency = <32768>; 113f126890aSEmmanuel Vadot clock-accuracy = <50000>; 114f126890aSEmmanuel Vadot clock-output-names = "ext-osc32k"; 115f126890aSEmmanuel Vadot }; 116f126890aSEmmanuel Vadot }; 117f126890aSEmmanuel Vadot 118f126890aSEmmanuel Vadot soc { 119f126890aSEmmanuel Vadot compatible = "simple-bus"; 120f126890aSEmmanuel Vadot #address-cells = <1>; 121f126890aSEmmanuel Vadot #size-cells = <1>; 122f126890aSEmmanuel Vadot ranges; 123f126890aSEmmanuel Vadot 124f126890aSEmmanuel Vadot display_clocks: clock@1000000 { 125f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-de2-clk"; 126f126890aSEmmanuel Vadot reg = <0x01000000 0x10000>; 127f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_DE>, 128f126890aSEmmanuel Vadot <&ccu CLK_DE>; 129f126890aSEmmanuel Vadot clock-names = "bus", 130f126890aSEmmanuel Vadot "mod"; 131f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_DE>; 132f126890aSEmmanuel Vadot #clock-cells = <1>; 133f126890aSEmmanuel Vadot #reset-cells = <1>; 134f126890aSEmmanuel Vadot }; 135f126890aSEmmanuel Vadot 136f126890aSEmmanuel Vadot mixer0: mixer@1100000 { 137f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-de2-mixer"; 138f126890aSEmmanuel Vadot reg = <0x01100000 0x100000>; 139f126890aSEmmanuel Vadot clocks = <&display_clocks 0>, 140f126890aSEmmanuel Vadot <&display_clocks 6>; 141f126890aSEmmanuel Vadot clock-names = "bus", 142f126890aSEmmanuel Vadot "mod"; 143f126890aSEmmanuel Vadot resets = <&display_clocks 0>; 144f126890aSEmmanuel Vadot 145f126890aSEmmanuel Vadot ports { 146f126890aSEmmanuel Vadot #address-cells = <1>; 147f126890aSEmmanuel Vadot #size-cells = <0>; 148f126890aSEmmanuel Vadot 149f126890aSEmmanuel Vadot mixer0_out: port@1 { 150f126890aSEmmanuel Vadot reg = <1>; 151f126890aSEmmanuel Vadot 152f126890aSEmmanuel Vadot mixer0_out_tcon0: endpoint { 153f126890aSEmmanuel Vadot remote-endpoint = <&tcon0_in_mixer0>; 154f126890aSEmmanuel Vadot }; 155f126890aSEmmanuel Vadot }; 156f126890aSEmmanuel Vadot }; 157f126890aSEmmanuel Vadot }; 158f126890aSEmmanuel Vadot 159f126890aSEmmanuel Vadot syscon: system-control@1c00000 { 160f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-system-control", 161f126890aSEmmanuel Vadot "allwinner,sun8i-h3-system-control"; 162f126890aSEmmanuel Vadot reg = <0x01c00000 0xd0>; 163f126890aSEmmanuel Vadot #address-cells = <1>; 164f126890aSEmmanuel Vadot #size-cells = <1>; 165f126890aSEmmanuel Vadot ranges; 166f126890aSEmmanuel Vadot }; 167f126890aSEmmanuel Vadot 168f126890aSEmmanuel Vadot nmi_intc: interrupt-controller@1c000d0 { 169f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-nmi", 170f126890aSEmmanuel Vadot "allwinner,sun9i-a80-nmi"; 171f126890aSEmmanuel Vadot interrupt-controller; 172f126890aSEmmanuel Vadot #interrupt-cells = <2>; 173f126890aSEmmanuel Vadot reg = <0x01c000d0 0x0c>; 174f126890aSEmmanuel Vadot interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 175f126890aSEmmanuel Vadot }; 176f126890aSEmmanuel Vadot 177f126890aSEmmanuel Vadot dma: dma-controller@1c02000 { 178f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-dma"; 179f126890aSEmmanuel Vadot reg = <0x01c02000 0x1000>; 180f126890aSEmmanuel Vadot interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 181f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_DMA>; 182f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_DMA>; 183f126890aSEmmanuel Vadot #dma-cells = <1>; 184f126890aSEmmanuel Vadot }; 185f126890aSEmmanuel Vadot 186f126890aSEmmanuel Vadot tcon0: lcd-controller@1c0c000 { 187f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-tcon"; 188f126890aSEmmanuel Vadot reg = <0x01c0c000 0x1000>; 189f126890aSEmmanuel Vadot interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 190f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_TCON0>, 191f126890aSEmmanuel Vadot <&ccu CLK_TCON0>; 192f126890aSEmmanuel Vadot clock-names = "ahb", 193f126890aSEmmanuel Vadot "tcon-ch0"; 194f126890aSEmmanuel Vadot clock-output-names = "tcon-data-clock"; 195f126890aSEmmanuel Vadot #clock-cells = <0>; 196f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_TCON0>; 197f126890aSEmmanuel Vadot reset-names = "lcd"; 198f126890aSEmmanuel Vadot status = "disabled"; 199f126890aSEmmanuel Vadot 200f126890aSEmmanuel Vadot ports { 201f126890aSEmmanuel Vadot #address-cells = <1>; 202f126890aSEmmanuel Vadot #size-cells = <0>; 203f126890aSEmmanuel Vadot 204f126890aSEmmanuel Vadot tcon0_in: port@0 { 205f126890aSEmmanuel Vadot reg = <0>; 206f126890aSEmmanuel Vadot 207f126890aSEmmanuel Vadot tcon0_in_mixer0: endpoint { 208f126890aSEmmanuel Vadot remote-endpoint = <&mixer0_out_tcon0>; 209f126890aSEmmanuel Vadot }; 210f126890aSEmmanuel Vadot }; 211f126890aSEmmanuel Vadot 212f126890aSEmmanuel Vadot tcon0_out: port@1 { 213f126890aSEmmanuel Vadot #address-cells = <1>; 214f126890aSEmmanuel Vadot #size-cells = <0>; 215f126890aSEmmanuel Vadot reg = <1>; 216f126890aSEmmanuel Vadot }; 217f126890aSEmmanuel Vadot }; 218f126890aSEmmanuel Vadot }; 219f126890aSEmmanuel Vadot 220f126890aSEmmanuel Vadot 221f126890aSEmmanuel Vadot mmc0: mmc@1c0f000 { 222f126890aSEmmanuel Vadot compatible = "allwinner,sun7i-a20-mmc"; 223f126890aSEmmanuel Vadot reg = <0x01c0f000 0x1000>; 224f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_MMC0>, 225f126890aSEmmanuel Vadot <&ccu CLK_MMC0>, 226f126890aSEmmanuel Vadot <&ccu CLK_MMC0_OUTPUT>, 227f126890aSEmmanuel Vadot <&ccu CLK_MMC0_SAMPLE>; 228f126890aSEmmanuel Vadot clock-names = "ahb", 229f126890aSEmmanuel Vadot "mmc", 230f126890aSEmmanuel Vadot "output", 231f126890aSEmmanuel Vadot "sample"; 232f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_MMC0>; 233f126890aSEmmanuel Vadot reset-names = "ahb"; 234f126890aSEmmanuel Vadot interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 235f126890aSEmmanuel Vadot pinctrl-names = "default"; 236f126890aSEmmanuel Vadot pinctrl-0 = <&mmc0_pins>; 237f126890aSEmmanuel Vadot status = "disabled"; 238f126890aSEmmanuel Vadot #address-cells = <1>; 239f126890aSEmmanuel Vadot #size-cells = <0>; 240f126890aSEmmanuel Vadot }; 241f126890aSEmmanuel Vadot 242f126890aSEmmanuel Vadot mmc1: mmc@1c10000 { 243f126890aSEmmanuel Vadot compatible = "allwinner,sun7i-a20-mmc"; 244f126890aSEmmanuel Vadot reg = <0x01c10000 0x1000>; 245f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_MMC1>, 246f126890aSEmmanuel Vadot <&ccu CLK_MMC1>, 247f126890aSEmmanuel Vadot <&ccu CLK_MMC1_OUTPUT>, 248f126890aSEmmanuel Vadot <&ccu CLK_MMC1_SAMPLE>; 249f126890aSEmmanuel Vadot clock-names = "ahb", 250f126890aSEmmanuel Vadot "mmc", 251f126890aSEmmanuel Vadot "output", 252f126890aSEmmanuel Vadot "sample"; 253f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_MMC1>; 254f126890aSEmmanuel Vadot reset-names = "ahb"; 255f126890aSEmmanuel Vadot interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 256f126890aSEmmanuel Vadot pinctrl-names = "default"; 257f126890aSEmmanuel Vadot pinctrl-0 = <&mmc1_pins>; 258f126890aSEmmanuel Vadot status = "disabled"; 259f126890aSEmmanuel Vadot #address-cells = <1>; 260f126890aSEmmanuel Vadot #size-cells = <0>; 261f126890aSEmmanuel Vadot }; 262f126890aSEmmanuel Vadot 263f126890aSEmmanuel Vadot mmc2: mmc@1c11000 { 264f126890aSEmmanuel Vadot compatible = "allwinner,sun7i-a20-mmc"; 265f126890aSEmmanuel Vadot reg = <0x01c11000 0x1000>; 266f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_MMC2>, 267f126890aSEmmanuel Vadot <&ccu CLK_MMC2>, 268f126890aSEmmanuel Vadot <&ccu CLK_MMC2_OUTPUT>, 269f126890aSEmmanuel Vadot <&ccu CLK_MMC2_SAMPLE>; 270f126890aSEmmanuel Vadot clock-names = "ahb", 271f126890aSEmmanuel Vadot "mmc", 272f126890aSEmmanuel Vadot "output", 273f126890aSEmmanuel Vadot "sample"; 274f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_MMC2>; 275f126890aSEmmanuel Vadot reset-names = "ahb"; 276f126890aSEmmanuel Vadot interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 277f126890aSEmmanuel Vadot status = "disabled"; 278f126890aSEmmanuel Vadot #address-cells = <1>; 279f126890aSEmmanuel Vadot #size-cells = <0>; 280f126890aSEmmanuel Vadot }; 281f126890aSEmmanuel Vadot 282f126890aSEmmanuel Vadot crypto@1c15000 { 283f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-crypto", 284f126890aSEmmanuel Vadot "allwinner,sun8i-a33-crypto"; 285f126890aSEmmanuel Vadot reg = <0x01c15000 0x1000>; 286f126890aSEmmanuel Vadot interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 287f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>; 288f126890aSEmmanuel Vadot clock-names = "ahb", "mod"; 289f126890aSEmmanuel Vadot dmas = <&dma 16>, <&dma 16>; 290f126890aSEmmanuel Vadot dma-names = "rx", "tx"; 291f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_CE>; 292f126890aSEmmanuel Vadot reset-names = "ahb"; 293f126890aSEmmanuel Vadot }; 294f126890aSEmmanuel Vadot 295f126890aSEmmanuel Vadot usb_otg: usb@1c19000 { 296f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-musb"; 297f126890aSEmmanuel Vadot reg = <0x01c19000 0x0400>; 298f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_OTG>; 299f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_OTG>; 300f126890aSEmmanuel Vadot interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 301f126890aSEmmanuel Vadot interrupt-names = "mc"; 302f126890aSEmmanuel Vadot phys = <&usbphy 0>; 303f126890aSEmmanuel Vadot phy-names = "usb"; 304f126890aSEmmanuel Vadot extcon = <&usbphy 0>; 305f126890aSEmmanuel Vadot status = "disabled"; 306f126890aSEmmanuel Vadot }; 307f126890aSEmmanuel Vadot 308f126890aSEmmanuel Vadot usbphy: phy@1c19400 { 309f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-usb-phy"; 310f126890aSEmmanuel Vadot reg = <0x01c19400 0x2c>, 311f126890aSEmmanuel Vadot <0x01c1a800 0x4>; 312f126890aSEmmanuel Vadot reg-names = "phy_ctrl", 313f126890aSEmmanuel Vadot "pmu0"; 314f126890aSEmmanuel Vadot clocks = <&ccu CLK_USB_PHY0>; 315f126890aSEmmanuel Vadot clock-names = "usb0_phy"; 316f126890aSEmmanuel Vadot resets = <&ccu RST_USB_PHY0>; 317f126890aSEmmanuel Vadot reset-names = "usb0_reset"; 318f126890aSEmmanuel Vadot status = "disabled"; 319f126890aSEmmanuel Vadot #phy-cells = <1>; 320f126890aSEmmanuel Vadot }; 321f126890aSEmmanuel Vadot 32284943d6fSEmmanuel Vadot ehci: usb@1c1a000 { 32384943d6fSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-ehci", "generic-ehci"; 32484943d6fSEmmanuel Vadot reg = <0x01c1a000 0x100>; 32584943d6fSEmmanuel Vadot interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 32684943d6fSEmmanuel Vadot clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>; 32784943d6fSEmmanuel Vadot resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>; 32884943d6fSEmmanuel Vadot phys = <&usbphy 0>; 32984943d6fSEmmanuel Vadot phy-names = "usb"; 33084943d6fSEmmanuel Vadot status = "disabled"; 33184943d6fSEmmanuel Vadot }; 33284943d6fSEmmanuel Vadot 33384943d6fSEmmanuel Vadot ohci: usb@1c1a400 { 33484943d6fSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-ohci", "generic-ohci"; 33584943d6fSEmmanuel Vadot reg = <0x01c1a400 0x100>; 33684943d6fSEmmanuel Vadot interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 33784943d6fSEmmanuel Vadot clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>, 33884943d6fSEmmanuel Vadot <&ccu CLK_USB_OHCI0>; 33984943d6fSEmmanuel Vadot resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>; 34084943d6fSEmmanuel Vadot phys = <&usbphy 0>; 34184943d6fSEmmanuel Vadot phy-names = "usb"; 34284943d6fSEmmanuel Vadot status = "disabled"; 34384943d6fSEmmanuel Vadot }; 34484943d6fSEmmanuel Vadot 345f126890aSEmmanuel Vadot ccu: clock@1c20000 { 346f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-ccu"; 347f126890aSEmmanuel Vadot reg = <0x01c20000 0x400>; 348f126890aSEmmanuel Vadot clocks = <&osc24M>, <&rtc CLK_OSC32K>; 349f126890aSEmmanuel Vadot clock-names = "hosc", "losc"; 350f126890aSEmmanuel Vadot #clock-cells = <1>; 351f126890aSEmmanuel Vadot #reset-cells = <1>; 352f126890aSEmmanuel Vadot }; 353f126890aSEmmanuel Vadot 354f126890aSEmmanuel Vadot rtc: rtc@1c20400 { 355f126890aSEmmanuel Vadot #clock-cells = <1>; 356f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3-rtc"; 357f126890aSEmmanuel Vadot reg = <0x01c20400 0x54>; 358f126890aSEmmanuel Vadot interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 359f126890aSEmmanuel Vadot <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 360f126890aSEmmanuel Vadot clocks = <&osc32k>; 361f126890aSEmmanuel Vadot clock-output-names = "osc32k", "osc32k-out"; 362f126890aSEmmanuel Vadot }; 363f126890aSEmmanuel Vadot 364f126890aSEmmanuel Vadot pio: pinctrl@1c20800 { 365f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-pinctrl"; 366f126890aSEmmanuel Vadot reg = <0x01c20800 0x400>; 367f126890aSEmmanuel Vadot interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 368f126890aSEmmanuel Vadot <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 369f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, 370f126890aSEmmanuel Vadot <&rtc CLK_OSC32K>; 371f126890aSEmmanuel Vadot clock-names = "apb", "hosc", "losc"; 372f126890aSEmmanuel Vadot gpio-controller; 373f126890aSEmmanuel Vadot #gpio-cells = <3>; 374f126890aSEmmanuel Vadot interrupt-controller; 375f126890aSEmmanuel Vadot #interrupt-cells = <3>; 376f126890aSEmmanuel Vadot 377f126890aSEmmanuel Vadot /omit-if-no-ref/ 378f126890aSEmmanuel Vadot csi0_mclk_pin: csi0-mclk-pin { 379f126890aSEmmanuel Vadot pins = "PE20"; 380f126890aSEmmanuel Vadot function = "csi_mipi"; 381f126890aSEmmanuel Vadot }; 382f126890aSEmmanuel Vadot 383f126890aSEmmanuel Vadot /omit-if-no-ref/ 384f126890aSEmmanuel Vadot csi1_8bit_pins: csi1-8bit-pins { 385f126890aSEmmanuel Vadot pins = "PE0", "PE2", "PE3", "PE8", "PE9", 386f126890aSEmmanuel Vadot "PE10", "PE11", "PE12", "PE13", "PE14", 387f126890aSEmmanuel Vadot "PE15"; 388f126890aSEmmanuel Vadot function = "csi"; 389f126890aSEmmanuel Vadot }; 390f126890aSEmmanuel Vadot 391f126890aSEmmanuel Vadot /omit-if-no-ref/ 392f126890aSEmmanuel Vadot csi1_mclk_pin: csi1-mclk-pin { 393f126890aSEmmanuel Vadot pins = "PE1"; 394f126890aSEmmanuel Vadot function = "csi"; 395f126890aSEmmanuel Vadot }; 396f126890aSEmmanuel Vadot 397f126890aSEmmanuel Vadot i2c0_pins: i2c0-pins { 398f126890aSEmmanuel Vadot pins = "PB6", "PB7"; 399f126890aSEmmanuel Vadot function = "i2c0"; 400f126890aSEmmanuel Vadot }; 401f126890aSEmmanuel Vadot 402f126890aSEmmanuel Vadot /omit-if-no-ref/ 403f126890aSEmmanuel Vadot i2c1_pb_pins: i2c1-pb-pins { 404f126890aSEmmanuel Vadot pins = "PB8", "PB9"; 405f126890aSEmmanuel Vadot function = "i2c1"; 406f126890aSEmmanuel Vadot }; 407f126890aSEmmanuel Vadot 408f126890aSEmmanuel Vadot /omit-if-no-ref/ 409f126890aSEmmanuel Vadot i2c1_pe_pins: i2c1-pe-pins { 410f126890aSEmmanuel Vadot pins = "PE21", "PE22"; 411f126890aSEmmanuel Vadot function = "i2c1"; 412f126890aSEmmanuel Vadot }; 413f126890aSEmmanuel Vadot 414f126890aSEmmanuel Vadot uart0_pb_pins: uart0-pb-pins { 415f126890aSEmmanuel Vadot pins = "PB8", "PB9"; 416f126890aSEmmanuel Vadot function = "uart0"; 417f126890aSEmmanuel Vadot }; 418f126890aSEmmanuel Vadot 419f126890aSEmmanuel Vadot uart2_pins: uart2-pins { 420f126890aSEmmanuel Vadot pins = "PB0", "PB1"; 421f126890aSEmmanuel Vadot function = "uart2"; 422f126890aSEmmanuel Vadot }; 423f126890aSEmmanuel Vadot 424f126890aSEmmanuel Vadot mmc0_pins: mmc0-pins { 425f126890aSEmmanuel Vadot pins = "PF0", "PF1", "PF2", "PF3", 426f126890aSEmmanuel Vadot "PF4", "PF5"; 427f126890aSEmmanuel Vadot function = "mmc0"; 428f126890aSEmmanuel Vadot drive-strength = <30>; 429f126890aSEmmanuel Vadot bias-pull-up; 430f126890aSEmmanuel Vadot }; 431f126890aSEmmanuel Vadot 432f126890aSEmmanuel Vadot mmc1_pins: mmc1-pins { 433f126890aSEmmanuel Vadot pins = "PG0", "PG1", "PG2", "PG3", 434f126890aSEmmanuel Vadot "PG4", "PG5"; 435f126890aSEmmanuel Vadot function = "mmc1"; 436f126890aSEmmanuel Vadot drive-strength = <30>; 437f126890aSEmmanuel Vadot bias-pull-up; 438f126890aSEmmanuel Vadot }; 439f126890aSEmmanuel Vadot 44084943d6fSEmmanuel Vadot /omit-if-no-ref/ 44184943d6fSEmmanuel Vadot pwm0_pin: pwm0-pin { 44284943d6fSEmmanuel Vadot pins = "PB4"; 44384943d6fSEmmanuel Vadot function = "pwm0"; 44484943d6fSEmmanuel Vadot }; 44584943d6fSEmmanuel Vadot 44684943d6fSEmmanuel Vadot /omit-if-no-ref/ 44784943d6fSEmmanuel Vadot pwm1_pin: pwm1-pin { 44884943d6fSEmmanuel Vadot pins = "PB5"; 44984943d6fSEmmanuel Vadot function = "pwm1"; 45084943d6fSEmmanuel Vadot }; 45184943d6fSEmmanuel Vadot 452f126890aSEmmanuel Vadot spi0_pins: spi0-pins { 453f126890aSEmmanuel Vadot pins = "PC0", "PC1", "PC2", "PC3"; 454f126890aSEmmanuel Vadot function = "spi0"; 455f126890aSEmmanuel Vadot }; 456f126890aSEmmanuel Vadot }; 457f126890aSEmmanuel Vadot 458f126890aSEmmanuel Vadot timer@1c20c00 { 459f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-timer"; 460f126890aSEmmanuel Vadot reg = <0x01c20c00 0xa0>; 461f126890aSEmmanuel Vadot interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 462f126890aSEmmanuel Vadot <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 463f126890aSEmmanuel Vadot <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 464f126890aSEmmanuel Vadot clocks = <&osc24M>; 465f126890aSEmmanuel Vadot }; 466f126890aSEmmanuel Vadot 467f126890aSEmmanuel Vadot wdt0: watchdog@1c20ca0 { 468f126890aSEmmanuel Vadot compatible = "allwinner,sun6i-a31-wdt"; 469f126890aSEmmanuel Vadot reg = <0x01c20ca0 0x20>; 470f126890aSEmmanuel Vadot interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 471f126890aSEmmanuel Vadot clocks = <&osc24M>; 472f126890aSEmmanuel Vadot }; 473f126890aSEmmanuel Vadot 474f126890aSEmmanuel Vadot pwm: pwm@1c21400 { 475f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-pwm", 476f126890aSEmmanuel Vadot "allwinner,sun7i-a20-pwm"; 477f126890aSEmmanuel Vadot reg = <0x01c21400 0xc>; 478f126890aSEmmanuel Vadot clocks = <&osc24M>; 479f126890aSEmmanuel Vadot #pwm-cells = <3>; 480f126890aSEmmanuel Vadot status = "disabled"; 481f126890aSEmmanuel Vadot }; 482f126890aSEmmanuel Vadot 483f126890aSEmmanuel Vadot lradc: lradc@1c22800 { 484f126890aSEmmanuel Vadot compatible = "allwinner,sun4i-a10-lradc-keys"; 485f126890aSEmmanuel Vadot reg = <0x01c22800 0x400>; 486f126890aSEmmanuel Vadot interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 487f126890aSEmmanuel Vadot status = "disabled"; 488f126890aSEmmanuel Vadot }; 489f126890aSEmmanuel Vadot 490f126890aSEmmanuel Vadot codec: codec@1c22c00 { 491f126890aSEmmanuel Vadot #sound-dai-cells = <0>; 492f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-codec"; 493f126890aSEmmanuel Vadot reg = <0x01c22c00 0x400>; 494f126890aSEmmanuel Vadot interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 495f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>; 496f126890aSEmmanuel Vadot clock-names = "apb", "codec"; 497f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_CODEC>; 498f126890aSEmmanuel Vadot dmas = <&dma 15>, <&dma 15>; 499f126890aSEmmanuel Vadot dma-names = "rx", "tx"; 500f126890aSEmmanuel Vadot allwinner,codec-analog-controls = <&codec_analog>; 501f126890aSEmmanuel Vadot status = "disabled"; 502f126890aSEmmanuel Vadot }; 503f126890aSEmmanuel Vadot 504f126890aSEmmanuel Vadot codec_analog: codec-analog@1c23000 { 505f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-codec-analog"; 506f126890aSEmmanuel Vadot reg = <0x01c23000 0x4>; 507f126890aSEmmanuel Vadot }; 508f126890aSEmmanuel Vadot 509f126890aSEmmanuel Vadot uart0: serial@1c28000 { 510f126890aSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 511f126890aSEmmanuel Vadot reg = <0x01c28000 0x400>; 512f126890aSEmmanuel Vadot interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 513f126890aSEmmanuel Vadot reg-shift = <2>; 514f126890aSEmmanuel Vadot reg-io-width = <4>; 515f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_UART0>; 516f126890aSEmmanuel Vadot dmas = <&dma 6>, <&dma 6>; 517f126890aSEmmanuel Vadot dma-names = "tx", "rx"; 518f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_UART0>; 519f126890aSEmmanuel Vadot status = "disabled"; 520f126890aSEmmanuel Vadot }; 521f126890aSEmmanuel Vadot 522f126890aSEmmanuel Vadot uart1: serial@1c28400 { 523f126890aSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 524f126890aSEmmanuel Vadot reg = <0x01c28400 0x400>; 525f126890aSEmmanuel Vadot interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 526f126890aSEmmanuel Vadot reg-shift = <2>; 527f126890aSEmmanuel Vadot reg-io-width = <4>; 528f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_UART1>; 529f126890aSEmmanuel Vadot dmas = <&dma 7>, <&dma 7>; 530f126890aSEmmanuel Vadot dma-names = "tx", "rx"; 531f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_UART1>; 532f126890aSEmmanuel Vadot status = "disabled"; 533f126890aSEmmanuel Vadot }; 534f126890aSEmmanuel Vadot 535f126890aSEmmanuel Vadot uart2: serial@1c28800 { 536f126890aSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 537f126890aSEmmanuel Vadot reg = <0x01c28800 0x400>; 538f126890aSEmmanuel Vadot interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 539f126890aSEmmanuel Vadot reg-shift = <2>; 540f126890aSEmmanuel Vadot reg-io-width = <4>; 541f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_UART2>; 542f126890aSEmmanuel Vadot dmas = <&dma 8>, <&dma 8>; 543f126890aSEmmanuel Vadot dma-names = "tx", "rx"; 544f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_UART2>; 545f126890aSEmmanuel Vadot pinctrl-0 = <&uart2_pins>; 546f126890aSEmmanuel Vadot pinctrl-names = "default"; 547f126890aSEmmanuel Vadot status = "disabled"; 548f126890aSEmmanuel Vadot }; 549f126890aSEmmanuel Vadot 550f126890aSEmmanuel Vadot i2c0: i2c@1c2ac00 { 551f126890aSEmmanuel Vadot compatible = "allwinner,sun6i-a31-i2c"; 552f126890aSEmmanuel Vadot reg = <0x01c2ac00 0x400>; 553f126890aSEmmanuel Vadot interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 554f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_I2C0>; 555f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_I2C0>; 556f126890aSEmmanuel Vadot pinctrl-names = "default"; 557f126890aSEmmanuel Vadot pinctrl-0 = <&i2c0_pins>; 558f126890aSEmmanuel Vadot status = "disabled"; 559f126890aSEmmanuel Vadot #address-cells = <1>; 560f126890aSEmmanuel Vadot #size-cells = <0>; 561f126890aSEmmanuel Vadot }; 562f126890aSEmmanuel Vadot 563f126890aSEmmanuel Vadot i2c1: i2c@1c2b000 { 564f126890aSEmmanuel Vadot compatible = "allwinner,sun6i-a31-i2c"; 565f126890aSEmmanuel Vadot reg = <0x01c2b000 0x400>; 566f126890aSEmmanuel Vadot interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 567f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_I2C1>; 568f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_I2C1>; 569f126890aSEmmanuel Vadot status = "disabled"; 570f126890aSEmmanuel Vadot #address-cells = <1>; 571f126890aSEmmanuel Vadot #size-cells = <0>; 572f126890aSEmmanuel Vadot }; 573f126890aSEmmanuel Vadot 574f126890aSEmmanuel Vadot emac: ethernet@1c30000 { 575f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-emac"; 576f126890aSEmmanuel Vadot syscon = <&syscon>; 577f126890aSEmmanuel Vadot reg = <0x01c30000 0x10000>; 578f126890aSEmmanuel Vadot interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 579f126890aSEmmanuel Vadot interrupt-names = "macirq"; 580f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_EMAC>; 581f126890aSEmmanuel Vadot reset-names = "stmmaceth"; 582f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_EMAC>; 583f126890aSEmmanuel Vadot clock-names = "stmmaceth"; 584f126890aSEmmanuel Vadot phy-handle = <&int_mii_phy>; 585f126890aSEmmanuel Vadot phy-mode = "mii"; 586f126890aSEmmanuel Vadot status = "disabled"; 587f126890aSEmmanuel Vadot 588f126890aSEmmanuel Vadot mdio: mdio { 589f126890aSEmmanuel Vadot #address-cells = <1>; 590f126890aSEmmanuel Vadot #size-cells = <0>; 591f126890aSEmmanuel Vadot compatible = "snps,dwmac-mdio"; 592f126890aSEmmanuel Vadot }; 593f126890aSEmmanuel Vadot 594f126890aSEmmanuel Vadot mdio_mux: mdio-mux { 595f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-mdio-mux"; 596f126890aSEmmanuel Vadot #address-cells = <1>; 597f126890aSEmmanuel Vadot #size-cells = <0>; 598f126890aSEmmanuel Vadot 599f126890aSEmmanuel Vadot mdio-parent-bus = <&mdio>; 600f126890aSEmmanuel Vadot /* Only one MDIO is usable at the time */ 601f126890aSEmmanuel Vadot internal_mdio: mdio@1 { 602f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-mdio-internal"; 603f126890aSEmmanuel Vadot reg = <1>; 604f126890aSEmmanuel Vadot #address-cells = <1>; 605f126890aSEmmanuel Vadot #size-cells = <0>; 606f126890aSEmmanuel Vadot 607f126890aSEmmanuel Vadot int_mii_phy: ethernet-phy@1 { 608f126890aSEmmanuel Vadot compatible = "ethernet-phy-ieee802.3-c22"; 609f126890aSEmmanuel Vadot reg = <1>; 610f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_EPHY>; 611f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_EPHY>; 612f126890aSEmmanuel Vadot }; 613f126890aSEmmanuel Vadot }; 614f126890aSEmmanuel Vadot }; 615f126890aSEmmanuel Vadot }; 616f126890aSEmmanuel Vadot 617f126890aSEmmanuel Vadot spi0: spi@1c68000 { 618f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-spi"; 619f126890aSEmmanuel Vadot reg = <0x01c68000 0x1000>; 620f126890aSEmmanuel Vadot interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 621f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>; 622f126890aSEmmanuel Vadot clock-names = "ahb", "mod"; 623f126890aSEmmanuel Vadot dmas = <&dma 23>, <&dma 23>; 624f126890aSEmmanuel Vadot dma-names = "rx", "tx"; 625f126890aSEmmanuel Vadot pinctrl-names = "default"; 626f126890aSEmmanuel Vadot pinctrl-0 = <&spi0_pins>; 627f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_SPI0>; 628f126890aSEmmanuel Vadot status = "disabled"; 629f126890aSEmmanuel Vadot #address-cells = <1>; 630f126890aSEmmanuel Vadot #size-cells = <0>; 631f126890aSEmmanuel Vadot }; 632f126890aSEmmanuel Vadot 633f126890aSEmmanuel Vadot gic: interrupt-controller@1c81000 { 634f126890aSEmmanuel Vadot compatible = "arm,gic-400"; 635f126890aSEmmanuel Vadot reg = <0x01c81000 0x1000>, 636f126890aSEmmanuel Vadot <0x01c82000 0x2000>, 637f126890aSEmmanuel Vadot <0x01c84000 0x2000>, 638f126890aSEmmanuel Vadot <0x01c86000 0x2000>; 639f126890aSEmmanuel Vadot interrupt-controller; 640f126890aSEmmanuel Vadot #interrupt-cells = <3>; 641f126890aSEmmanuel Vadot interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 642f126890aSEmmanuel Vadot }; 643f126890aSEmmanuel Vadot 644f126890aSEmmanuel Vadot csi1: camera@1cb4000 { 645f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-v3s-csi"; 646f126890aSEmmanuel Vadot reg = <0x01cb4000 0x3000>; 647f126890aSEmmanuel Vadot interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 648f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_CSI>, 649f126890aSEmmanuel Vadot <&ccu CLK_CSI1_SCLK>, 650f126890aSEmmanuel Vadot <&ccu CLK_DRAM_CSI>; 651f126890aSEmmanuel Vadot clock-names = "bus", "mod", "ram"; 652f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_CSI>; 653f126890aSEmmanuel Vadot status = "disabled"; 654f126890aSEmmanuel Vadot }; 655f126890aSEmmanuel Vadot }; 656f126890aSEmmanuel Vadot}; 657