16bc37facSAndre Przywara/* 26bc37facSAndre Przywara * Copyright (C) 2016 ARM Ltd. 36bc37facSAndre Przywara * based on the Allwinner H3 dtsi: 46bc37facSAndre Przywara * Copyright (C) 2015 Jens Kuske <jenskuske@gmail.com> 56bc37facSAndre Przywara * 66bc37facSAndre Przywara * This file is dual-licensed: you can use it either under the terms 76bc37facSAndre Przywara * of the GPL or the X11 license, at your option. Note that this dual 86bc37facSAndre Przywara * licensing only applies to this file, and not this project as a 96bc37facSAndre Przywara * whole. 106bc37facSAndre Przywara * 116bc37facSAndre Przywara * a) This file is free software; you can redistribute it and/or 126bc37facSAndre Przywara * modify it under the terms of the GNU General Public License as 136bc37facSAndre Przywara * published by the Free Software Foundation; either version 2 of the 146bc37facSAndre Przywara * License, or (at your option) any later version. 156bc37facSAndre Przywara * 166bc37facSAndre Przywara * This file is distributed in the hope that it will be useful, 176bc37facSAndre Przywara * but WITHOUT ANY WARRANTY; without even the implied warranty of 186bc37facSAndre Przywara * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 196bc37facSAndre Przywara * GNU General Public License for more details. 206bc37facSAndre Przywara * 216bc37facSAndre Przywara * Or, alternatively, 226bc37facSAndre Przywara * 236bc37facSAndre Przywara * b) Permission is hereby granted, free of charge, to any person 246bc37facSAndre Przywara * obtaining a copy of this software and associated documentation 256bc37facSAndre Przywara * files (the "Software"), to deal in the Software without 266bc37facSAndre Przywara * restriction, including without limitation the rights to use, 276bc37facSAndre Przywara * copy, modify, merge, publish, distribute, sublicense, and/or 286bc37facSAndre Przywara * sell copies of the Software, and to permit persons to whom the 296bc37facSAndre Przywara * Software is furnished to do so, subject to the following 306bc37facSAndre Przywara * conditions: 316bc37facSAndre Przywara * 326bc37facSAndre Przywara * The above copyright notice and this permission notice shall be 336bc37facSAndre Przywara * included in all copies or substantial portions of the Software. 346bc37facSAndre Przywara * 356bc37facSAndre Przywara * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 366bc37facSAndre Przywara * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 376bc37facSAndre Przywara * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 386bc37facSAndre Przywara * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 396bc37facSAndre Przywara * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 406bc37facSAndre Przywara * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 416bc37facSAndre Przywara * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 426bc37facSAndre Przywara * OTHER DEALINGS IN THE SOFTWARE. 436bc37facSAndre Przywara */ 446bc37facSAndre Przywara 45a004ee35SIcenowy Zheng#include <dt-bindings/clock/sun50i-a64-ccu.h> 462c796fc8SIcenowy Zheng#include <dt-bindings/clock/sun8i-de2.h> 47494d8a2cSChen-Yu Tsai#include <dt-bindings/clock/sun8i-r-ccu.h> 486bc37facSAndre Przywara#include <dt-bindings/interrupt-controller/arm-gic.h> 49a004ee35SIcenowy Zheng#include <dt-bindings/reset/sun50i-a64-ccu.h> 502c796fc8SIcenowy Zheng#include <dt-bindings/reset/sun8i-de2.h> 51871b5352SIcenowy Zheng#include <dt-bindings/reset/sun8i-r-ccu.h> 526bc37facSAndre Przywara 536bc37facSAndre Przywara/ { 546bc37facSAndre Przywara interrupt-parent = <&gic>; 556bc37facSAndre Przywara #address-cells = <1>; 566bc37facSAndre Przywara #size-cells = <1>; 576bc37facSAndre Przywara 58c1cff65fSHarald Geyer chosen { 59c1cff65fSHarald Geyer #address-cells = <1>; 60c1cff65fSHarald Geyer #size-cells = <1>; 61c1cff65fSHarald Geyer ranges; 62c1cff65fSHarald Geyer 63c1cff65fSHarald Geyer simplefb_lcd: framebuffer-lcd { 64c1cff65fSHarald Geyer compatible = "allwinner,simple-framebuffer", 65c1cff65fSHarald Geyer "simple-framebuffer"; 66c1cff65fSHarald Geyer allwinner,pipeline = "mixer0-lcd0"; 67c1cff65fSHarald Geyer clocks = <&ccu CLK_TCON0>, 682c796fc8SIcenowy Zheng <&display_clocks CLK_MIXER0>; 69c1cff65fSHarald Geyer status = "disabled"; 70c1cff65fSHarald Geyer }; 71fca63f58SIcenowy Zheng 72fca63f58SIcenowy Zheng simplefb_hdmi: framebuffer-hdmi { 73fca63f58SIcenowy Zheng compatible = "allwinner,simple-framebuffer", 74fca63f58SIcenowy Zheng "simple-framebuffer"; 75fca63f58SIcenowy Zheng allwinner,pipeline = "mixer1-lcd1-hdmi"; 76fca63f58SIcenowy Zheng clocks = <&display_clocks CLK_MIXER1>, 77fca63f58SIcenowy Zheng <&ccu CLK_TCON1>, <&ccu CLK_HDMI>; 78fca63f58SIcenowy Zheng status = "disabled"; 79fca63f58SIcenowy Zheng }; 80c1cff65fSHarald Geyer }; 81c1cff65fSHarald Geyer 826bc37facSAndre Przywara cpus { 836bc37facSAndre Przywara #address-cells = <1>; 846bc37facSAndre Przywara #size-cells = <0>; 856bc37facSAndre Przywara 866bc37facSAndre Przywara cpu0: cpu@0 { 876bc37facSAndre Przywara compatible = "arm,cortex-a53", "arm,armv8"; 886bc37facSAndre Przywara device_type = "cpu"; 896bc37facSAndre Przywara reg = <0>; 906bc37facSAndre Przywara enable-method = "psci"; 9139defc81SAndre Przywara next-level-cache = <&L2>; 926bc37facSAndre Przywara }; 936bc37facSAndre Przywara 946bc37facSAndre Przywara cpu1: cpu@1 { 956bc37facSAndre Przywara compatible = "arm,cortex-a53", "arm,armv8"; 966bc37facSAndre Przywara device_type = "cpu"; 976bc37facSAndre Przywara reg = <1>; 986bc37facSAndre Przywara enable-method = "psci"; 9939defc81SAndre Przywara next-level-cache = <&L2>; 1006bc37facSAndre Przywara }; 1016bc37facSAndre Przywara 1026bc37facSAndre Przywara cpu2: cpu@2 { 1036bc37facSAndre Przywara compatible = "arm,cortex-a53", "arm,armv8"; 1046bc37facSAndre Przywara device_type = "cpu"; 1056bc37facSAndre Przywara reg = <2>; 1066bc37facSAndre Przywara enable-method = "psci"; 10739defc81SAndre Przywara next-level-cache = <&L2>; 1086bc37facSAndre Przywara }; 1096bc37facSAndre Przywara 1106bc37facSAndre Przywara cpu3: cpu@3 { 1116bc37facSAndre Przywara compatible = "arm,cortex-a53", "arm,armv8"; 1126bc37facSAndre Przywara device_type = "cpu"; 1136bc37facSAndre Przywara reg = <3>; 1146bc37facSAndre Przywara enable-method = "psci"; 11539defc81SAndre Przywara next-level-cache = <&L2>; 11639defc81SAndre Przywara }; 11739defc81SAndre Przywara 11839defc81SAndre Przywara L2: l2-cache { 11939defc81SAndre Przywara compatible = "cache"; 12039defc81SAndre Przywara cache-level = <2>; 1216bc37facSAndre Przywara }; 1226bc37facSAndre Przywara }; 1236bc37facSAndre Przywara 124e85f28e0SJagan Teki de: display-engine { 125e85f28e0SJagan Teki compatible = "allwinner,sun50i-a64-display-engine"; 126e85f28e0SJagan Teki allwinner,pipelines = <&mixer0>, 127e85f28e0SJagan Teki <&mixer1>; 128e85f28e0SJagan Teki status = "disabled"; 129e85f28e0SJagan Teki }; 130e85f28e0SJagan Teki 1316bc37facSAndre Przywara osc24M: osc24M_clk { 1326bc37facSAndre Przywara #clock-cells = <0>; 1336bc37facSAndre Przywara compatible = "fixed-clock"; 1346bc37facSAndre Przywara clock-frequency = <24000000>; 1356bc37facSAndre Przywara clock-output-names = "osc24M"; 1366bc37facSAndre Przywara }; 1376bc37facSAndre Przywara 1386bc37facSAndre Przywara osc32k: osc32k_clk { 1396bc37facSAndre Przywara #clock-cells = <0>; 1406bc37facSAndre Przywara compatible = "fixed-clock"; 1416bc37facSAndre Przywara clock-frequency = <32768>; 1426bc37facSAndre Przywara clock-output-names = "osc32k"; 1436bc37facSAndre Przywara }; 1446bc37facSAndre Przywara 145791a9e00SIcenowy Zheng iosc: internal-osc-clk { 146791a9e00SIcenowy Zheng #clock-cells = <0>; 147791a9e00SIcenowy Zheng compatible = "fixed-clock"; 148791a9e00SIcenowy Zheng clock-frequency = <16000000>; 149791a9e00SIcenowy Zheng clock-accuracy = <300000000>; 150791a9e00SIcenowy Zheng clock-output-names = "iosc"; 151791a9e00SIcenowy Zheng }; 152791a9e00SIcenowy Zheng 1536bc37facSAndre Przywara psci { 1546bc37facSAndre Przywara compatible = "arm,psci-0.2"; 1556bc37facSAndre Przywara method = "smc"; 1566bc37facSAndre Przywara }; 1576bc37facSAndre Przywara 15878e07137SMarcus Cooper sound_spdif { 15978e07137SMarcus Cooper compatible = "simple-audio-card"; 16078e07137SMarcus Cooper simple-audio-card,name = "On-board SPDIF"; 16178e07137SMarcus Cooper 16278e07137SMarcus Cooper simple-audio-card,cpu { 16378e07137SMarcus Cooper sound-dai = <&spdif>; 16478e07137SMarcus Cooper }; 16578e07137SMarcus Cooper 16678e07137SMarcus Cooper simple-audio-card,codec { 16778e07137SMarcus Cooper sound-dai = <&spdif_out>; 16878e07137SMarcus Cooper }; 16978e07137SMarcus Cooper }; 17078e07137SMarcus Cooper 17178e07137SMarcus Cooper spdif_out: spdif-out { 17278e07137SMarcus Cooper #sound-dai-cells = <0>; 17378e07137SMarcus Cooper compatible = "linux,spdif-dit"; 17478e07137SMarcus Cooper }; 17578e07137SMarcus Cooper 1766bc37facSAndre Przywara timer { 1776bc37facSAndre Przywara compatible = "arm,armv8-timer"; 1786bc37facSAndre Przywara interrupts = <GIC_PPI 13 1796bc37facSAndre Przywara (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 1806bc37facSAndre Przywara <GIC_PPI 14 1816bc37facSAndre Przywara (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 1826bc37facSAndre Przywara <GIC_PPI 11 1836bc37facSAndre Przywara (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 1846bc37facSAndre Przywara <GIC_PPI 10 1856bc37facSAndre Przywara (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 1866bc37facSAndre Przywara }; 1876bc37facSAndre Przywara 1886bc37facSAndre Przywara soc { 1896bc37facSAndre Przywara compatible = "simple-bus"; 1906bc37facSAndre Przywara #address-cells = <1>; 1916bc37facSAndre Przywara #size-cells = <1>; 1926bc37facSAndre Przywara ranges; 1936bc37facSAndre Przywara 1942c796fc8SIcenowy Zheng de2@1000000 { 1952c796fc8SIcenowy Zheng compatible = "allwinner,sun50i-a64-de2"; 1962c796fc8SIcenowy Zheng reg = <0x1000000 0x400000>; 1972c796fc8SIcenowy Zheng allwinner,sram = <&de2_sram 1>; 1982c796fc8SIcenowy Zheng #address-cells = <1>; 1992c796fc8SIcenowy Zheng #size-cells = <1>; 2002c796fc8SIcenowy Zheng ranges = <0 0x1000000 0x400000>; 2012c796fc8SIcenowy Zheng 2022c796fc8SIcenowy Zheng display_clocks: clock@0 { 2032c796fc8SIcenowy Zheng compatible = "allwinner,sun50i-a64-de2-clk"; 2042c796fc8SIcenowy Zheng reg = <0x0 0x100000>; 2052c796fc8SIcenowy Zheng clocks = <&ccu CLK_DE>, 2062c796fc8SIcenowy Zheng <&ccu CLK_BUS_DE>; 2072c796fc8SIcenowy Zheng clock-names = "mod", 2082c796fc8SIcenowy Zheng "bus"; 2092c796fc8SIcenowy Zheng resets = <&ccu RST_BUS_DE>; 2102c796fc8SIcenowy Zheng #clock-cells = <1>; 2112c796fc8SIcenowy Zheng #reset-cells = <1>; 2122c796fc8SIcenowy Zheng }; 213e85f28e0SJagan Teki 214e85f28e0SJagan Teki mixer0: mixer@100000 { 215e85f28e0SJagan Teki compatible = "allwinner,sun50i-a64-de2-mixer-0"; 216e85f28e0SJagan Teki reg = <0x100000 0x100000>; 217e85f28e0SJagan Teki clocks = <&display_clocks CLK_BUS_MIXER0>, 218e85f28e0SJagan Teki <&display_clocks CLK_MIXER0>; 219e85f28e0SJagan Teki clock-names = "bus", 220e85f28e0SJagan Teki "mod"; 221e85f28e0SJagan Teki resets = <&display_clocks RST_MIXER0>; 222e85f28e0SJagan Teki 223e85f28e0SJagan Teki ports { 224e85f28e0SJagan Teki #address-cells = <1>; 225e85f28e0SJagan Teki #size-cells = <0>; 226e85f28e0SJagan Teki 227e85f28e0SJagan Teki mixer0_out: port@1 { 228e85f28e0SJagan Teki reg = <1>; 229e85f28e0SJagan Teki 230e85f28e0SJagan Teki mixer0_out_tcon0: endpoint { 231e85f28e0SJagan Teki remote-endpoint = <&tcon0_in_mixer0>; 232e85f28e0SJagan Teki }; 233e85f28e0SJagan Teki }; 234e85f28e0SJagan Teki }; 235e85f28e0SJagan Teki }; 236e85f28e0SJagan Teki 237e85f28e0SJagan Teki mixer1: mixer@200000 { 238e85f28e0SJagan Teki compatible = "allwinner,sun50i-a64-de2-mixer-1"; 239e85f28e0SJagan Teki reg = <0x200000 0x100000>; 240e85f28e0SJagan Teki clocks = <&display_clocks CLK_BUS_MIXER1>, 241e85f28e0SJagan Teki <&display_clocks CLK_MIXER1>; 242e85f28e0SJagan Teki clock-names = "bus", 243e85f28e0SJagan Teki "mod"; 244e85f28e0SJagan Teki resets = <&display_clocks RST_MIXER1>; 245e85f28e0SJagan Teki 246e85f28e0SJagan Teki ports { 247e85f28e0SJagan Teki #address-cells = <1>; 248e85f28e0SJagan Teki #size-cells = <0>; 249e85f28e0SJagan Teki 250e85f28e0SJagan Teki mixer1_out: port@1 { 251e85f28e0SJagan Teki reg = <1>; 252e85f28e0SJagan Teki 253e85f28e0SJagan Teki mixer1_out_tcon1: endpoint { 254e85f28e0SJagan Teki remote-endpoint = <&tcon1_in_mixer1>; 255e85f28e0SJagan Teki }; 256e85f28e0SJagan Teki }; 257e85f28e0SJagan Teki }; 258e85f28e0SJagan Teki }; 2592c796fc8SIcenowy Zheng }; 2602c796fc8SIcenowy Zheng 26179b95360SCorentin Labbe syscon: syscon@1c00000 { 2621f1f5183SIcenowy Zheng compatible = "allwinner,sun50i-a64-system-control"; 26379b95360SCorentin Labbe reg = <0x01c00000 0x1000>; 2641f1f5183SIcenowy Zheng #address-cells = <1>; 2651f1f5183SIcenowy Zheng #size-cells = <1>; 2661f1f5183SIcenowy Zheng ranges; 2671f1f5183SIcenowy Zheng 2681f1f5183SIcenowy Zheng sram_c: sram@18000 { 2691f1f5183SIcenowy Zheng compatible = "mmio-sram"; 2701f1f5183SIcenowy Zheng reg = <0x00018000 0x28000>; 2711f1f5183SIcenowy Zheng #address-cells = <1>; 2721f1f5183SIcenowy Zheng #size-cells = <1>; 2731f1f5183SIcenowy Zheng ranges = <0 0x00018000 0x28000>; 2741f1f5183SIcenowy Zheng 2751f1f5183SIcenowy Zheng de2_sram: sram-section@0 { 2761f1f5183SIcenowy Zheng compatible = "allwinner,sun50i-a64-sram-c"; 2771f1f5183SIcenowy Zheng reg = <0x0000 0x28000>; 2781f1f5183SIcenowy Zheng }; 2791f1f5183SIcenowy Zheng }; 28079b95360SCorentin Labbe }; 28179b95360SCorentin Labbe 282c32637e0SStefan Brüns dma: dma-controller@1c02000 { 283c32637e0SStefan Brüns compatible = "allwinner,sun50i-a64-dma"; 284c32637e0SStefan Brüns reg = <0x01c02000 0x1000>; 285c32637e0SStefan Brüns interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 286c32637e0SStefan Brüns clocks = <&ccu CLK_BUS_DMA>; 287c32637e0SStefan Brüns dma-channels = <8>; 288c32637e0SStefan Brüns dma-requests = <27>; 289c32637e0SStefan Brüns resets = <&ccu RST_BUS_DMA>; 290c32637e0SStefan Brüns #dma-cells = <1>; 291c32637e0SStefan Brüns }; 292c32637e0SStefan Brüns 293e85f28e0SJagan Teki tcon0: lcd-controller@1c0c000 { 294e85f28e0SJagan Teki compatible = "allwinner,sun50i-a64-tcon-lcd", 295e85f28e0SJagan Teki "allwinner,sun8i-a83t-tcon-lcd"; 296e85f28e0SJagan Teki reg = <0x01c0c000 0x1000>; 297e85f28e0SJagan Teki interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 298e85f28e0SJagan Teki clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>; 299e85f28e0SJagan Teki clock-names = "ahb", "tcon-ch0"; 300e85f28e0SJagan Teki clock-output-names = "tcon-pixel-clock"; 301e85f28e0SJagan Teki resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>; 302e85f28e0SJagan Teki reset-names = "lcd", "lvds"; 303e85f28e0SJagan Teki 304e85f28e0SJagan Teki ports { 305e85f28e0SJagan Teki #address-cells = <1>; 306e85f28e0SJagan Teki #size-cells = <0>; 307e85f28e0SJagan Teki 308e85f28e0SJagan Teki tcon0_in: port@0 { 309e85f28e0SJagan Teki #address-cells = <1>; 310e85f28e0SJagan Teki #size-cells = <0>; 311e85f28e0SJagan Teki reg = <0>; 312e85f28e0SJagan Teki 313e85f28e0SJagan Teki tcon0_in_mixer0: endpoint@0 { 314e85f28e0SJagan Teki reg = <0>; 315e85f28e0SJagan Teki remote-endpoint = <&mixer0_out_tcon0>; 316e85f28e0SJagan Teki }; 317e85f28e0SJagan Teki }; 318e85f28e0SJagan Teki 319e85f28e0SJagan Teki tcon0_out: port@1 { 320e85f28e0SJagan Teki #address-cells = <1>; 321e85f28e0SJagan Teki #size-cells = <0>; 322e85f28e0SJagan Teki reg = <1>; 323e85f28e0SJagan Teki }; 324e85f28e0SJagan Teki }; 325e85f28e0SJagan Teki }; 326e85f28e0SJagan Teki 327e85f28e0SJagan Teki tcon1: lcd-controller@1c0d000 { 328e85f28e0SJagan Teki compatible = "allwinner,sun50i-a64-tcon-tv", 329e85f28e0SJagan Teki "allwinner,sun8i-a83t-tcon-tv"; 330e85f28e0SJagan Teki reg = <0x01c0d000 0x1000>; 331e85f28e0SJagan Teki interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 332e85f28e0SJagan Teki clocks = <&ccu CLK_BUS_TCON1>, <&ccu CLK_TCON1>; 333e85f28e0SJagan Teki clock-names = "ahb", "tcon-ch1"; 334e85f28e0SJagan Teki resets = <&ccu RST_BUS_TCON1>; 335e85f28e0SJagan Teki reset-names = "lcd"; 336e85f28e0SJagan Teki 337e85f28e0SJagan Teki ports { 338e85f28e0SJagan Teki #address-cells = <1>; 339e85f28e0SJagan Teki #size-cells = <0>; 340e85f28e0SJagan Teki 341e85f28e0SJagan Teki tcon1_in: port@0 { 342e85f28e0SJagan Teki reg = <0>; 343e85f28e0SJagan Teki 344e85f28e0SJagan Teki tcon1_in_mixer1: endpoint { 345e85f28e0SJagan Teki remote-endpoint = <&mixer1_out_tcon1>; 346e85f28e0SJagan Teki }; 347e85f28e0SJagan Teki }; 348e85f28e0SJagan Teki 349e85f28e0SJagan Teki tcon1_out: port@1 { 350e85f28e0SJagan Teki #address-cells = <1>; 351e85f28e0SJagan Teki #size-cells = <0>; 352e85f28e0SJagan Teki reg = <1>; 353e85f28e0SJagan Teki 354e85f28e0SJagan Teki tcon1_out_hdmi: endpoint@1 { 355e85f28e0SJagan Teki reg = <1>; 356e85f28e0SJagan Teki remote-endpoint = <&hdmi_in_tcon1>; 357e85f28e0SJagan Teki }; 358e85f28e0SJagan Teki }; 359e85f28e0SJagan Teki }; 360e85f28e0SJagan Teki }; 361e85f28e0SJagan Teki 362f3dff347SAndre Przywara mmc0: mmc@1c0f000 { 363f3dff347SAndre Przywara compatible = "allwinner,sun50i-a64-mmc"; 364f3dff347SAndre Przywara reg = <0x01c0f000 0x1000>; 365f3dff347SAndre Przywara clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>; 366f3dff347SAndre Przywara clock-names = "ahb", "mmc"; 367f3dff347SAndre Przywara resets = <&ccu RST_BUS_MMC0>; 368f3dff347SAndre Przywara reset-names = "ahb"; 369f3dff347SAndre Przywara interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 37022be992fSMaxime Ripard max-frequency = <150000000>; 371f3dff347SAndre Przywara status = "disabled"; 372f3dff347SAndre Przywara #address-cells = <1>; 373f3dff347SAndre Przywara #size-cells = <0>; 374f3dff347SAndre Przywara }; 375f3dff347SAndre Przywara 376f3dff347SAndre Przywara mmc1: mmc@1c10000 { 377f3dff347SAndre Przywara compatible = "allwinner,sun50i-a64-mmc"; 378f3dff347SAndre Przywara reg = <0x01c10000 0x1000>; 379f3dff347SAndre Przywara clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>; 380f3dff347SAndre Przywara clock-names = "ahb", "mmc"; 381f3dff347SAndre Przywara resets = <&ccu RST_BUS_MMC1>; 382f3dff347SAndre Przywara reset-names = "ahb"; 383f3dff347SAndre Przywara interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 38422be992fSMaxime Ripard max-frequency = <150000000>; 385f3dff347SAndre Przywara status = "disabled"; 386f3dff347SAndre Przywara #address-cells = <1>; 387f3dff347SAndre Przywara #size-cells = <0>; 388f3dff347SAndre Przywara }; 389f3dff347SAndre Przywara 390f3dff347SAndre Przywara mmc2: mmc@1c11000 { 391f3dff347SAndre Przywara compatible = "allwinner,sun50i-a64-emmc"; 392f3dff347SAndre Przywara reg = <0x01c11000 0x1000>; 393f3dff347SAndre Przywara clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>; 394f3dff347SAndre Przywara clock-names = "ahb", "mmc"; 395f3dff347SAndre Przywara resets = <&ccu RST_BUS_MMC2>; 396f3dff347SAndre Przywara reset-names = "ahb"; 397f3dff347SAndre Przywara interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 39822be992fSMaxime Ripard max-frequency = <200000000>; 399f3dff347SAndre Przywara status = "disabled"; 400f3dff347SAndre Przywara #address-cells = <1>; 401f3dff347SAndre Przywara #size-cells = <0>; 402f3dff347SAndre Przywara }; 403f3dff347SAndre Przywara 404ac947b17SEmmanuel Vadot sid: eeprom@1c14000 { 405ac947b17SEmmanuel Vadot compatible = "allwinner,sun50i-a64-sid"; 406ac947b17SEmmanuel Vadot reg = <0x1c14000 0x400>; 407ac947b17SEmmanuel Vadot }; 408ac947b17SEmmanuel Vadot 409d6c9da12SCorentin LABBE usb_otg: usb@1c19000 { 410972a3ecdSIcenowy Zheng compatible = "allwinner,sun8i-a33-musb"; 411972a3ecdSIcenowy Zheng reg = <0x01c19000 0x0400>; 412972a3ecdSIcenowy Zheng clocks = <&ccu CLK_BUS_OTG>; 413972a3ecdSIcenowy Zheng resets = <&ccu RST_BUS_OTG>; 414972a3ecdSIcenowy Zheng interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 415972a3ecdSIcenowy Zheng interrupt-names = "mc"; 416972a3ecdSIcenowy Zheng phys = <&usbphy 0>; 417972a3ecdSIcenowy Zheng phy-names = "usb"; 418972a3ecdSIcenowy Zheng extcon = <&usbphy 0>; 419972a3ecdSIcenowy Zheng status = "disabled"; 420972a3ecdSIcenowy Zheng }; 421972a3ecdSIcenowy Zheng 422d6c9da12SCorentin LABBE usbphy: phy@1c19400 { 423a004ee35SIcenowy Zheng compatible = "allwinner,sun50i-a64-usb-phy"; 424a004ee35SIcenowy Zheng reg = <0x01c19400 0x14>, 4250d984797SIcenowy Zheng <0x01c1a800 0x4>, 426a004ee35SIcenowy Zheng <0x01c1b800 0x4>; 427a004ee35SIcenowy Zheng reg-names = "phy_ctrl", 4280d984797SIcenowy Zheng "pmu0", 429a004ee35SIcenowy Zheng "pmu1"; 430a004ee35SIcenowy Zheng clocks = <&ccu CLK_USB_PHY0>, 431a004ee35SIcenowy Zheng <&ccu CLK_USB_PHY1>; 432a004ee35SIcenowy Zheng clock-names = "usb0_phy", 433a004ee35SIcenowy Zheng "usb1_phy"; 434a004ee35SIcenowy Zheng resets = <&ccu RST_USB_PHY0>, 435a004ee35SIcenowy Zheng <&ccu RST_USB_PHY1>; 436a004ee35SIcenowy Zheng reset-names = "usb0_reset", 437a004ee35SIcenowy Zheng "usb1_reset"; 438a004ee35SIcenowy Zheng status = "disabled"; 439a004ee35SIcenowy Zheng #phy-cells = <1>; 440a004ee35SIcenowy Zheng }; 441a004ee35SIcenowy Zheng 442d6c9da12SCorentin LABBE ehci0: usb@1c1a000 { 443dc03a047SIcenowy Zheng compatible = "allwinner,sun50i-a64-ehci", "generic-ehci"; 444dc03a047SIcenowy Zheng reg = <0x01c1a000 0x100>; 445dc03a047SIcenowy Zheng interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 446dc03a047SIcenowy Zheng clocks = <&ccu CLK_BUS_OHCI0>, 447dc03a047SIcenowy Zheng <&ccu CLK_BUS_EHCI0>, 448dc03a047SIcenowy Zheng <&ccu CLK_USB_OHCI0>; 449dc03a047SIcenowy Zheng resets = <&ccu RST_BUS_OHCI0>, 450dc03a047SIcenowy Zheng <&ccu RST_BUS_EHCI0>; 451dc03a047SIcenowy Zheng status = "disabled"; 452dc03a047SIcenowy Zheng }; 453dc03a047SIcenowy Zheng 454d6c9da12SCorentin LABBE ohci0: usb@1c1a400 { 455dc03a047SIcenowy Zheng compatible = "allwinner,sun50i-a64-ohci", "generic-ohci"; 456dc03a047SIcenowy Zheng reg = <0x01c1a400 0x100>; 457dc03a047SIcenowy Zheng interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 458dc03a047SIcenowy Zheng clocks = <&ccu CLK_BUS_OHCI0>, 459dc03a047SIcenowy Zheng <&ccu CLK_USB_OHCI0>; 460dc03a047SIcenowy Zheng resets = <&ccu RST_BUS_OHCI0>; 461dc03a047SIcenowy Zheng status = "disabled"; 462dc03a047SIcenowy Zheng }; 463dc03a047SIcenowy Zheng 464d6c9da12SCorentin LABBE ehci1: usb@1c1b000 { 465a004ee35SIcenowy Zheng compatible = "allwinner,sun50i-a64-ehci", "generic-ehci"; 466a004ee35SIcenowy Zheng reg = <0x01c1b000 0x100>; 467a004ee35SIcenowy Zheng interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 468a004ee35SIcenowy Zheng clocks = <&ccu CLK_BUS_OHCI1>, 469a004ee35SIcenowy Zheng <&ccu CLK_BUS_EHCI1>, 470a004ee35SIcenowy Zheng <&ccu CLK_USB_OHCI1>; 471a004ee35SIcenowy Zheng resets = <&ccu RST_BUS_OHCI1>, 472a004ee35SIcenowy Zheng <&ccu RST_BUS_EHCI1>; 473a004ee35SIcenowy Zheng phys = <&usbphy 1>; 474a004ee35SIcenowy Zheng phy-names = "usb"; 475a004ee35SIcenowy Zheng status = "disabled"; 476a004ee35SIcenowy Zheng }; 477a004ee35SIcenowy Zheng 478d6c9da12SCorentin LABBE ohci1: usb@1c1b400 { 479a004ee35SIcenowy Zheng compatible = "allwinner,sun50i-a64-ohci", "generic-ohci"; 480a004ee35SIcenowy Zheng reg = <0x01c1b400 0x100>; 481a004ee35SIcenowy Zheng interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 482a004ee35SIcenowy Zheng clocks = <&ccu CLK_BUS_OHCI1>, 483a004ee35SIcenowy Zheng <&ccu CLK_USB_OHCI1>; 484a004ee35SIcenowy Zheng resets = <&ccu RST_BUS_OHCI1>; 485a004ee35SIcenowy Zheng phys = <&usbphy 1>; 486a004ee35SIcenowy Zheng phy-names = "usb"; 487a004ee35SIcenowy Zheng status = "disabled"; 488a004ee35SIcenowy Zheng }; 489a004ee35SIcenowy Zheng 490d6c9da12SCorentin LABBE ccu: clock@1c20000 { 4916bc37facSAndre Przywara compatible = "allwinner,sun50i-a64-ccu"; 4926bc37facSAndre Przywara reg = <0x01c20000 0x400>; 4936bc37facSAndre Przywara clocks = <&osc24M>, <&osc32k>; 4946bc37facSAndre Przywara clock-names = "hosc", "losc"; 4956bc37facSAndre Przywara #clock-cells = <1>; 4966bc37facSAndre Przywara #reset-cells = <1>; 4976bc37facSAndre Przywara }; 4986bc37facSAndre Przywara 4996bc37facSAndre Przywara pio: pinctrl@1c20800 { 5006bc37facSAndre Przywara compatible = "allwinner,sun50i-a64-pinctrl"; 5016bc37facSAndre Przywara reg = <0x01c20800 0x400>; 5026bc37facSAndre Przywara interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 5036bc37facSAndre Przywara <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, 5046bc37facSAndre Przywara <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 505f98121f3SArnd Bergmann clocks = <&ccu 58>; 5066bc37facSAndre Przywara gpio-controller; 5076bc37facSAndre Przywara #gpio-cells = <3>; 5086bc37facSAndre Przywara interrupt-controller; 5096bc37facSAndre Przywara #interrupt-cells = <3>; 5106bc37facSAndre Przywara 51111239fe6SHarald Geyer i2c0_pins: i2c0_pins { 51211239fe6SHarald Geyer pins = "PH0", "PH1"; 51311239fe6SHarald Geyer function = "i2c0"; 51411239fe6SHarald Geyer }; 51511239fe6SHarald Geyer 5166bc37facSAndre Przywara i2c1_pins: i2c1_pins { 5176bc37facSAndre Przywara pins = "PH2", "PH3"; 5186bc37facSAndre Przywara function = "i2c1"; 5196bc37facSAndre Przywara }; 5206bc37facSAndre Przywara 521a3e8f492SMaxime Ripard mmc0_pins: mmc0-pins { 522a3e8f492SMaxime Ripard pins = "PF0", "PF1", "PF2", "PF3", 523a3e8f492SMaxime Ripard "PF4", "PF5"; 524a3e8f492SMaxime Ripard function = "mmc0"; 525a3e8f492SMaxime Ripard drive-strength = <30>; 526a3e8f492SMaxime Ripard bias-pull-up; 527a3e8f492SMaxime Ripard }; 528a3e8f492SMaxime Ripard 529a3e8f492SMaxime Ripard mmc1_pins: mmc1-pins { 530a3e8f492SMaxime Ripard pins = "PG0", "PG1", "PG2", "PG3", 531a3e8f492SMaxime Ripard "PG4", "PG5"; 532a3e8f492SMaxime Ripard function = "mmc1"; 533a3e8f492SMaxime Ripard drive-strength = <30>; 534a3e8f492SMaxime Ripard bias-pull-up; 535a3e8f492SMaxime Ripard }; 536a3e8f492SMaxime Ripard 537a3e8f492SMaxime Ripard mmc2_pins: mmc2-pins { 538fa59dd2eSChen-Yu Tsai pins = "PC5", "PC6", "PC8", "PC9", 539a3e8f492SMaxime Ripard "PC10","PC11", "PC12", "PC13", 540a3e8f492SMaxime Ripard "PC14", "PC15", "PC16"; 541a3e8f492SMaxime Ripard function = "mmc2"; 542a3e8f492SMaxime Ripard drive-strength = <30>; 543a3e8f492SMaxime Ripard bias-pull-up; 544a3e8f492SMaxime Ripard }; 545a3e8f492SMaxime Ripard 546fa59dd2eSChen-Yu Tsai mmc2_ds_pin: mmc2-ds-pin { 547fa59dd2eSChen-Yu Tsai pins = "PC1"; 548fa59dd2eSChen-Yu Tsai function = "mmc2"; 549fa59dd2eSChen-Yu Tsai drive-strength = <30>; 550fa59dd2eSChen-Yu Tsai bias-pull-up; 551fa59dd2eSChen-Yu Tsai }; 552fa59dd2eSChen-Yu Tsai 553b5df280bSAndre Przywara pwm_pin: pwm_pin { 554b5df280bSAndre Przywara pins = "PD22"; 555b5df280bSAndre Przywara function = "pwm"; 556b5df280bSAndre Przywara }; 557b5df280bSAndre Przywara 558e53f67e9SCorentin Labbe rmii_pins: rmii_pins { 559e53f67e9SCorentin Labbe pins = "PD10", "PD11", "PD13", "PD14", "PD17", 560e53f67e9SCorentin Labbe "PD18", "PD19", "PD20", "PD22", "PD23"; 561e53f67e9SCorentin Labbe function = "emac"; 562e53f67e9SCorentin Labbe drive-strength = <40>; 563e53f67e9SCorentin Labbe }; 564e53f67e9SCorentin Labbe 565e53f67e9SCorentin Labbe rgmii_pins: rgmii_pins { 566e53f67e9SCorentin Labbe pins = "PD8", "PD9", "PD10", "PD11", "PD12", 567e53f67e9SCorentin Labbe "PD13", "PD15", "PD16", "PD17", "PD18", 568e53f67e9SCorentin Labbe "PD19", "PD20", "PD21", "PD22", "PD23"; 569e53f67e9SCorentin Labbe function = "emac"; 570e53f67e9SCorentin Labbe drive-strength = <40>; 571e53f67e9SCorentin Labbe }; 572e53f67e9SCorentin Labbe 573b399d2acSMarcus Cooper spdif_tx_pin: spdif { 574b399d2acSMarcus Cooper pins = "PH8"; 575b399d2acSMarcus Cooper function = "spdif"; 576b399d2acSMarcus Cooper }; 577b399d2acSMarcus Cooper 578b518bb15SStefan Brüns spi0_pins: spi0 { 579b518bb15SStefan Brüns pins = "PC0", "PC1", "PC2", "PC3"; 580b518bb15SStefan Brüns function = "spi0"; 581b518bb15SStefan Brüns }; 582b518bb15SStefan Brüns 583b518bb15SStefan Brüns spi1_pins: spi1 { 584b518bb15SStefan Brüns pins = "PD0", "PD1", "PD2", "PD3"; 585b518bb15SStefan Brüns function = "spi1"; 586b518bb15SStefan Brüns }; 587b518bb15SStefan Brüns 588d91ebb95SChen-Yu Tsai uart0_pb_pins: uart0-pb-pins { 5896bc37facSAndre Przywara pins = "PB8", "PB9"; 5906bc37facSAndre Przywara function = "uart0"; 5916bc37facSAndre Przywara }; 592e7ba733dSAndre Przywara 593e7ba733dSAndre Przywara uart1_pins: uart1_pins { 594e7ba733dSAndre Przywara pins = "PG6", "PG7"; 595e7ba733dSAndre Przywara function = "uart1"; 596e7ba733dSAndre Przywara }; 597e7ba733dSAndre Przywara 598e7ba733dSAndre Przywara uart1_rts_cts_pins: uart1_rts_cts_pins { 599e7ba733dSAndre Przywara pins = "PG8", "PG9"; 600e7ba733dSAndre Przywara function = "uart1"; 601e7ba733dSAndre Przywara }; 60279825719SAndreas Färber 60379825719SAndreas Färber uart2_pins: uart2-pins { 60479825719SAndreas Färber pins = "PB0", "PB1"; 60579825719SAndreas Färber function = "uart2"; 60679825719SAndreas Färber }; 6072273aa16SAndreas Färber 6082273aa16SAndreas Färber uart3_pins: uart3-pins { 6092273aa16SAndreas Färber pins = "PD0", "PD1"; 6102273aa16SAndreas Färber function = "uart3"; 6112273aa16SAndreas Färber }; 6122273aa16SAndreas Färber 6132273aa16SAndreas Färber uart4_pins: uart4-pins { 6142273aa16SAndreas Färber pins = "PD2", "PD3"; 6152273aa16SAndreas Färber function = "uart4"; 6162273aa16SAndreas Färber }; 6172273aa16SAndreas Färber 6182273aa16SAndreas Färber uart4_rts_cts_pins: uart4-rts-cts-pins { 6192273aa16SAndreas Färber pins = "PD4", "PD5"; 6202273aa16SAndreas Färber function = "uart4"; 6212273aa16SAndreas Färber }; 6226bc37facSAndre Przywara }; 6236bc37facSAndre Przywara 624b399d2acSMarcus Cooper spdif: spdif@1c21000 { 625b399d2acSMarcus Cooper #sound-dai-cells = <0>; 626b399d2acSMarcus Cooper compatible = "allwinner,sun50i-a64-spdif", 627b399d2acSMarcus Cooper "allwinner,sun8i-h3-spdif"; 628b399d2acSMarcus Cooper reg = <0x01c21000 0x400>; 629b399d2acSMarcus Cooper interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 630b399d2acSMarcus Cooper clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>; 631b399d2acSMarcus Cooper resets = <&ccu RST_BUS_SPDIF>; 632b399d2acSMarcus Cooper clock-names = "apb", "spdif"; 633b399d2acSMarcus Cooper dmas = <&dma 2>; 634b399d2acSMarcus Cooper dma-names = "tx"; 635b399d2acSMarcus Cooper pinctrl-names = "default"; 636b399d2acSMarcus Cooper pinctrl-0 = <&spdif_tx_pin>; 637b399d2acSMarcus Cooper status = "disabled"; 638b399d2acSMarcus Cooper }; 639b399d2acSMarcus Cooper 6401c92c009SMarcus Cooper i2s0: i2s@1c22000 { 6411c92c009SMarcus Cooper #sound-dai-cells = <0>; 6421c92c009SMarcus Cooper compatible = "allwinner,sun50i-a64-i2s", 6431c92c009SMarcus Cooper "allwinner,sun8i-h3-i2s"; 6441c92c009SMarcus Cooper reg = <0x01c22000 0x400>; 6451c92c009SMarcus Cooper interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 6461c92c009SMarcus Cooper clocks = <&ccu CLK_BUS_I2S0>, <&ccu CLK_I2S0>; 6471c92c009SMarcus Cooper clock-names = "apb", "mod"; 6481c92c009SMarcus Cooper resets = <&ccu RST_BUS_I2S0>; 6491c92c009SMarcus Cooper dma-names = "rx", "tx"; 6501c92c009SMarcus Cooper dmas = <&dma 3>, <&dma 3>; 6511c92c009SMarcus Cooper status = "disabled"; 6521c92c009SMarcus Cooper }; 6531c92c009SMarcus Cooper 6541c92c009SMarcus Cooper i2s1: i2s@1c22400 { 6551c92c009SMarcus Cooper #sound-dai-cells = <0>; 6561c92c009SMarcus Cooper compatible = "allwinner,sun50i-a64-i2s", 6571c92c009SMarcus Cooper "allwinner,sun8i-h3-i2s"; 6581c92c009SMarcus Cooper reg = <0x01c22400 0x400>; 6591c92c009SMarcus Cooper interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 6601c92c009SMarcus Cooper clocks = <&ccu CLK_BUS_I2S1>, <&ccu CLK_I2S1>; 6611c92c009SMarcus Cooper clock-names = "apb", "mod"; 6621c92c009SMarcus Cooper resets = <&ccu RST_BUS_I2S1>; 6631c92c009SMarcus Cooper dma-names = "rx", "tx"; 6641c92c009SMarcus Cooper dmas = <&dma 4>, <&dma 4>; 6651c92c009SMarcus Cooper status = "disabled"; 6661c92c009SMarcus Cooper }; 6671c92c009SMarcus Cooper 6686bc37facSAndre Przywara uart0: serial@1c28000 { 6696bc37facSAndre Przywara compatible = "snps,dw-apb-uart"; 6706bc37facSAndre Przywara reg = <0x01c28000 0x400>; 6716bc37facSAndre Przywara interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 6726bc37facSAndre Przywara reg-shift = <2>; 6736bc37facSAndre Przywara reg-io-width = <4>; 674494d8a2cSChen-Yu Tsai clocks = <&ccu CLK_BUS_UART0>; 675494d8a2cSChen-Yu Tsai resets = <&ccu RST_BUS_UART0>; 6766bc37facSAndre Przywara status = "disabled"; 6776bc37facSAndre Przywara }; 6786bc37facSAndre Przywara 6796bc37facSAndre Przywara uart1: serial@1c28400 { 6806bc37facSAndre Przywara compatible = "snps,dw-apb-uart"; 6816bc37facSAndre Przywara reg = <0x01c28400 0x400>; 6826bc37facSAndre Przywara interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 6836bc37facSAndre Przywara reg-shift = <2>; 6846bc37facSAndre Przywara reg-io-width = <4>; 685494d8a2cSChen-Yu Tsai clocks = <&ccu CLK_BUS_UART1>; 686494d8a2cSChen-Yu Tsai resets = <&ccu RST_BUS_UART1>; 6876bc37facSAndre Przywara status = "disabled"; 6886bc37facSAndre Przywara }; 6896bc37facSAndre Przywara 6906bc37facSAndre Przywara uart2: serial@1c28800 { 6916bc37facSAndre Przywara compatible = "snps,dw-apb-uart"; 6926bc37facSAndre Przywara reg = <0x01c28800 0x400>; 6936bc37facSAndre Przywara interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 6946bc37facSAndre Przywara reg-shift = <2>; 6956bc37facSAndre Przywara reg-io-width = <4>; 696494d8a2cSChen-Yu Tsai clocks = <&ccu CLK_BUS_UART2>; 697494d8a2cSChen-Yu Tsai resets = <&ccu RST_BUS_UART2>; 6986bc37facSAndre Przywara status = "disabled"; 6996bc37facSAndre Przywara }; 7006bc37facSAndre Przywara 7016bc37facSAndre Przywara uart3: serial@1c28c00 { 7026bc37facSAndre Przywara compatible = "snps,dw-apb-uart"; 7036bc37facSAndre Przywara reg = <0x01c28c00 0x400>; 7046bc37facSAndre Przywara interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 7056bc37facSAndre Przywara reg-shift = <2>; 7066bc37facSAndre Przywara reg-io-width = <4>; 707494d8a2cSChen-Yu Tsai clocks = <&ccu CLK_BUS_UART3>; 708494d8a2cSChen-Yu Tsai resets = <&ccu RST_BUS_UART3>; 7096bc37facSAndre Przywara status = "disabled"; 7106bc37facSAndre Przywara }; 7116bc37facSAndre Przywara 7126bc37facSAndre Przywara uart4: serial@1c29000 { 7136bc37facSAndre Przywara compatible = "snps,dw-apb-uart"; 7146bc37facSAndre Przywara reg = <0x01c29000 0x400>; 7156bc37facSAndre Przywara interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 7166bc37facSAndre Przywara reg-shift = <2>; 7176bc37facSAndre Przywara reg-io-width = <4>; 718494d8a2cSChen-Yu Tsai clocks = <&ccu CLK_BUS_UART4>; 719494d8a2cSChen-Yu Tsai resets = <&ccu RST_BUS_UART4>; 7206bc37facSAndre Przywara status = "disabled"; 7216bc37facSAndre Przywara }; 7226bc37facSAndre Przywara 7236bc37facSAndre Przywara i2c0: i2c@1c2ac00 { 7246bc37facSAndre Przywara compatible = "allwinner,sun6i-a31-i2c"; 7256bc37facSAndre Przywara reg = <0x01c2ac00 0x400>; 7266bc37facSAndre Przywara interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 727494d8a2cSChen-Yu Tsai clocks = <&ccu CLK_BUS_I2C0>; 728494d8a2cSChen-Yu Tsai resets = <&ccu RST_BUS_I2C0>; 7296bc37facSAndre Przywara status = "disabled"; 7306bc37facSAndre Przywara #address-cells = <1>; 7316bc37facSAndre Przywara #size-cells = <0>; 7326bc37facSAndre Przywara }; 7336bc37facSAndre Przywara 7346bc37facSAndre Przywara i2c1: i2c@1c2b000 { 7356bc37facSAndre Przywara compatible = "allwinner,sun6i-a31-i2c"; 7366bc37facSAndre Przywara reg = <0x01c2b000 0x400>; 7376bc37facSAndre Przywara interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 738494d8a2cSChen-Yu Tsai clocks = <&ccu CLK_BUS_I2C1>; 739494d8a2cSChen-Yu Tsai resets = <&ccu RST_BUS_I2C1>; 7406bc37facSAndre Przywara status = "disabled"; 7416bc37facSAndre Przywara #address-cells = <1>; 7426bc37facSAndre Przywara #size-cells = <0>; 7436bc37facSAndre Przywara }; 7446bc37facSAndre Przywara 7456bc37facSAndre Przywara i2c2: i2c@1c2b400 { 7466bc37facSAndre Przywara compatible = "allwinner,sun6i-a31-i2c"; 7476bc37facSAndre Przywara reg = <0x01c2b400 0x400>; 7486bc37facSAndre Przywara interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 749494d8a2cSChen-Yu Tsai clocks = <&ccu CLK_BUS_I2C2>; 750494d8a2cSChen-Yu Tsai resets = <&ccu RST_BUS_I2C2>; 7516bc37facSAndre Przywara status = "disabled"; 7526bc37facSAndre Przywara #address-cells = <1>; 7536bc37facSAndre Przywara #size-cells = <0>; 7546bc37facSAndre Przywara }; 7556bc37facSAndre Przywara 756b518bb15SStefan Brüns 757d6c9da12SCorentin LABBE spi0: spi@1c68000 { 758b518bb15SStefan Brüns compatible = "allwinner,sun8i-h3-spi"; 759b518bb15SStefan Brüns reg = <0x01c68000 0x1000>; 760b518bb15SStefan Brüns interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 761b518bb15SStefan Brüns clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>; 762b518bb15SStefan Brüns clock-names = "ahb", "mod"; 76306c1258aSStefan Brüns dmas = <&dma 23>, <&dma 23>; 76406c1258aSStefan Brüns dma-names = "rx", "tx"; 765b518bb15SStefan Brüns pinctrl-names = "default"; 766b518bb15SStefan Brüns pinctrl-0 = <&spi0_pins>; 767b518bb15SStefan Brüns resets = <&ccu RST_BUS_SPI0>; 768b518bb15SStefan Brüns status = "disabled"; 769b518bb15SStefan Brüns num-cs = <1>; 770b518bb15SStefan Brüns #address-cells = <1>; 771b518bb15SStefan Brüns #size-cells = <0>; 772b518bb15SStefan Brüns }; 773b518bb15SStefan Brüns 774d6c9da12SCorentin LABBE spi1: spi@1c69000 { 775b518bb15SStefan Brüns compatible = "allwinner,sun8i-h3-spi"; 776b518bb15SStefan Brüns reg = <0x01c69000 0x1000>; 777b518bb15SStefan Brüns interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 778b518bb15SStefan Brüns clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>; 779b518bb15SStefan Brüns clock-names = "ahb", "mod"; 78006c1258aSStefan Brüns dmas = <&dma 24>, <&dma 24>; 78106c1258aSStefan Brüns dma-names = "rx", "tx"; 782b518bb15SStefan Brüns pinctrl-names = "default"; 783b518bb15SStefan Brüns pinctrl-0 = <&spi1_pins>; 784b518bb15SStefan Brüns resets = <&ccu RST_BUS_SPI1>; 785b518bb15SStefan Brüns status = "disabled"; 786b518bb15SStefan Brüns num-cs = <1>; 787b518bb15SStefan Brüns #address-cells = <1>; 788b518bb15SStefan Brüns #size-cells = <0>; 789b518bb15SStefan Brüns }; 790b518bb15SStefan Brüns 79194f44288SCorentin Labbe emac: ethernet@1c30000 { 79294f44288SCorentin Labbe compatible = "allwinner,sun50i-a64-emac"; 79394f44288SCorentin Labbe syscon = <&syscon>; 79494f44288SCorentin Labbe reg = <0x01c30000 0x10000>; 79594f44288SCorentin Labbe interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 79694f44288SCorentin Labbe interrupt-names = "macirq"; 79794f44288SCorentin Labbe resets = <&ccu RST_BUS_EMAC>; 79894f44288SCorentin Labbe reset-names = "stmmaceth"; 79994f44288SCorentin Labbe clocks = <&ccu CLK_BUS_EMAC>; 80094f44288SCorentin Labbe clock-names = "stmmaceth"; 80194f44288SCorentin Labbe status = "disabled"; 80294f44288SCorentin Labbe 80394f44288SCorentin Labbe mdio: mdio { 80416416084SCorentin Labbe compatible = "snps,dwmac-mdio"; 80594f44288SCorentin Labbe #address-cells = <1>; 80694f44288SCorentin Labbe #size-cells = <0>; 80794f44288SCorentin Labbe }; 80894f44288SCorentin Labbe }; 80994f44288SCorentin Labbe 810*6b683d76SJagan Teki mali: gpu@1c40000 { 811*6b683d76SJagan Teki compatible = "allwinner,sun50i-a64-mali", "arm,mali-400"; 812*6b683d76SJagan Teki reg = <0x01c40000 0x10000>; 813*6b683d76SJagan Teki interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, 814*6b683d76SJagan Teki <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, 815*6b683d76SJagan Teki <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, 816*6b683d76SJagan Teki <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, 817*6b683d76SJagan Teki <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, 818*6b683d76SJagan Teki <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>, 819*6b683d76SJagan Teki <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 820*6b683d76SJagan Teki interrupt-names = "gp", 821*6b683d76SJagan Teki "gpmmu", 822*6b683d76SJagan Teki "pp0", 823*6b683d76SJagan Teki "ppmmu0", 824*6b683d76SJagan Teki "pp1", 825*6b683d76SJagan Teki "ppmmu1", 826*6b683d76SJagan Teki "pmu"; 827*6b683d76SJagan Teki clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>; 828*6b683d76SJagan Teki clock-names = "bus", "core"; 829*6b683d76SJagan Teki resets = <&ccu RST_BUS_GPU>; 830*6b683d76SJagan Teki }; 831*6b683d76SJagan Teki 8326bc37facSAndre Przywara gic: interrupt-controller@1c81000 { 8336bc37facSAndre Przywara compatible = "arm,gic-400"; 8346bc37facSAndre Przywara reg = <0x01c81000 0x1000>, 8356bc37facSAndre Przywara <0x01c82000 0x2000>, 8366bc37facSAndre Przywara <0x01c84000 0x2000>, 8376bc37facSAndre Przywara <0x01c86000 0x2000>; 8386bc37facSAndre Przywara interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 8396bc37facSAndre Przywara interrupt-controller; 8406bc37facSAndre Przywara #interrupt-cells = <3>; 8416bc37facSAndre Przywara }; 8426bc37facSAndre Przywara 843b5df280bSAndre Przywara pwm: pwm@1c21400 { 844b5df280bSAndre Przywara compatible = "allwinner,sun50i-a64-pwm", 845b5df280bSAndre Przywara "allwinner,sun5i-a13-pwm"; 846b5df280bSAndre Przywara reg = <0x01c21400 0x400>; 847b5df280bSAndre Przywara clocks = <&osc24M>; 848b5df280bSAndre Przywara pinctrl-names = "default"; 849b5df280bSAndre Przywara pinctrl-0 = <&pwm_pin>; 850b5df280bSAndre Przywara #pwm-cells = <3>; 851b5df280bSAndre Przywara status = "disabled"; 852b5df280bSAndre Przywara }; 853b5df280bSAndre Przywara 854e85f28e0SJagan Teki hdmi: hdmi@1ee0000 { 855e85f28e0SJagan Teki compatible = "allwinner,sun50i-a64-dw-hdmi", 856e85f28e0SJagan Teki "allwinner,sun8i-a83t-dw-hdmi"; 857e85f28e0SJagan Teki reg = <0x01ee0000 0x10000>; 858e85f28e0SJagan Teki reg-io-width = <1>; 859e85f28e0SJagan Teki interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 860e85f28e0SJagan Teki clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>, 861e85f28e0SJagan Teki <&ccu CLK_HDMI>; 862e85f28e0SJagan Teki clock-names = "iahb", "isfr", "tmds"; 863e85f28e0SJagan Teki resets = <&ccu RST_BUS_HDMI1>; 864e85f28e0SJagan Teki reset-names = "ctrl"; 865e85f28e0SJagan Teki phys = <&hdmi_phy>; 866e85f28e0SJagan Teki phy-names = "hdmi-phy"; 867e85f28e0SJagan Teki status = "disabled"; 868e85f28e0SJagan Teki 869e85f28e0SJagan Teki ports { 870e85f28e0SJagan Teki #address-cells = <1>; 871e85f28e0SJagan Teki #size-cells = <0>; 872e85f28e0SJagan Teki 873e85f28e0SJagan Teki hdmi_in: port@0 { 874e85f28e0SJagan Teki reg = <0>; 875e85f28e0SJagan Teki 876e85f28e0SJagan Teki hdmi_in_tcon1: endpoint { 877e85f28e0SJagan Teki remote-endpoint = <&tcon1_out_hdmi>; 878e85f28e0SJagan Teki }; 879e85f28e0SJagan Teki }; 880e85f28e0SJagan Teki 881e85f28e0SJagan Teki hdmi_out: port@1 { 882e85f28e0SJagan Teki reg = <1>; 883e85f28e0SJagan Teki }; 884e85f28e0SJagan Teki }; 885e85f28e0SJagan Teki }; 886e85f28e0SJagan Teki 887e85f28e0SJagan Teki hdmi_phy: hdmi-phy@1ef0000 { 888e85f28e0SJagan Teki compatible = "allwinner,sun50i-a64-hdmi-phy"; 889e85f28e0SJagan Teki reg = <0x01ef0000 0x10000>; 890e85f28e0SJagan Teki clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>, 891e85f28e0SJagan Teki <&ccu 7>; 892e85f28e0SJagan Teki clock-names = "bus", "mod", "pll-0"; 893e85f28e0SJagan Teki resets = <&ccu RST_BUS_HDMI0>; 894e85f28e0SJagan Teki reset-names = "phy"; 895e85f28e0SJagan Teki #phy-cells = <0>; 896e85f28e0SJagan Teki }; 897e85f28e0SJagan Teki 8986bc37facSAndre Przywara rtc: rtc@1f00000 { 8996bc37facSAndre Przywara compatible = "allwinner,sun6i-a31-rtc"; 9006bc37facSAndre Przywara reg = <0x01f00000 0x54>; 9016bc37facSAndre Przywara interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 9026bc37facSAndre Przywara <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 903e1a9a474SJagan Teki clock-output-names = "rtc-osc32k", "rtc-osc32k-out"; 904e1a9a474SJagan Teki clocks = <&osc32k>; 905e1a9a474SJagan Teki #clock-cells = <1>; 9066bc37facSAndre Przywara }; 907791a9e00SIcenowy Zheng 908535ca508SIcenowy Zheng r_intc: interrupt-controller@1f00c00 { 909535ca508SIcenowy Zheng compatible = "allwinner,sun50i-a64-r-intc", 910535ca508SIcenowy Zheng "allwinner,sun6i-a31-r-intc"; 911535ca508SIcenowy Zheng interrupt-controller; 912535ca508SIcenowy Zheng #interrupt-cells = <2>; 913535ca508SIcenowy Zheng reg = <0x01f00c00 0x400>; 914535ca508SIcenowy Zheng interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 915535ca508SIcenowy Zheng }; 916535ca508SIcenowy Zheng 917791a9e00SIcenowy Zheng r_ccu: clock@1f01400 { 918791a9e00SIcenowy Zheng compatible = "allwinner,sun50i-a64-r-ccu"; 919791a9e00SIcenowy Zheng reg = <0x01f01400 0x100>; 920f74994a9SChen-Yu Tsai clocks = <&osc24M>, <&osc32k>, <&iosc>, 921f74994a9SChen-Yu Tsai <&ccu 11>; 922f74994a9SChen-Yu Tsai clock-names = "hosc", "losc", "iosc", "pll-periph"; 923791a9e00SIcenowy Zheng #clock-cells = <1>; 924791a9e00SIcenowy Zheng #reset-cells = <1>; 925791a9e00SIcenowy Zheng }; 926ec427905SIcenowy Zheng 927871b5352SIcenowy Zheng r_i2c: i2c@1f02400 { 928871b5352SIcenowy Zheng compatible = "allwinner,sun50i-a64-i2c", 929871b5352SIcenowy Zheng "allwinner,sun6i-a31-i2c"; 930871b5352SIcenowy Zheng reg = <0x01f02400 0x400>; 931871b5352SIcenowy Zheng interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 932871b5352SIcenowy Zheng clocks = <&r_ccu CLK_APB0_I2C>; 933871b5352SIcenowy Zheng resets = <&r_ccu RST_APB0_I2C>; 934871b5352SIcenowy Zheng status = "disabled"; 935871b5352SIcenowy Zheng #address-cells = <1>; 936871b5352SIcenowy Zheng #size-cells = <0>; 937871b5352SIcenowy Zheng }; 938871b5352SIcenowy Zheng 939b5df280bSAndre Przywara r_pwm: pwm@1f03800 { 940b5df280bSAndre Przywara compatible = "allwinner,sun50i-a64-pwm", 941b5df280bSAndre Przywara "allwinner,sun5i-a13-pwm"; 942b5df280bSAndre Przywara reg = <0x01f03800 0x400>; 943b5df280bSAndre Przywara clocks = <&osc24M>; 944b5df280bSAndre Przywara pinctrl-names = "default"; 945b5df280bSAndre Przywara pinctrl-0 = <&r_pwm_pin>; 946b5df280bSAndre Przywara #pwm-cells = <3>; 947b5df280bSAndre Przywara status = "disabled"; 948b5df280bSAndre Przywara }; 949b5df280bSAndre Przywara 950d6c9da12SCorentin LABBE r_pio: pinctrl@1f02c00 { 951ec427905SIcenowy Zheng compatible = "allwinner,sun50i-a64-r-pinctrl"; 952ec427905SIcenowy Zheng reg = <0x01f02c00 0x400>; 953ec427905SIcenowy Zheng interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 954494d8a2cSChen-Yu Tsai clocks = <&r_ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>; 955ec427905SIcenowy Zheng clock-names = "apb", "hosc", "losc"; 956ec427905SIcenowy Zheng gpio-controller; 957ec427905SIcenowy Zheng #gpio-cells = <3>; 958ec427905SIcenowy Zheng interrupt-controller; 959ec427905SIcenowy Zheng #interrupt-cells = <3>; 9603b38fdedSIcenowy Zheng 9611b6ff1cbSChen-Yu Tsai r_i2c_pl89_pins: r-i2c-pl89-pins { 962871b5352SIcenowy Zheng pins = "PL8", "PL9"; 963871b5352SIcenowy Zheng function = "s_i2c"; 964871b5352SIcenowy Zheng }; 965871b5352SIcenowy Zheng 966b5df280bSAndre Przywara r_pwm_pin: pwm { 967b5df280bSAndre Przywara pins = "PL10"; 968b5df280bSAndre Przywara function = "s_pwm"; 969b5df280bSAndre Przywara }; 970b5df280bSAndre Przywara 97192d378fbSCorentin LABBE r_rsb_pins: rsb { 9723b38fdedSIcenowy Zheng pins = "PL0", "PL1"; 9733b38fdedSIcenowy Zheng function = "s_rsb"; 9743b38fdedSIcenowy Zheng }; 9753b38fdedSIcenowy Zheng }; 9763b38fdedSIcenowy Zheng 9773b38fdedSIcenowy Zheng r_rsb: rsb@1f03400 { 9783b38fdedSIcenowy Zheng compatible = "allwinner,sun8i-a23-rsb"; 9793b38fdedSIcenowy Zheng reg = <0x01f03400 0x400>; 9803b38fdedSIcenowy Zheng interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 9813b38fdedSIcenowy Zheng clocks = <&r_ccu 6>; 9823b38fdedSIcenowy Zheng clock-frequency = <3000000>; 9833b38fdedSIcenowy Zheng resets = <&r_ccu 2>; 9843b38fdedSIcenowy Zheng pinctrl-names = "default"; 9853b38fdedSIcenowy Zheng pinctrl-0 = <&r_rsb_pins>; 9863b38fdedSIcenowy Zheng status = "disabled"; 9873b38fdedSIcenowy Zheng #address-cells = <1>; 9883b38fdedSIcenowy Zheng #size-cells = <0>; 989ec427905SIcenowy Zheng }; 990d4185043SHarald Geyer 991d4185043SHarald Geyer wdt0: watchdog@1c20ca0 { 992d4185043SHarald Geyer compatible = "allwinner,sun50i-a64-wdt", 993d4185043SHarald Geyer "allwinner,sun6i-a31-wdt"; 994d4185043SHarald Geyer reg = <0x01c20ca0 0x20>; 995d4185043SHarald Geyer interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 996d4185043SHarald Geyer }; 9976bc37facSAndre Przywara }; 9986bc37facSAndre Przywara}; 999