1f3a54d6cSSergei Shtylyov// SPDX-License-Identifier: GPL-2.0 2f3a54d6cSSergei Shtylyov/* 3f3a54d6cSSergei Shtylyov * Device Tree Source for the r8a77980 SoC 4f3a54d6cSSergei Shtylyov * 5f3a54d6cSSergei Shtylyov * Copyright (C) 2018 Renesas Electronics Corp. 6f3a54d6cSSergei Shtylyov * Copyright (C) 2018 Cogent Embedded, Inc. 7f3a54d6cSSergei Shtylyov */ 8f3a54d6cSSergei Shtylyov 9f3a54d6cSSergei Shtylyov#include <dt-bindings/interrupt-controller/irq.h> 10f3a54d6cSSergei Shtylyov#include <dt-bindings/interrupt-controller/arm-gic.h> 11f3a54d6cSSergei Shtylyov#include <dt-bindings/clock/renesas-cpg-mssr.h> 12f3a54d6cSSergei Shtylyov 13f3a54d6cSSergei Shtylyov/ { 14f3a54d6cSSergei Shtylyov compatible = "renesas,r8a77980"; 15f3a54d6cSSergei Shtylyov #address-cells = <2>; 16f3a54d6cSSergei Shtylyov #size-cells = <2>; 17f3a54d6cSSergei Shtylyov 18f3a54d6cSSergei Shtylyov cpus { 19f3a54d6cSSergei Shtylyov #address-cells = <1>; 20f3a54d6cSSergei Shtylyov #size-cells = <0>; 21f3a54d6cSSergei Shtylyov 22f3a54d6cSSergei Shtylyov a53_0: cpu@0 { 23f3a54d6cSSergei Shtylyov device_type = "cpu"; 24f3a54d6cSSergei Shtylyov compatible = "arm,cortex-a53", "arm,armv8"; 25f3a54d6cSSergei Shtylyov reg = <0>; 26f3a54d6cSSergei Shtylyov clocks = <&cpg CPG_CORE 0>; 27f3a54d6cSSergei Shtylyov power-domains = <&sysc 5>; 28f3a54d6cSSergei Shtylyov next-level-cache = <&L2_CA53>; 29f3a54d6cSSergei Shtylyov enable-method = "psci"; 30f3a54d6cSSergei Shtylyov }; 31f3a54d6cSSergei Shtylyov 32f3a54d6cSSergei Shtylyov L2_CA53: cache-controller { 33f3a54d6cSSergei Shtylyov compatible = "cache"; 34f3a54d6cSSergei Shtylyov power-domains = <&sysc 21>; 35f3a54d6cSSergei Shtylyov cache-unified; 36f3a54d6cSSergei Shtylyov cache-level = <2>; 37f3a54d6cSSergei Shtylyov }; 38f3a54d6cSSergei Shtylyov }; 39f3a54d6cSSergei Shtylyov 40f3a54d6cSSergei Shtylyov extal_clk: extal { 41f3a54d6cSSergei Shtylyov compatible = "fixed-clock"; 42f3a54d6cSSergei Shtylyov #clock-cells = <0>; 43f3a54d6cSSergei Shtylyov /* This value must be overridden by the board */ 44f3a54d6cSSergei Shtylyov clock-frequency = <0>; 45f3a54d6cSSergei Shtylyov }; 46f3a54d6cSSergei Shtylyov 47f3a54d6cSSergei Shtylyov extalr_clk: extalr { 48f3a54d6cSSergei Shtylyov compatible = "fixed-clock"; 49f3a54d6cSSergei Shtylyov #clock-cells = <0>; 50f3a54d6cSSergei Shtylyov /* This value must be overridden by the board */ 51f3a54d6cSSergei Shtylyov clock-frequency = <0>; 52f3a54d6cSSergei Shtylyov }; 53f3a54d6cSSergei Shtylyov 54f3a54d6cSSergei Shtylyov psci { 55f3a54d6cSSergei Shtylyov compatible = "arm,psci-1.0", "arm,psci-0.2"; 56f3a54d6cSSergei Shtylyov method = "smc"; 57f3a54d6cSSergei Shtylyov }; 58f3a54d6cSSergei Shtylyov 59f3a54d6cSSergei Shtylyov soc { 60f3a54d6cSSergei Shtylyov compatible = "simple-bus"; 61f3a54d6cSSergei Shtylyov interrupt-parent = <&gic>; 62f3a54d6cSSergei Shtylyov 63f3a54d6cSSergei Shtylyov #address-cells = <2>; 64f3a54d6cSSergei Shtylyov #size-cells = <2>; 65f3a54d6cSSergei Shtylyov ranges; 66f3a54d6cSSergei Shtylyov 67f3a54d6cSSergei Shtylyov cpg: clock-controller@e6150000 { 68f3a54d6cSSergei Shtylyov compatible = "renesas,r8a77980-cpg-mssr"; 69f3a54d6cSSergei Shtylyov reg = <0 0xe6150000 0 0x1000>; 70f3a54d6cSSergei Shtylyov clocks = <&extal_clk>, <&extalr_clk>; 71f3a54d6cSSergei Shtylyov clock-names = "extal", "extalr"; 72f3a54d6cSSergei Shtylyov #clock-cells = <2>; 73f3a54d6cSSergei Shtylyov #power-domain-cells = <0>; 74f3a54d6cSSergei Shtylyov #reset-cells = <1>; 75f3a54d6cSSergei Shtylyov }; 76f3a54d6cSSergei Shtylyov 77f3a54d6cSSergei Shtylyov rst: reset-controller@e6160000 { 78f3a54d6cSSergei Shtylyov compatible = "renesas,r8a77980-rst"; 79f3a54d6cSSergei Shtylyov reg = <0 0xe6160000 0 0x200>; 80f3a54d6cSSergei Shtylyov }; 81f3a54d6cSSergei Shtylyov 82f3a54d6cSSergei Shtylyov sysc: system-controller@e6180000 { 83f3a54d6cSSergei Shtylyov compatible = "renesas,r8a77980-sysc"; 84f3a54d6cSSergei Shtylyov reg = <0 0xe6180000 0 0x440>; 85f3a54d6cSSergei Shtylyov #power-domain-cells = <1>; 86f3a54d6cSSergei Shtylyov }; 87f3a54d6cSSergei Shtylyov 88*00d3375fSSergei Shtylyov dmac1: dma-controller@e7300000 { 89*00d3375fSSergei Shtylyov compatible = "renesas,dmac-r8a77980", 90*00d3375fSSergei Shtylyov "renesas,rcar-dmac"; 91*00d3375fSSergei Shtylyov reg = <0 0xe7300000 0 0x10000>; 92*00d3375fSSergei Shtylyov interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 93*00d3375fSSergei Shtylyov GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH 94*00d3375fSSergei Shtylyov GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH 95*00d3375fSSergei Shtylyov GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH 96*00d3375fSSergei Shtylyov GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH 97*00d3375fSSergei Shtylyov GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH 98*00d3375fSSergei Shtylyov GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH 99*00d3375fSSergei Shtylyov GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH 100*00d3375fSSergei Shtylyov GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH 101*00d3375fSSergei Shtylyov GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH 102*00d3375fSSergei Shtylyov GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH 103*00d3375fSSergei Shtylyov GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH 104*00d3375fSSergei Shtylyov GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH 105*00d3375fSSergei Shtylyov GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH 106*00d3375fSSergei Shtylyov GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH 107*00d3375fSSergei Shtylyov GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH 108*00d3375fSSergei Shtylyov GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>; 109*00d3375fSSergei Shtylyov interrupt-names = "error", 110*00d3375fSSergei Shtylyov "ch0", "ch1", "ch2", "ch3", 111*00d3375fSSergei Shtylyov "ch4", "ch5", "ch6", "ch7", 112*00d3375fSSergei Shtylyov "ch8", "ch9", "ch10", "ch11", 113*00d3375fSSergei Shtylyov "ch12", "ch13", "ch14", "ch15"; 114*00d3375fSSergei Shtylyov clocks = <&cpg CPG_MOD 218>; 115*00d3375fSSergei Shtylyov clock-names = "fck"; 116*00d3375fSSergei Shtylyov power-domains = <&sysc 32>; 117*00d3375fSSergei Shtylyov resets = <&cpg 218>; 118*00d3375fSSergei Shtylyov #dma-cells = <1>; 119*00d3375fSSergei Shtylyov dma-channels = <16>; 120*00d3375fSSergei Shtylyov }; 121*00d3375fSSergei Shtylyov 122*00d3375fSSergei Shtylyov dmac2: dma-controller@e7310000 { 123*00d3375fSSergei Shtylyov compatible = "renesas,dmac-r8a77980", 124*00d3375fSSergei Shtylyov "renesas,rcar-dmac"; 125*00d3375fSSergei Shtylyov reg = <0 0xe7310000 0 0x10000>; 126*00d3375fSSergei Shtylyov interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH 127*00d3375fSSergei Shtylyov GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH 128*00d3375fSSergei Shtylyov GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH 129*00d3375fSSergei Shtylyov GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH 130*00d3375fSSergei Shtylyov GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH 131*00d3375fSSergei Shtylyov GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH 132*00d3375fSSergei Shtylyov GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH 133*00d3375fSSergei Shtylyov GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH 134*00d3375fSSergei Shtylyov GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH 135*00d3375fSSergei Shtylyov GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH 136*00d3375fSSergei Shtylyov GIC_SPI 362 IRQ_TYPE_LEVEL_HIGH 137*00d3375fSSergei Shtylyov GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH 138*00d3375fSSergei Shtylyov GIC_SPI 364 IRQ_TYPE_LEVEL_HIGH 139*00d3375fSSergei Shtylyov GIC_SPI 365 IRQ_TYPE_LEVEL_HIGH 140*00d3375fSSergei Shtylyov GIC_SPI 366 IRQ_TYPE_LEVEL_HIGH 141*00d3375fSSergei Shtylyov GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH 142*00d3375fSSergei Shtylyov GIC_SPI 368 IRQ_TYPE_LEVEL_HIGH>; 143*00d3375fSSergei Shtylyov interrupt-names = "error", 144*00d3375fSSergei Shtylyov "ch0", "ch1", "ch2", "ch3", 145*00d3375fSSergei Shtylyov "ch4", "ch5", "ch6", "ch7", 146*00d3375fSSergei Shtylyov "ch8", "ch9", "ch10", "ch11", 147*00d3375fSSergei Shtylyov "ch12", "ch13", "ch14", "ch15"; 148*00d3375fSSergei Shtylyov clocks = <&cpg CPG_MOD 217>; 149*00d3375fSSergei Shtylyov clock-names = "fck"; 150*00d3375fSSergei Shtylyov power-domains = <&sysc 32>; 151*00d3375fSSergei Shtylyov resets = <&cpg 217>; 152*00d3375fSSergei Shtylyov #dma-cells = <1>; 153*00d3375fSSergei Shtylyov dma-channels = <16>; 154*00d3375fSSergei Shtylyov }; 155*00d3375fSSergei Shtylyov 156f3a54d6cSSergei Shtylyov gic: interrupt-controller@f1010000 { 157f3a54d6cSSergei Shtylyov compatible = "arm,gic-400"; 158f3a54d6cSSergei Shtylyov #interrupt-cells = <3>; 159f3a54d6cSSergei Shtylyov #address-cells = <0>; 160f3a54d6cSSergei Shtylyov interrupt-controller; 161f3a54d6cSSergei Shtylyov reg = <0x0 0xf1010000 0 0x1000>, 162f3a54d6cSSergei Shtylyov <0x0 0xf1020000 0 0x20000>, 163f3a54d6cSSergei Shtylyov <0x0 0xf1040000 0 0x20000>, 164f3a54d6cSSergei Shtylyov <0x0 0xf1060000 0 0x20000>; 165f3a54d6cSSergei Shtylyov interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | 166f3a54d6cSSergei Shtylyov IRQ_TYPE_LEVEL_HIGH)>; 167f3a54d6cSSergei Shtylyov clocks = <&cpg CPG_MOD 408>; 168f3a54d6cSSergei Shtylyov clock-names = "clk"; 169f3a54d6cSSergei Shtylyov power-domains = <&sysc 32>; 170f3a54d6cSSergei Shtylyov resets = <&cpg 408>; 171f3a54d6cSSergei Shtylyov }; 172f3a54d6cSSergei Shtylyov 173f3a54d6cSSergei Shtylyov prr: chipid@fff00044 { 174f3a54d6cSSergei Shtylyov compatible = "renesas,prr"; 175f3a54d6cSSergei Shtylyov reg = <0 0xfff00044 0 4>; 176f3a54d6cSSergei Shtylyov }; 177f3a54d6cSSergei Shtylyov }; 178f3a54d6cSSergei Shtylyov 179f3a54d6cSSergei Shtylyov timer { 180f3a54d6cSSergei Shtylyov compatible = "arm,armv8-timer"; 181f3a54d6cSSergei Shtylyov interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | 182f3a54d6cSSergei Shtylyov IRQ_TYPE_LEVEL_LOW)>, 183f3a54d6cSSergei Shtylyov <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | 184f3a54d6cSSergei Shtylyov IRQ_TYPE_LEVEL_LOW)>, 185f3a54d6cSSergei Shtylyov <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | 186f3a54d6cSSergei Shtylyov IRQ_TYPE_LEVEL_LOW)>, 187f3a54d6cSSergei Shtylyov <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | 188f3a54d6cSSergei Shtylyov IRQ_TYPE_LEVEL_LOW)>; 189f3a54d6cSSergei Shtylyov }; 190f3a54d6cSSergei Shtylyov}; 191