1*f3a54d6cSSergei Shtylyov// SPDX-License-Identifier: GPL-2.0 2*f3a54d6cSSergei Shtylyov/* 3*f3a54d6cSSergei Shtylyov * Device Tree Source for the r8a77980 SoC 4*f3a54d6cSSergei Shtylyov * 5*f3a54d6cSSergei Shtylyov * Copyright (C) 2018 Renesas Electronics Corp. 6*f3a54d6cSSergei Shtylyov * Copyright (C) 2018 Cogent Embedded, Inc. 7*f3a54d6cSSergei Shtylyov */ 8*f3a54d6cSSergei Shtylyov 9*f3a54d6cSSergei Shtylyov#include <dt-bindings/interrupt-controller/irq.h> 10*f3a54d6cSSergei Shtylyov#include <dt-bindings/interrupt-controller/arm-gic.h> 11*f3a54d6cSSergei Shtylyov#include <dt-bindings/clock/renesas-cpg-mssr.h> 12*f3a54d6cSSergei Shtylyov 13*f3a54d6cSSergei Shtylyov/ { 14*f3a54d6cSSergei Shtylyov compatible = "renesas,r8a77980"; 15*f3a54d6cSSergei Shtylyov #address-cells = <2>; 16*f3a54d6cSSergei Shtylyov #size-cells = <2>; 17*f3a54d6cSSergei Shtylyov 18*f3a54d6cSSergei Shtylyov cpus { 19*f3a54d6cSSergei Shtylyov #address-cells = <1>; 20*f3a54d6cSSergei Shtylyov #size-cells = <0>; 21*f3a54d6cSSergei Shtylyov 22*f3a54d6cSSergei Shtylyov a53_0: cpu@0 { 23*f3a54d6cSSergei Shtylyov device_type = "cpu"; 24*f3a54d6cSSergei Shtylyov compatible = "arm,cortex-a53", "arm,armv8"; 25*f3a54d6cSSergei Shtylyov reg = <0>; 26*f3a54d6cSSergei Shtylyov clocks = <&cpg CPG_CORE 0>; 27*f3a54d6cSSergei Shtylyov power-domains = <&sysc 5>; 28*f3a54d6cSSergei Shtylyov next-level-cache = <&L2_CA53>; 29*f3a54d6cSSergei Shtylyov enable-method = "psci"; 30*f3a54d6cSSergei Shtylyov }; 31*f3a54d6cSSergei Shtylyov 32*f3a54d6cSSergei Shtylyov L2_CA53: cache-controller { 33*f3a54d6cSSergei Shtylyov compatible = "cache"; 34*f3a54d6cSSergei Shtylyov power-domains = <&sysc 21>; 35*f3a54d6cSSergei Shtylyov cache-unified; 36*f3a54d6cSSergei Shtylyov cache-level = <2>; 37*f3a54d6cSSergei Shtylyov }; 38*f3a54d6cSSergei Shtylyov }; 39*f3a54d6cSSergei Shtylyov 40*f3a54d6cSSergei Shtylyov extal_clk: extal { 41*f3a54d6cSSergei Shtylyov compatible = "fixed-clock"; 42*f3a54d6cSSergei Shtylyov #clock-cells = <0>; 43*f3a54d6cSSergei Shtylyov /* This value must be overridden by the board */ 44*f3a54d6cSSergei Shtylyov clock-frequency = <0>; 45*f3a54d6cSSergei Shtylyov }; 46*f3a54d6cSSergei Shtylyov 47*f3a54d6cSSergei Shtylyov extalr_clk: extalr { 48*f3a54d6cSSergei Shtylyov compatible = "fixed-clock"; 49*f3a54d6cSSergei Shtylyov #clock-cells = <0>; 50*f3a54d6cSSergei Shtylyov /* This value must be overridden by the board */ 51*f3a54d6cSSergei Shtylyov clock-frequency = <0>; 52*f3a54d6cSSergei Shtylyov }; 53*f3a54d6cSSergei Shtylyov 54*f3a54d6cSSergei Shtylyov psci { 55*f3a54d6cSSergei Shtylyov compatible = "arm,psci-1.0", "arm,psci-0.2"; 56*f3a54d6cSSergei Shtylyov method = "smc"; 57*f3a54d6cSSergei Shtylyov }; 58*f3a54d6cSSergei Shtylyov 59*f3a54d6cSSergei Shtylyov soc { 60*f3a54d6cSSergei Shtylyov compatible = "simple-bus"; 61*f3a54d6cSSergei Shtylyov interrupt-parent = <&gic>; 62*f3a54d6cSSergei Shtylyov 63*f3a54d6cSSergei Shtylyov #address-cells = <2>; 64*f3a54d6cSSergei Shtylyov #size-cells = <2>; 65*f3a54d6cSSergei Shtylyov ranges; 66*f3a54d6cSSergei Shtylyov 67*f3a54d6cSSergei Shtylyov cpg: clock-controller@e6150000 { 68*f3a54d6cSSergei Shtylyov compatible = "renesas,r8a77980-cpg-mssr"; 69*f3a54d6cSSergei Shtylyov reg = <0 0xe6150000 0 0x1000>; 70*f3a54d6cSSergei Shtylyov clocks = <&extal_clk>, <&extalr_clk>; 71*f3a54d6cSSergei Shtylyov clock-names = "extal", "extalr"; 72*f3a54d6cSSergei Shtylyov #clock-cells = <2>; 73*f3a54d6cSSergei Shtylyov #power-domain-cells = <0>; 74*f3a54d6cSSergei Shtylyov #reset-cells = <1>; 75*f3a54d6cSSergei Shtylyov }; 76*f3a54d6cSSergei Shtylyov 77*f3a54d6cSSergei Shtylyov rst: reset-controller@e6160000 { 78*f3a54d6cSSergei Shtylyov compatible = "renesas,r8a77980-rst"; 79*f3a54d6cSSergei Shtylyov reg = <0 0xe6160000 0 0x200>; 80*f3a54d6cSSergei Shtylyov }; 81*f3a54d6cSSergei Shtylyov 82*f3a54d6cSSergei Shtylyov sysc: system-controller@e6180000 { 83*f3a54d6cSSergei Shtylyov compatible = "renesas,r8a77980-sysc"; 84*f3a54d6cSSergei Shtylyov reg = <0 0xe6180000 0 0x440>; 85*f3a54d6cSSergei Shtylyov #power-domain-cells = <1>; 86*f3a54d6cSSergei Shtylyov }; 87*f3a54d6cSSergei Shtylyov 88*f3a54d6cSSergei Shtylyov gic: interrupt-controller@f1010000 { 89*f3a54d6cSSergei Shtylyov compatible = "arm,gic-400"; 90*f3a54d6cSSergei Shtylyov #interrupt-cells = <3>; 91*f3a54d6cSSergei Shtylyov #address-cells = <0>; 92*f3a54d6cSSergei Shtylyov interrupt-controller; 93*f3a54d6cSSergei Shtylyov reg = <0x0 0xf1010000 0 0x1000>, 94*f3a54d6cSSergei Shtylyov <0x0 0xf1020000 0 0x20000>, 95*f3a54d6cSSergei Shtylyov <0x0 0xf1040000 0 0x20000>, 96*f3a54d6cSSergei Shtylyov <0x0 0xf1060000 0 0x20000>; 97*f3a54d6cSSergei Shtylyov interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | 98*f3a54d6cSSergei Shtylyov IRQ_TYPE_LEVEL_HIGH)>; 99*f3a54d6cSSergei Shtylyov clocks = <&cpg CPG_MOD 408>; 100*f3a54d6cSSergei Shtylyov clock-names = "clk"; 101*f3a54d6cSSergei Shtylyov power-domains = <&sysc 32>; 102*f3a54d6cSSergei Shtylyov resets = <&cpg 408>; 103*f3a54d6cSSergei Shtylyov }; 104*f3a54d6cSSergei Shtylyov 105*f3a54d6cSSergei Shtylyov prr: chipid@fff00044 { 106*f3a54d6cSSergei Shtylyov compatible = "renesas,prr"; 107*f3a54d6cSSergei Shtylyov reg = <0 0xfff00044 0 4>; 108*f3a54d6cSSergei Shtylyov }; 109*f3a54d6cSSergei Shtylyov }; 110*f3a54d6cSSergei Shtylyov 111*f3a54d6cSSergei Shtylyov timer { 112*f3a54d6cSSergei Shtylyov compatible = "arm,armv8-timer"; 113*f3a54d6cSSergei Shtylyov interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | 114*f3a54d6cSSergei Shtylyov IRQ_TYPE_LEVEL_LOW)>, 115*f3a54d6cSSergei Shtylyov <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | 116*f3a54d6cSSergei Shtylyov IRQ_TYPE_LEVEL_LOW)>, 117*f3a54d6cSSergei Shtylyov <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | 118*f3a54d6cSSergei Shtylyov IRQ_TYPE_LEVEL_LOW)>, 119*f3a54d6cSSergei Shtylyov <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | 120*f3a54d6cSSergei Shtylyov IRQ_TYPE_LEVEL_LOW)>; 121*f3a54d6cSSergei Shtylyov }; 122*f3a54d6cSSergei Shtylyov}; 123