1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun#include <dt-bindings/clock/tegra234-clock.h> 4*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 5*4882a593Smuzhiyun#include <dt-bindings/mailbox/tegra186-hsp.h> 6*4882a593Smuzhiyun#include <dt-bindings/reset/tegra234-reset.h> 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun/ { 9*4882a593Smuzhiyun compatible = "nvidia,tegra234"; 10*4882a593Smuzhiyun interrupt-parent = <&gic>; 11*4882a593Smuzhiyun #address-cells = <2>; 12*4882a593Smuzhiyun #size-cells = <2>; 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun bus@0 { 15*4882a593Smuzhiyun compatible = "simple-bus"; 16*4882a593Smuzhiyun #address-cells = <1>; 17*4882a593Smuzhiyun #size-cells = <1>; 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun ranges = <0x0 0x0 0x0 0x40000000>; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun misc@100000 { 22*4882a593Smuzhiyun compatible = "nvidia,tegra234-misc"; 23*4882a593Smuzhiyun reg = <0x00100000 0xf000>, 24*4882a593Smuzhiyun <0x0010f000 0x1000>; 25*4882a593Smuzhiyun status = "okay"; 26*4882a593Smuzhiyun }; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun uarta: serial@3100000 { 29*4882a593Smuzhiyun compatible = "nvidia,tegra234-uart", "nvidia,tegra20-uart"; 30*4882a593Smuzhiyun reg = <0x03100000 0x10000>; 31*4882a593Smuzhiyun interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 32*4882a593Smuzhiyun clocks = <&bpmp TEGRA234_CLK_UARTA>; 33*4882a593Smuzhiyun clock-names = "serial"; 34*4882a593Smuzhiyun resets = <&bpmp TEGRA234_RESET_UARTA>; 35*4882a593Smuzhiyun reset-names = "serial"; 36*4882a593Smuzhiyun status = "disabled"; 37*4882a593Smuzhiyun }; 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun mmc@3460000 { 40*4882a593Smuzhiyun compatible = "nvidia,tegra234-sdhci", "nvidia,tegra186-sdhci"; 41*4882a593Smuzhiyun reg = <0x03460000 0x20000>; 42*4882a593Smuzhiyun interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 43*4882a593Smuzhiyun clocks = <&bpmp TEGRA234_CLK_SDMMC4>; 44*4882a593Smuzhiyun clock-names = "sdhci"; 45*4882a593Smuzhiyun resets = <&bpmp TEGRA234_RESET_SDMMC4>; 46*4882a593Smuzhiyun reset-names = "sdhci"; 47*4882a593Smuzhiyun dma-coherent; 48*4882a593Smuzhiyun status = "disabled"; 49*4882a593Smuzhiyun }; 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun fuse@3810000 { 52*4882a593Smuzhiyun compatible = "nvidia,tegra234-efuse"; 53*4882a593Smuzhiyun reg = <0x03810000 0x10000>; 54*4882a593Smuzhiyun clocks = <&bpmp TEGRA234_CLK_FUSE>; 55*4882a593Smuzhiyun clock-names = "fuse"; 56*4882a593Smuzhiyun }; 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun hsp_top0: hsp@3c00000 { 59*4882a593Smuzhiyun compatible = "nvidia,tegra234-hsp", "nvidia,tegra194-hsp"; 60*4882a593Smuzhiyun reg = <0x03c00000 0xa0000>; 61*4882a593Smuzhiyun interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>, 62*4882a593Smuzhiyun <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 63*4882a593Smuzhiyun <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 64*4882a593Smuzhiyun <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 65*4882a593Smuzhiyun <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 66*4882a593Smuzhiyun <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 67*4882a593Smuzhiyun <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 68*4882a593Smuzhiyun <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>, 69*4882a593Smuzhiyun <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; 70*4882a593Smuzhiyun interrupt-names = "doorbell", "shared0", "shared1", "shared2", 71*4882a593Smuzhiyun "shared3", "shared4", "shared5", "shared6", 72*4882a593Smuzhiyun "shared7"; 73*4882a593Smuzhiyun #mbox-cells = <2>; 74*4882a593Smuzhiyun }; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun hsp_aon: hsp@c150000 { 77*4882a593Smuzhiyun compatible = "nvidia,tegra234-hsp", "nvidia,tegra194-hsp"; 78*4882a593Smuzhiyun reg = <0x0c150000 0x90000>; 79*4882a593Smuzhiyun interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>, 80*4882a593Smuzhiyun <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 81*4882a593Smuzhiyun <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>, 82*4882a593Smuzhiyun <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>; 83*4882a593Smuzhiyun /* 84*4882a593Smuzhiyun * Shared interrupt 0 is routed only to AON/SPE, so 85*4882a593Smuzhiyun * we only have 4 shared interrupts for the CCPLEX. 86*4882a593Smuzhiyun */ 87*4882a593Smuzhiyun interrupt-names = "shared1", "shared2", "shared3", "shared4"; 88*4882a593Smuzhiyun #mbox-cells = <2>; 89*4882a593Smuzhiyun }; 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun rtc@c2a0000 { 92*4882a593Smuzhiyun compatible = "nvidia,tegra234-rtc", "nvidia,tegra20-rtc"; 93*4882a593Smuzhiyun reg = <0x0c2a0000 0x10000>; 94*4882a593Smuzhiyun interrupt-parent = <&pmc>; 95*4882a593Smuzhiyun interrupts = <73 IRQ_TYPE_LEVEL_HIGH>; 96*4882a593Smuzhiyun status = "disabled"; 97*4882a593Smuzhiyun }; 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun pmc: pmc@c360000 { 100*4882a593Smuzhiyun compatible = "nvidia,tegra234-pmc"; 101*4882a593Smuzhiyun reg = <0x0c360000 0x10000>, 102*4882a593Smuzhiyun <0x0c370000 0x10000>, 103*4882a593Smuzhiyun <0x0c380000 0x10000>, 104*4882a593Smuzhiyun <0x0c390000 0x10000>, 105*4882a593Smuzhiyun <0x0c3a0000 0x10000>; 106*4882a593Smuzhiyun reg-names = "pmc", "wake", "aotag", "scratch", "misc"; 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun #interrupt-cells = <2>; 109*4882a593Smuzhiyun interrupt-controller; 110*4882a593Smuzhiyun }; 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun gic: interrupt-controller@f400000 { 113*4882a593Smuzhiyun compatible = "arm,gic-v3"; 114*4882a593Smuzhiyun reg = <0x0f400000 0x010000>, /* GICD */ 115*4882a593Smuzhiyun <0x0f440000 0x200000>; /* GICR */ 116*4882a593Smuzhiyun interrupt-parent = <&gic>; 117*4882a593Smuzhiyun interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun #redistributor-regions = <1>; 120*4882a593Smuzhiyun #interrupt-cells = <3>; 121*4882a593Smuzhiyun interrupt-controller; 122*4882a593Smuzhiyun }; 123*4882a593Smuzhiyun }; 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun sysram@40000000 { 126*4882a593Smuzhiyun compatible = "nvidia,tegra234-sysram", "mmio-sram"; 127*4882a593Smuzhiyun reg = <0x0 0x40000000 0x0 0x50000>; 128*4882a593Smuzhiyun #address-cells = <1>; 129*4882a593Smuzhiyun #size-cells = <1>; 130*4882a593Smuzhiyun ranges = <0x0 0x0 0x40000000 0x50000>; 131*4882a593Smuzhiyun 132*4882a593Smuzhiyun cpu_bpmp_tx: shmem@4e000 { 133*4882a593Smuzhiyun reg = <0x4e000 0x1000>; 134*4882a593Smuzhiyun label = "cpu-bpmp-tx"; 135*4882a593Smuzhiyun pool; 136*4882a593Smuzhiyun }; 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun cpu_bpmp_rx: shmem@4f000 { 139*4882a593Smuzhiyun reg = <0x4f000 0x1000>; 140*4882a593Smuzhiyun label = "cpu-bpmp-rx"; 141*4882a593Smuzhiyun pool; 142*4882a593Smuzhiyun }; 143*4882a593Smuzhiyun }; 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun bpmp: bpmp { 146*4882a593Smuzhiyun compatible = "nvidia,tegra234-bpmp", "nvidia,tegra186-bpmp"; 147*4882a593Smuzhiyun mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB 148*4882a593Smuzhiyun TEGRA_HSP_DB_MASTER_BPMP>; 149*4882a593Smuzhiyun shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>; 150*4882a593Smuzhiyun #clock-cells = <1>; 151*4882a593Smuzhiyun #reset-cells = <1>; 152*4882a593Smuzhiyun #power-domain-cells = <1>; 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun bpmp_i2c: i2c { 155*4882a593Smuzhiyun compatible = "nvidia,tegra186-bpmp-i2c"; 156*4882a593Smuzhiyun nvidia,bpmp-bus-id = <5>; 157*4882a593Smuzhiyun #address-cells = <1>; 158*4882a593Smuzhiyun #size-cells = <0>; 159*4882a593Smuzhiyun }; 160*4882a593Smuzhiyun }; 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun cpus { 163*4882a593Smuzhiyun #address-cells = <1>; 164*4882a593Smuzhiyun #size-cells = <0>; 165*4882a593Smuzhiyun 166*4882a593Smuzhiyun cpu@0 { 167*4882a593Smuzhiyun device_type = "cpu"; 168*4882a593Smuzhiyun reg = <0x000>; 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun enable-method = "psci"; 171*4882a593Smuzhiyun }; 172*4882a593Smuzhiyun }; 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun psci { 175*4882a593Smuzhiyun compatible = "arm,psci-1.0"; 176*4882a593Smuzhiyun status = "okay"; 177*4882a593Smuzhiyun method = "smc"; 178*4882a593Smuzhiyun }; 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun timer { 181*4882a593Smuzhiyun compatible = "arm,armv8-timer"; 182*4882a593Smuzhiyun interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 183*4882a593Smuzhiyun <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 184*4882a593Smuzhiyun <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 185*4882a593Smuzhiyun <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 186*4882a593Smuzhiyun interrupt-parent = <&gic>; 187*4882a593Smuzhiyun always-on; 188*4882a593Smuzhiyun }; 189*4882a593Smuzhiyun}; 190