1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2c66ec88fSEmmanuel Vadot// Copyright (C) 2016 ARM Ltd. 3c66ec88fSEmmanuel Vadot 4*f126890aSEmmanuel Vadot#include <arm/allwinner/sunxi-h3-h5.dtsi> 5c66ec88fSEmmanuel Vadot 6c66ec88fSEmmanuel Vadot#include <dt-bindings/thermal/thermal.h> 7c66ec88fSEmmanuel Vadot 8c66ec88fSEmmanuel Vadot/ { 9c66ec88fSEmmanuel Vadot cpus { 10c66ec88fSEmmanuel Vadot #address-cells = <1>; 11c66ec88fSEmmanuel Vadot #size-cells = <0>; 12c66ec88fSEmmanuel Vadot 13c66ec88fSEmmanuel Vadot cpu0: cpu@0 { 14c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 15c66ec88fSEmmanuel Vadot device_type = "cpu"; 16c66ec88fSEmmanuel Vadot reg = <0>; 17c66ec88fSEmmanuel Vadot enable-method = "psci"; 18c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_CPUX>; 19c66ec88fSEmmanuel Vadot clock-latency-ns = <244144>; /* 8 32k periods */ 20c66ec88fSEmmanuel Vadot #cooling-cells = <2>; 21c66ec88fSEmmanuel Vadot }; 22c66ec88fSEmmanuel Vadot 23c66ec88fSEmmanuel Vadot cpu1: cpu@1 { 24c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 25c66ec88fSEmmanuel Vadot device_type = "cpu"; 26c66ec88fSEmmanuel Vadot reg = <1>; 27c66ec88fSEmmanuel Vadot enable-method = "psci"; 28c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_CPUX>; 29c66ec88fSEmmanuel Vadot clock-latency-ns = <244144>; /* 8 32k periods */ 30c66ec88fSEmmanuel Vadot #cooling-cells = <2>; 31c66ec88fSEmmanuel Vadot }; 32c66ec88fSEmmanuel Vadot 33c66ec88fSEmmanuel Vadot cpu2: cpu@2 { 34c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 35c66ec88fSEmmanuel Vadot device_type = "cpu"; 36c66ec88fSEmmanuel Vadot reg = <2>; 37c66ec88fSEmmanuel Vadot enable-method = "psci"; 38c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_CPUX>; 39c66ec88fSEmmanuel Vadot clock-latency-ns = <244144>; /* 8 32k periods */ 40c66ec88fSEmmanuel Vadot #cooling-cells = <2>; 41c66ec88fSEmmanuel Vadot }; 42c66ec88fSEmmanuel Vadot 43c66ec88fSEmmanuel Vadot cpu3: cpu@3 { 44c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 45c66ec88fSEmmanuel Vadot device_type = "cpu"; 46c66ec88fSEmmanuel Vadot reg = <3>; 47c66ec88fSEmmanuel Vadot enable-method = "psci"; 48c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_CPUX>; 49c66ec88fSEmmanuel Vadot clock-latency-ns = <244144>; /* 8 32k periods */ 50c66ec88fSEmmanuel Vadot #cooling-cells = <2>; 51c66ec88fSEmmanuel Vadot }; 52c66ec88fSEmmanuel Vadot }; 53c66ec88fSEmmanuel Vadot 54c66ec88fSEmmanuel Vadot pmu { 55c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53-pmu"; 56c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>, 57c66ec88fSEmmanuel Vadot <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, 58c66ec88fSEmmanuel Vadot <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 59c66ec88fSEmmanuel Vadot <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; 60c66ec88fSEmmanuel Vadot interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 61c66ec88fSEmmanuel Vadot }; 62c66ec88fSEmmanuel Vadot 63c66ec88fSEmmanuel Vadot psci { 64c66ec88fSEmmanuel Vadot compatible = "arm,psci-0.2"; 65c66ec88fSEmmanuel Vadot method = "smc"; 66c66ec88fSEmmanuel Vadot }; 67c66ec88fSEmmanuel Vadot 68c66ec88fSEmmanuel Vadot timer { 69c66ec88fSEmmanuel Vadot compatible = "arm,armv8-timer"; 706be33864SEmmanuel Vadot arm,no-tick-in-suspend; 71c66ec88fSEmmanuel Vadot interrupts = <GIC_PPI 13 72c66ec88fSEmmanuel Vadot (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 73c66ec88fSEmmanuel Vadot <GIC_PPI 14 74c66ec88fSEmmanuel Vadot (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 75c66ec88fSEmmanuel Vadot <GIC_PPI 11 76c66ec88fSEmmanuel Vadot (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 77c66ec88fSEmmanuel Vadot <GIC_PPI 10 78c66ec88fSEmmanuel Vadot (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 79c66ec88fSEmmanuel Vadot }; 80c66ec88fSEmmanuel Vadot 81c66ec88fSEmmanuel Vadot soc { 82c66ec88fSEmmanuel Vadot syscon: system-control@1c00000 { 83c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h5-system-control"; 84c66ec88fSEmmanuel Vadot reg = <0x01c00000 0x1000>; 85c66ec88fSEmmanuel Vadot #address-cells = <1>; 86c66ec88fSEmmanuel Vadot #size-cells = <1>; 87c66ec88fSEmmanuel Vadot ranges; 88c66ec88fSEmmanuel Vadot 89c66ec88fSEmmanuel Vadot sram_c1: sram@18000 { 90c66ec88fSEmmanuel Vadot compatible = "mmio-sram"; 91c66ec88fSEmmanuel Vadot reg = <0x00018000 0x1c000>; 92c66ec88fSEmmanuel Vadot #address-cells = <1>; 93c66ec88fSEmmanuel Vadot #size-cells = <1>; 94c66ec88fSEmmanuel Vadot ranges = <0 0x00018000 0x1c000>; 95c66ec88fSEmmanuel Vadot 96c66ec88fSEmmanuel Vadot ve_sram: sram-section@0 { 97c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h5-sram-c1", 98c66ec88fSEmmanuel Vadot "allwinner,sun4i-a10-sram-c1"; 99c66ec88fSEmmanuel Vadot reg = <0x000000 0x1c000>; 100c66ec88fSEmmanuel Vadot }; 101c66ec88fSEmmanuel Vadot }; 102c66ec88fSEmmanuel Vadot }; 103c66ec88fSEmmanuel Vadot 104c66ec88fSEmmanuel Vadot video-codec@1c0e000 { 105c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h5-video-engine"; 106c66ec88fSEmmanuel Vadot reg = <0x01c0e000 0x1000>; 107c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>, 108c66ec88fSEmmanuel Vadot <&ccu CLK_DRAM_VE>; 109c66ec88fSEmmanuel Vadot clock-names = "ahb", "mod", "ram"; 110c66ec88fSEmmanuel Vadot resets = <&ccu RST_BUS_VE>; 111c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; 112c66ec88fSEmmanuel Vadot allwinner,sram = <&ve_sram 1>; 113c66ec88fSEmmanuel Vadot }; 114c66ec88fSEmmanuel Vadot 115c66ec88fSEmmanuel Vadot crypto: crypto@1c15000 { 116c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h5-crypto"; 117c66ec88fSEmmanuel Vadot reg = <0x01c15000 0x1000>; 118c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 119c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>; 120c66ec88fSEmmanuel Vadot clock-names = "bus", "mod"; 121c66ec88fSEmmanuel Vadot resets = <&ccu RST_BUS_CE>; 122c66ec88fSEmmanuel Vadot }; 123c66ec88fSEmmanuel Vadot 1245def4c47SEmmanuel Vadot deinterlace: deinterlace@1e00000 { 1255def4c47SEmmanuel Vadot compatible = "allwinner,sun8i-h3-deinterlace"; 1265def4c47SEmmanuel Vadot reg = <0x01e00000 0x20000>; 1275def4c47SEmmanuel Vadot clocks = <&ccu CLK_BUS_DEINTERLACE>, 1285def4c47SEmmanuel Vadot <&ccu CLK_DEINTERLACE>, 1295def4c47SEmmanuel Vadot <&ccu CLK_DRAM_DEINTERLACE>; 1305def4c47SEmmanuel Vadot clock-names = "bus", "mod", "ram"; 1315def4c47SEmmanuel Vadot resets = <&ccu RST_BUS_DEINTERLACE>; 1325def4c47SEmmanuel Vadot interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 1335def4c47SEmmanuel Vadot interconnects = <&mbus 9>; 1345def4c47SEmmanuel Vadot interconnect-names = "dma-mem"; 1355def4c47SEmmanuel Vadot }; 1365def4c47SEmmanuel Vadot 137c66ec88fSEmmanuel Vadot mali: gpu@1e80000 { 138c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h5-mali", "arm,mali-450"; 139c66ec88fSEmmanuel Vadot reg = <0x01e80000 0x30000>; 140c66ec88fSEmmanuel Vadot /* 141c66ec88fSEmmanuel Vadot * While the datasheet lists an interrupt for the 142c66ec88fSEmmanuel Vadot * PMU, the actual silicon does not have the PMU 143c66ec88fSEmmanuel Vadot * block. Reads all return zero, and writes are 144c66ec88fSEmmanuel Vadot * ignored. 145c66ec88fSEmmanuel Vadot */ 146c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, 147c66ec88fSEmmanuel Vadot <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, 148c66ec88fSEmmanuel Vadot <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, 149c66ec88fSEmmanuel Vadot <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, 150c66ec88fSEmmanuel Vadot <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, 151c66ec88fSEmmanuel Vadot <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, 152c66ec88fSEmmanuel Vadot <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>, 153c66ec88fSEmmanuel Vadot <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, 154c66ec88fSEmmanuel Vadot <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>, 155c66ec88fSEmmanuel Vadot <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>, 1566be33864SEmmanuel Vadot <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 157c66ec88fSEmmanuel Vadot interrupt-names = "gp", 158c66ec88fSEmmanuel Vadot "gpmmu", 159c66ec88fSEmmanuel Vadot "pp", 160c66ec88fSEmmanuel Vadot "pp0", 161c66ec88fSEmmanuel Vadot "ppmmu0", 162c66ec88fSEmmanuel Vadot "pp1", 163c66ec88fSEmmanuel Vadot "ppmmu1", 164c66ec88fSEmmanuel Vadot "pp2", 165c66ec88fSEmmanuel Vadot "ppmmu2", 166c66ec88fSEmmanuel Vadot "pp3", 1676be33864SEmmanuel Vadot "ppmmu3"; 168c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>; 169c66ec88fSEmmanuel Vadot clock-names = "bus", "core"; 170c66ec88fSEmmanuel Vadot resets = <&ccu RST_BUS_GPU>; 171c66ec88fSEmmanuel Vadot 172c66ec88fSEmmanuel Vadot assigned-clocks = <&ccu CLK_GPU>; 173c66ec88fSEmmanuel Vadot assigned-clock-rates = <384000000>; 174c66ec88fSEmmanuel Vadot }; 175c66ec88fSEmmanuel Vadot 176c66ec88fSEmmanuel Vadot ths: thermal-sensor@1c25000 { 177c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h5-ths"; 178c66ec88fSEmmanuel Vadot reg = <0x01c25000 0x400>; 179c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 180c66ec88fSEmmanuel Vadot resets = <&ccu RST_BUS_THS>; 181c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>; 182c66ec88fSEmmanuel Vadot clock-names = "bus", "mod"; 183c66ec88fSEmmanuel Vadot nvmem-cells = <&ths_calibration>; 184c66ec88fSEmmanuel Vadot nvmem-cell-names = "calibration"; 185c66ec88fSEmmanuel Vadot #thermal-sensor-cells = <1>; 186c66ec88fSEmmanuel Vadot }; 187c66ec88fSEmmanuel Vadot }; 188c66ec88fSEmmanuel Vadot 189c66ec88fSEmmanuel Vadot thermal-zones { 190c66ec88fSEmmanuel Vadot cpu_thermal: cpu-thermal { 191c66ec88fSEmmanuel Vadot polling-delay-passive = <0>; 192c66ec88fSEmmanuel Vadot polling-delay = <0>; 193c66ec88fSEmmanuel Vadot thermal-sensors = <&ths 0>; 194c66ec88fSEmmanuel Vadot 195c66ec88fSEmmanuel Vadot trips { 196c66ec88fSEmmanuel Vadot cpu_hot_trip: cpu-hot { 197c66ec88fSEmmanuel Vadot temperature = <80000>; 198c66ec88fSEmmanuel Vadot hysteresis = <2000>; 199c66ec88fSEmmanuel Vadot type = "passive"; 200c66ec88fSEmmanuel Vadot }; 201c66ec88fSEmmanuel Vadot 202c66ec88fSEmmanuel Vadot cpu_very_hot_trip: cpu-very-hot { 203c66ec88fSEmmanuel Vadot temperature = <100000>; 204c66ec88fSEmmanuel Vadot hysteresis = <0>; 205c66ec88fSEmmanuel Vadot type = "critical"; 206c66ec88fSEmmanuel Vadot }; 207c66ec88fSEmmanuel Vadot }; 208c66ec88fSEmmanuel Vadot 209c66ec88fSEmmanuel Vadot cooling-maps { 210c66ec88fSEmmanuel Vadot cpu-hot-limit { 211c66ec88fSEmmanuel Vadot trip = <&cpu_hot_trip>; 212c66ec88fSEmmanuel Vadot cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 213c66ec88fSEmmanuel Vadot <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 214c66ec88fSEmmanuel Vadot <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 215c66ec88fSEmmanuel Vadot <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 216c66ec88fSEmmanuel Vadot }; 217c66ec88fSEmmanuel Vadot }; 218c66ec88fSEmmanuel Vadot }; 219c66ec88fSEmmanuel Vadot 2208cc087a1SEmmanuel Vadot gpu-thermal { 221c66ec88fSEmmanuel Vadot polling-delay-passive = <0>; 222c66ec88fSEmmanuel Vadot polling-delay = <0>; 223c66ec88fSEmmanuel Vadot thermal-sensors = <&ths 1>; 224c66ec88fSEmmanuel Vadot }; 225c66ec88fSEmmanuel Vadot }; 226c66ec88fSEmmanuel Vadot}; 227c66ec88fSEmmanuel Vadot 228c66ec88fSEmmanuel Vadot&ccu { 229c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h5-ccu"; 230c66ec88fSEmmanuel Vadot}; 231c66ec88fSEmmanuel Vadot 232c66ec88fSEmmanuel Vadot&display_clocks { 233c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h5-de2-clk"; 234c66ec88fSEmmanuel Vadot}; 235c66ec88fSEmmanuel Vadot 236e67e8565SEmmanuel Vadot&mbus { 237e67e8565SEmmanuel Vadot compatible = "allwinner,sun50i-h5-mbus"; 238e67e8565SEmmanuel Vadot}; 239e67e8565SEmmanuel Vadot 240c66ec88fSEmmanuel Vadot&mmc0 { 241c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h5-mmc", 242c66ec88fSEmmanuel Vadot "allwinner,sun50i-a64-mmc"; 243c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>; 244c66ec88fSEmmanuel Vadot clock-names = "ahb", "mmc"; 245c66ec88fSEmmanuel Vadot}; 246c66ec88fSEmmanuel Vadot 247c66ec88fSEmmanuel Vadot&mmc1 { 248c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h5-mmc", 249c66ec88fSEmmanuel Vadot "allwinner,sun50i-a64-mmc"; 250c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>; 251c66ec88fSEmmanuel Vadot clock-names = "ahb", "mmc"; 252c66ec88fSEmmanuel Vadot}; 253c66ec88fSEmmanuel Vadot 254c66ec88fSEmmanuel Vadot&mmc2 { 255c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h5-emmc", 256c66ec88fSEmmanuel Vadot "allwinner,sun50i-a64-emmc"; 257c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>; 258c66ec88fSEmmanuel Vadot clock-names = "ahb", "mmc"; 259c66ec88fSEmmanuel Vadot}; 260c66ec88fSEmmanuel Vadot 261c66ec88fSEmmanuel Vadot&pio { 262c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 263c66ec88fSEmmanuel Vadot <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, 264c66ec88fSEmmanuel Vadot <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 265c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h5-pinctrl"; 266c66ec88fSEmmanuel Vadot}; 267c66ec88fSEmmanuel Vadot 268c66ec88fSEmmanuel Vadot&rtc { 269c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h5-rtc"; 270c66ec88fSEmmanuel Vadot}; 271c66ec88fSEmmanuel Vadot 272c66ec88fSEmmanuel Vadot&sid { 273c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h5-sid"; 274c66ec88fSEmmanuel Vadot}; 275