18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ci#include <dt-bindings/clock/tegra234-clock.h> 48c2ecf20Sopenharmony_ci#include <dt-bindings/interrupt-controller/arm-gic.h> 58c2ecf20Sopenharmony_ci#include <dt-bindings/mailbox/tegra186-hsp.h> 68c2ecf20Sopenharmony_ci#include <dt-bindings/reset/tegra234-reset.h> 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci/ { 98c2ecf20Sopenharmony_ci compatible = "nvidia,tegra234"; 108c2ecf20Sopenharmony_ci interrupt-parent = <&gic>; 118c2ecf20Sopenharmony_ci #address-cells = <2>; 128c2ecf20Sopenharmony_ci #size-cells = <2>; 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci bus@0 { 158c2ecf20Sopenharmony_ci compatible = "simple-bus"; 168c2ecf20Sopenharmony_ci #address-cells = <1>; 178c2ecf20Sopenharmony_ci #size-cells = <1>; 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci ranges = <0x0 0x0 0x0 0x40000000>; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci misc@100000 { 228c2ecf20Sopenharmony_ci compatible = "nvidia,tegra234-misc"; 238c2ecf20Sopenharmony_ci reg = <0x00100000 0xf000>, 248c2ecf20Sopenharmony_ci <0x0010f000 0x1000>; 258c2ecf20Sopenharmony_ci status = "okay"; 268c2ecf20Sopenharmony_ci }; 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci uarta: serial@3100000 { 298c2ecf20Sopenharmony_ci compatible = "nvidia,tegra234-uart", "nvidia,tegra20-uart"; 308c2ecf20Sopenharmony_ci reg = <0x03100000 0x10000>; 318c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 328c2ecf20Sopenharmony_ci clocks = <&bpmp TEGRA234_CLK_UARTA>; 338c2ecf20Sopenharmony_ci clock-names = "serial"; 348c2ecf20Sopenharmony_ci resets = <&bpmp TEGRA234_RESET_UARTA>; 358c2ecf20Sopenharmony_ci reset-names = "serial"; 368c2ecf20Sopenharmony_ci status = "disabled"; 378c2ecf20Sopenharmony_ci }; 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci mmc@3460000 { 408c2ecf20Sopenharmony_ci compatible = "nvidia,tegra234-sdhci", "nvidia,tegra186-sdhci"; 418c2ecf20Sopenharmony_ci reg = <0x03460000 0x20000>; 428c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 438c2ecf20Sopenharmony_ci clocks = <&bpmp TEGRA234_CLK_SDMMC4>; 448c2ecf20Sopenharmony_ci clock-names = "sdhci"; 458c2ecf20Sopenharmony_ci resets = <&bpmp TEGRA234_RESET_SDMMC4>; 468c2ecf20Sopenharmony_ci reset-names = "sdhci"; 478c2ecf20Sopenharmony_ci dma-coherent; 488c2ecf20Sopenharmony_ci status = "disabled"; 498c2ecf20Sopenharmony_ci }; 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ci fuse@3810000 { 528c2ecf20Sopenharmony_ci compatible = "nvidia,tegra234-efuse"; 538c2ecf20Sopenharmony_ci reg = <0x03810000 0x10000>; 548c2ecf20Sopenharmony_ci clocks = <&bpmp TEGRA234_CLK_FUSE>; 558c2ecf20Sopenharmony_ci clock-names = "fuse"; 568c2ecf20Sopenharmony_ci }; 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci hsp_top0: hsp@3c00000 { 598c2ecf20Sopenharmony_ci compatible = "nvidia,tegra234-hsp", "nvidia,tegra194-hsp"; 608c2ecf20Sopenharmony_ci reg = <0x03c00000 0xa0000>; 618c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>, 628c2ecf20Sopenharmony_ci <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 638c2ecf20Sopenharmony_ci <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 648c2ecf20Sopenharmony_ci <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 658c2ecf20Sopenharmony_ci <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 668c2ecf20Sopenharmony_ci <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 678c2ecf20Sopenharmony_ci <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 688c2ecf20Sopenharmony_ci <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>, 698c2ecf20Sopenharmony_ci <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; 708c2ecf20Sopenharmony_ci interrupt-names = "doorbell", "shared0", "shared1", "shared2", 718c2ecf20Sopenharmony_ci "shared3", "shared4", "shared5", "shared6", 728c2ecf20Sopenharmony_ci "shared7"; 738c2ecf20Sopenharmony_ci #mbox-cells = <2>; 748c2ecf20Sopenharmony_ci }; 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci hsp_aon: hsp@c150000 { 778c2ecf20Sopenharmony_ci compatible = "nvidia,tegra234-hsp", "nvidia,tegra194-hsp"; 788c2ecf20Sopenharmony_ci reg = <0x0c150000 0x90000>; 798c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>, 808c2ecf20Sopenharmony_ci <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 818c2ecf20Sopenharmony_ci <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>, 828c2ecf20Sopenharmony_ci <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>; 838c2ecf20Sopenharmony_ci /* 848c2ecf20Sopenharmony_ci * Shared interrupt 0 is routed only to AON/SPE, so 858c2ecf20Sopenharmony_ci * we only have 4 shared interrupts for the CCPLEX. 868c2ecf20Sopenharmony_ci */ 878c2ecf20Sopenharmony_ci interrupt-names = "shared1", "shared2", "shared3", "shared4"; 888c2ecf20Sopenharmony_ci #mbox-cells = <2>; 898c2ecf20Sopenharmony_ci }; 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci rtc@c2a0000 { 928c2ecf20Sopenharmony_ci compatible = "nvidia,tegra234-rtc", "nvidia,tegra20-rtc"; 938c2ecf20Sopenharmony_ci reg = <0x0c2a0000 0x10000>; 948c2ecf20Sopenharmony_ci interrupt-parent = <&pmc>; 958c2ecf20Sopenharmony_ci interrupts = <73 IRQ_TYPE_LEVEL_HIGH>; 968c2ecf20Sopenharmony_ci status = "disabled"; 978c2ecf20Sopenharmony_ci }; 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_ci pmc: pmc@c360000 { 1008c2ecf20Sopenharmony_ci compatible = "nvidia,tegra234-pmc"; 1018c2ecf20Sopenharmony_ci reg = <0x0c360000 0x10000>, 1028c2ecf20Sopenharmony_ci <0x0c370000 0x10000>, 1038c2ecf20Sopenharmony_ci <0x0c380000 0x10000>, 1048c2ecf20Sopenharmony_ci <0x0c390000 0x10000>, 1058c2ecf20Sopenharmony_ci <0x0c3a0000 0x10000>; 1068c2ecf20Sopenharmony_ci reg-names = "pmc", "wake", "aotag", "scratch", "misc"; 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 1098c2ecf20Sopenharmony_ci interrupt-controller; 1108c2ecf20Sopenharmony_ci }; 1118c2ecf20Sopenharmony_ci 1128c2ecf20Sopenharmony_ci gic: interrupt-controller@f400000 { 1138c2ecf20Sopenharmony_ci compatible = "arm,gic-v3"; 1148c2ecf20Sopenharmony_ci reg = <0x0f400000 0x010000>, /* GICD */ 1158c2ecf20Sopenharmony_ci <0x0f440000 0x200000>; /* GICR */ 1168c2ecf20Sopenharmony_ci interrupt-parent = <&gic>; 1178c2ecf20Sopenharmony_ci interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 1188c2ecf20Sopenharmony_ci 1198c2ecf20Sopenharmony_ci #redistributor-regions = <1>; 1208c2ecf20Sopenharmony_ci #interrupt-cells = <3>; 1218c2ecf20Sopenharmony_ci interrupt-controller; 1228c2ecf20Sopenharmony_ci }; 1238c2ecf20Sopenharmony_ci }; 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ci sysram@40000000 { 1268c2ecf20Sopenharmony_ci compatible = "nvidia,tegra234-sysram", "mmio-sram"; 1278c2ecf20Sopenharmony_ci reg = <0x0 0x40000000 0x0 0x50000>; 1288c2ecf20Sopenharmony_ci #address-cells = <1>; 1298c2ecf20Sopenharmony_ci #size-cells = <1>; 1308c2ecf20Sopenharmony_ci ranges = <0x0 0x0 0x40000000 0x50000>; 1318c2ecf20Sopenharmony_ci 1328c2ecf20Sopenharmony_ci cpu_bpmp_tx: shmem@4e000 { 1338c2ecf20Sopenharmony_ci reg = <0x4e000 0x1000>; 1348c2ecf20Sopenharmony_ci label = "cpu-bpmp-tx"; 1358c2ecf20Sopenharmony_ci pool; 1368c2ecf20Sopenharmony_ci }; 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_ci cpu_bpmp_rx: shmem@4f000 { 1398c2ecf20Sopenharmony_ci reg = <0x4f000 0x1000>; 1408c2ecf20Sopenharmony_ci label = "cpu-bpmp-rx"; 1418c2ecf20Sopenharmony_ci pool; 1428c2ecf20Sopenharmony_ci }; 1438c2ecf20Sopenharmony_ci }; 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_ci bpmp: bpmp { 1468c2ecf20Sopenharmony_ci compatible = "nvidia,tegra234-bpmp", "nvidia,tegra186-bpmp"; 1478c2ecf20Sopenharmony_ci mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB 1488c2ecf20Sopenharmony_ci TEGRA_HSP_DB_MASTER_BPMP>; 1498c2ecf20Sopenharmony_ci shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>; 1508c2ecf20Sopenharmony_ci #clock-cells = <1>; 1518c2ecf20Sopenharmony_ci #reset-cells = <1>; 1528c2ecf20Sopenharmony_ci #power-domain-cells = <1>; 1538c2ecf20Sopenharmony_ci 1548c2ecf20Sopenharmony_ci bpmp_i2c: i2c { 1558c2ecf20Sopenharmony_ci compatible = "nvidia,tegra186-bpmp-i2c"; 1568c2ecf20Sopenharmony_ci nvidia,bpmp-bus-id = <5>; 1578c2ecf20Sopenharmony_ci #address-cells = <1>; 1588c2ecf20Sopenharmony_ci #size-cells = <0>; 1598c2ecf20Sopenharmony_ci }; 1608c2ecf20Sopenharmony_ci }; 1618c2ecf20Sopenharmony_ci 1628c2ecf20Sopenharmony_ci cpus { 1638c2ecf20Sopenharmony_ci #address-cells = <1>; 1648c2ecf20Sopenharmony_ci #size-cells = <0>; 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ci cpu@0 { 1678c2ecf20Sopenharmony_ci device_type = "cpu"; 1688c2ecf20Sopenharmony_ci reg = <0x000>; 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ci enable-method = "psci"; 1718c2ecf20Sopenharmony_ci }; 1728c2ecf20Sopenharmony_ci }; 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci psci { 1758c2ecf20Sopenharmony_ci compatible = "arm,psci-1.0"; 1768c2ecf20Sopenharmony_ci status = "okay"; 1778c2ecf20Sopenharmony_ci method = "smc"; 1788c2ecf20Sopenharmony_ci }; 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ci timer { 1818c2ecf20Sopenharmony_ci compatible = "arm,armv8-timer"; 1828c2ecf20Sopenharmony_ci interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 1838c2ecf20Sopenharmony_ci <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 1848c2ecf20Sopenharmony_ci <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 1858c2ecf20Sopenharmony_ci <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 1868c2ecf20Sopenharmony_ci interrupt-parent = <&gic>; 1878c2ecf20Sopenharmony_ci always-on; 1888c2ecf20Sopenharmony_ci }; 1898c2ecf20Sopenharmony_ci}; 190