Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: r8a7742: Initial SoC device tree

The initial R8A7742 SoC device tree including CPU[0-8], PMU, PFC,
CPG, RST, SYSC, ICRAM[0-2], SCIFA2, MMC1, DMAC[0-1], GIC, PRR, timer
and the required clock descriptions.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Marian-Cristian Rotariu <marian-cristian.rotariu.rb@bp.renesas.com>
Link: https://lore.kernel.org/r/1588542414-14826-7-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>

authored by

Lad Prabhakar and committed by
Geert Uytterhoeven
eb4cdda7 ca0762ee

+389
+389
arch/arm/boot/dts/r8a7742.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * Device Tree Source for the r8a7742 SoC 4 + * 5 + * Copyright (C) 2020 Renesas Electronics Corp. 6 + */ 7 + 8 + #include <dt-bindings/clock/r8a7742-cpg-mssr.h> 9 + #include <dt-bindings/interrupt-controller/arm-gic.h> 10 + #include <dt-bindings/interrupt-controller/irq.h> 11 + #include <dt-bindings/power/r8a7742-sysc.h> 12 + 13 + / { 14 + compatible = "renesas,r8a7742"; 15 + #address-cells = <2>; 16 + #size-cells = <2>; 17 + 18 + cpus { 19 + #address-cells = <1>; 20 + #size-cells = <0>; 21 + 22 + cpu0: cpu@0 { 23 + device_type = "cpu"; 24 + compatible = "arm,cortex-a15"; 25 + reg = <0>; 26 + clock-frequency = <1400000000>; 27 + clocks = <&cpg CPG_CORE R8A7742_CLK_Z>; 28 + power-domains = <&sysc R8A7742_PD_CA15_CPU0>; 29 + next-level-cache = <&L2_CA15>; 30 + capacity-dmips-mhz = <1024>; 31 + voltage-tolerance = <1>; /* 1% */ 32 + clock-latency = <300000>; /* 300 us */ 33 + 34 + /* kHz - uV - OPPs unknown yet */ 35 + operating-points = <1400000 1000000>, 36 + <1225000 1000000>, 37 + <1050000 1000000>, 38 + < 875000 1000000>, 39 + < 700000 1000000>, 40 + < 350000 1000000>; 41 + }; 42 + 43 + cpu1: cpu@1 { 44 + device_type = "cpu"; 45 + compatible = "arm,cortex-a15"; 46 + reg = <1>; 47 + clock-frequency = <1400000000>; 48 + clocks = <&cpg CPG_CORE R8A7742_CLK_Z>; 49 + power-domains = <&sysc R8A7742_PD_CA15_CPU1>; 50 + next-level-cache = <&L2_CA15>; 51 + capacity-dmips-mhz = <1024>; 52 + voltage-tolerance = <1>; /* 1% */ 53 + clock-latency = <300000>; /* 300 us */ 54 + 55 + /* kHz - uV - OPPs unknown yet */ 56 + operating-points = <1400000 1000000>, 57 + <1225000 1000000>, 58 + <1050000 1000000>, 59 + < 875000 1000000>, 60 + < 700000 1000000>, 61 + < 350000 1000000>; 62 + }; 63 + 64 + cpu2: cpu@2 { 65 + device_type = "cpu"; 66 + compatible = "arm,cortex-a15"; 67 + reg = <2>; 68 + clock-frequency = <1400000000>; 69 + clocks = <&cpg CPG_CORE R8A7742_CLK_Z>; 70 + power-domains = <&sysc R8A7742_PD_CA15_CPU2>; 71 + next-level-cache = <&L2_CA15>; 72 + capacity-dmips-mhz = <1024>; 73 + voltage-tolerance = <1>; /* 1% */ 74 + clock-latency = <300000>; /* 300 us */ 75 + 76 + /* kHz - uV - OPPs unknown yet */ 77 + operating-points = <1400000 1000000>, 78 + <1225000 1000000>, 79 + <1050000 1000000>, 80 + < 875000 1000000>, 81 + < 700000 1000000>, 82 + < 350000 1000000>; 83 + }; 84 + 85 + cpu3: cpu@3 { 86 + device_type = "cpu"; 87 + compatible = "arm,cortex-a15"; 88 + reg = <3>; 89 + clock-frequency = <1400000000>; 90 + clocks = <&cpg CPG_CORE R8A7742_CLK_Z>; 91 + power-domains = <&sysc R8A7742_PD_CA15_CPU3>; 92 + next-level-cache = <&L2_CA15>; 93 + capacity-dmips-mhz = <1024>; 94 + voltage-tolerance = <1>; /* 1% */ 95 + clock-latency = <300000>; /* 300 us */ 96 + 97 + /* kHz - uV - OPPs unknown yet */ 98 + operating-points = <1400000 1000000>, 99 + <1225000 1000000>, 100 + <1050000 1000000>, 101 + < 875000 1000000>, 102 + < 700000 1000000>, 103 + < 350000 1000000>; 104 + }; 105 + 106 + cpu4: cpu@100 { 107 + device_type = "cpu"; 108 + compatible = "arm,cortex-a7"; 109 + reg = <0x100>; 110 + clock-frequency = <780000000>; 111 + clocks = <&cpg CPG_CORE R8A7742_CLK_Z2>; 112 + power-domains = <&sysc R8A7742_PD_CA7_CPU0>; 113 + next-level-cache = <&L2_CA7>; 114 + }; 115 + 116 + cpu5: cpu@101 { 117 + device_type = "cpu"; 118 + compatible = "arm,cortex-a7"; 119 + reg = <0x101>; 120 + clock-frequency = <780000000>; 121 + clocks = <&cpg CPG_CORE R8A7742_CLK_Z2>; 122 + power-domains = <&sysc R8A7742_PD_CA7_CPU1>; 123 + next-level-cache = <&L2_CA7>; 124 + }; 125 + 126 + cpu6: cpu@102 { 127 + device_type = "cpu"; 128 + compatible = "arm,cortex-a7"; 129 + reg = <0x102>; 130 + clock-frequency = <780000000>; 131 + clocks = <&cpg CPG_CORE R8A7742_CLK_Z2>; 132 + power-domains = <&sysc R8A7742_PD_CA7_CPU2>; 133 + next-level-cache = <&L2_CA7>; 134 + }; 135 + 136 + cpu7: cpu@103 { 137 + device_type = "cpu"; 138 + compatible = "arm,cortex-a7"; 139 + reg = <0x103>; 140 + clock-frequency = <780000000>; 141 + clocks = <&cpg CPG_CORE R8A7742_CLK_Z2>; 142 + power-domains = <&sysc R8A7742_PD_CA7_CPU3>; 143 + next-level-cache = <&L2_CA7>; 144 + }; 145 + 146 + L2_CA15: cache-controller-0 { 147 + compatible = "cache"; 148 + power-domains = <&sysc R8A7742_PD_CA15_SCU>; 149 + cache-unified; 150 + cache-level = <2>; 151 + }; 152 + 153 + L2_CA7: cache-controller-1 { 154 + compatible = "cache"; 155 + power-domains = <&sysc R8A7742_PD_CA7_SCU>; 156 + cache-unified; 157 + cache-level = <2>; 158 + }; 159 + }; 160 + 161 + /* External root clock */ 162 + extal_clk: extal { 163 + compatible = "fixed-clock"; 164 + #clock-cells = <0>; 165 + /* This value must be overridden by the board. */ 166 + clock-frequency = <0>; 167 + }; 168 + 169 + pmu-0 { 170 + compatible = "arm,cortex-a15-pmu"; 171 + interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 172 + <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, 173 + <&gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, 174 + <&gic GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 175 + interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 176 + }; 177 + 178 + pmu-1 { 179 + compatible = "arm,cortex-a7-pmu"; 180 + interrupts-extended = <&gic GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>, 181 + <&gic GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>, 182 + <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, 183 + <&gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 184 + interrupt-affinity = <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>; 185 + }; 186 + 187 + /* External SCIF clock */ 188 + scif_clk: scif { 189 + compatible = "fixed-clock"; 190 + #clock-cells = <0>; 191 + /* This value must be overridden by the board. */ 192 + clock-frequency = <0>; 193 + }; 194 + 195 + soc { 196 + compatible = "simple-bus"; 197 + interrupt-parent = <&gic>; 198 + 199 + #address-cells = <2>; 200 + #size-cells = <2>; 201 + ranges; 202 + 203 + pfc: pin-controller@e6060000 { 204 + compatible = "renesas,pfc-r8a7742"; 205 + reg = <0 0xe6060000 0 0x250>; 206 + }; 207 + 208 + cpg: clock-controller@e6150000 { 209 + compatible = "renesas,r8a7742-cpg-mssr"; 210 + reg = <0 0xe6150000 0 0x1000>; 211 + clocks = <&extal_clk>, <&usb_extal_clk>; 212 + clock-names = "extal", "usb_extal"; 213 + #clock-cells = <2>; 214 + #power-domain-cells = <0>; 215 + #reset-cells = <1>; 216 + }; 217 + 218 + rst: reset-controller@e6160000 { 219 + compatible = "renesas,r8a7742-rst"; 220 + reg = <0 0xe6160000 0 0x0100>; 221 + }; 222 + 223 + sysc: system-controller@e6180000 { 224 + compatible = "renesas,r8a7742-sysc"; 225 + reg = <0 0xe6180000 0 0x0200>; 226 + #power-domain-cells = <1>; 227 + }; 228 + 229 + icram0: sram@e63a0000 { 230 + compatible = "mmio-sram"; 231 + reg = <0 0xe63a0000 0 0x12000>; 232 + #address-cells = <1>; 233 + #size-cells = <1>; 234 + ranges = <0 0 0xe63a0000 0x12000>; 235 + }; 236 + 237 + icram1: sram@e63c0000 { 238 + compatible = "mmio-sram"; 239 + reg = <0 0xe63c0000 0 0x1000>; 240 + #address-cells = <1>; 241 + #size-cells = <1>; 242 + ranges = <0 0 0xe63c0000 0x1000>; 243 + 244 + smp-sram@0 { 245 + compatible = "renesas,smp-sram"; 246 + reg = <0 0x100>; 247 + }; 248 + }; 249 + 250 + icram2: sram@e6300000 { 251 + compatible = "mmio-sram"; 252 + reg = <0 0xe6300000 0 0x40000>; 253 + #address-cells = <1>; 254 + #size-cells = <1>; 255 + ranges = <0 0 0xe6300000 0x40000>; 256 + }; 257 + 258 + dmac0: dma-controller@e6700000 { 259 + compatible = "renesas,dmac-r8a7742", 260 + "renesas,rcar-dmac"; 261 + reg = <0 0xe6700000 0 0x20000>; 262 + interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>, 263 + <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>, 264 + <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>, 265 + <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>, 266 + <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>, 267 + <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>, 268 + <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>, 269 + <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>, 270 + <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>, 271 + <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>, 272 + <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>, 273 + <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>, 274 + <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>, 275 + <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>, 276 + <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>, 277 + <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>; 278 + interrupt-names = "error", 279 + "ch0", "ch1", "ch2", "ch3", 280 + "ch4", "ch5", "ch6", "ch7", 281 + "ch8", "ch9", "ch10", "ch11", 282 + "ch12", "ch13", "ch14"; 283 + clocks = <&cpg CPG_MOD 219>; 284 + clock-names = "fck"; 285 + power-domains = <&sysc R8A7742_PD_ALWAYS_ON>; 286 + resets = <&cpg 219>; 287 + #dma-cells = <1>; 288 + dma-channels = <15>; 289 + }; 290 + 291 + dmac1: dma-controller@e6720000 { 292 + compatible = "renesas,dmac-r8a7742", 293 + "renesas,rcar-dmac"; 294 + reg = <0 0xe6720000 0 0x20000>; 295 + interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>, 296 + <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>, 297 + <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>, 298 + <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>, 299 + <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>, 300 + <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>, 301 + <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>, 302 + <GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>, 303 + <GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>, 304 + <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>, 305 + <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>, 306 + <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>, 307 + <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>, 308 + <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>, 309 + <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>, 310 + <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>; 311 + interrupt-names = "error", 312 + "ch0", "ch1", "ch2", "ch3", 313 + "ch4", "ch5", "ch6", "ch7", 314 + "ch8", "ch9", "ch10", "ch11", 315 + "ch12", "ch13", "ch14"; 316 + clocks = <&cpg CPG_MOD 218>; 317 + clock-names = "fck"; 318 + power-domains = <&sysc R8A7742_PD_ALWAYS_ON>; 319 + resets = <&cpg 218>; 320 + #dma-cells = <1>; 321 + dma-channels = <15>; 322 + }; 323 + 324 + scifa2: serial@e6c60000 { 325 + compatible = "renesas,scifa-r8a7742", 326 + "renesas,rcar-gen2-scifa", "renesas,scifa"; 327 + reg = <0 0xe6c60000 0 0x40>; 328 + interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 329 + clocks = <&cpg CPG_MOD 202>; 330 + clock-names = "fck"; 331 + dmas = <&dmac0 0x27>, <&dmac0 0x28>, 332 + <&dmac1 0x27>, <&dmac1 0x28>; 333 + dma-names = "tx", "rx", "tx", "rx"; 334 + power-domains = <&sysc R8A7742_PD_ALWAYS_ON>; 335 + resets = <&cpg 202>; 336 + status = "disabled"; 337 + }; 338 + 339 + mmcif1: mmc@ee220000 { 340 + compatible = "renesas,mmcif-r8a7742", 341 + "renesas,sh-mmcif"; 342 + reg = <0 0xee220000 0 0x80>; 343 + interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>; 344 + clocks = <&cpg CPG_MOD 305>; 345 + dmas = <&dmac0 0xe1>, <&dmac0 0xe2>, 346 + <&dmac1 0xe1>, <&dmac1 0xe2>; 347 + dma-names = "tx", "rx", "tx", "rx"; 348 + power-domains = <&sysc R8A7742_PD_ALWAYS_ON>; 349 + resets = <&cpg 305>; 350 + reg-io-width = <4>; 351 + status = "disabled"; 352 + max-frequency = <97500000>; 353 + }; 354 + 355 + gic: interrupt-controller@f1001000 { 356 + compatible = "arm,gic-400"; 357 + #interrupt-cells = <3>; 358 + #address-cells = <0>; 359 + interrupt-controller; 360 + reg = <0 0xf1001000 0 0x1000>, <0 0xf1002000 0 0x2000>, 361 + <0 0xf1004000 0 0x2000>, <0 0xf1006000 0 0x2000>; 362 + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; 363 + clocks = <&cpg CPG_MOD 408>; 364 + clock-names = "clk"; 365 + power-domains = <&sysc R8A7742_PD_ALWAYS_ON>; 366 + resets = <&cpg 408>; 367 + }; 368 + 369 + prr: chipid@ff000044 { 370 + compatible = "renesas,prr"; 371 + reg = <0 0xff000044 0 4>; 372 + }; 373 + }; 374 + 375 + timer { 376 + compatible = "arm,armv7-timer"; 377 + interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 378 + <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 379 + <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 380 + <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 381 + }; 382 + 383 + /* External USB clock - can be overridden by the board */ 384 + usb_extal_clk: usb_extal { 385 + compatible = "fixed-clock"; 386 + #clock-cells = <0>; 387 + clock-frequency = <48000000>; 388 + }; 389 + };