1c7ba99c8SStephen Warren#include "skeleton.dtsi" 219014203SStephen Warren#include <dt-bindings/clock/tegra186-clock.h> 30388634aSStephen Warren#include <dt-bindings/gpio/tegra186-gpio.h> 4c7ba99c8SStephen Warren#include <dt-bindings/interrupt-controller/arm-gic.h> 5729c2db7SStephen Warren#include <dt-bindings/mailbox/tegra186-hsp.h> 6*20bbde06SStephen Warren#include <dt-bindings/power/tegra186-powergate.h> 719014203SStephen Warren#include <dt-bindings/reset/tegra186-reset.h> 8c7ba99c8SStephen Warren 9c7ba99c8SStephen Warren/ { 10c7ba99c8SStephen Warren compatible = "nvidia,tegra186"; 11*20bbde06SStephen Warren interrupt-parent = <&gic>; 12c7ba99c8SStephen Warren #address-cells = <2>; 13c7ba99c8SStephen Warren #size-cells = <2>; 14c7ba99c8SStephen Warren 1519014203SStephen Warren gpio_main: gpio@2200000 { 16c7ba99c8SStephen Warren compatible = "nvidia,tegra186-gpio"; 17c7ba99c8SStephen Warren reg-names = "security", "gpio"; 18c7ba99c8SStephen Warren reg = 19c7ba99c8SStephen Warren <0x0 0x2200000 0x0 0x10000>, 20c7ba99c8SStephen Warren <0x0 0x2210000 0x0 0x10000>; 21c7ba99c8SStephen Warren interrupts = 22c7ba99c8SStephen Warren <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, 23c7ba99c8SStephen Warren <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, 24c7ba99c8SStephen Warren <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 25c7ba99c8SStephen Warren <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 26c7ba99c8SStephen Warren <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 27c7ba99c8SStephen Warren <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>; 28c7ba99c8SStephen Warren gpio-controller; 29c7ba99c8SStephen Warren #gpio-cells = <2>; 30c7ba99c8SStephen Warren interrupt-controller; 31c7ba99c8SStephen Warren #interrupt-cells = <2>; 32c7ba99c8SStephen Warren }; 33c7ba99c8SStephen Warren 34c7ba99c8SStephen Warren uarta: serial@3100000 { 35c7ba99c8SStephen Warren compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart"; 36c7ba99c8SStephen Warren reg = <0x0 0x03100000 0x0 0x10000>; 37c7ba99c8SStephen Warren reg-shift = <2>; 38c7ba99c8SStephen Warren status = "disabled"; 39c7ba99c8SStephen Warren }; 40c7ba99c8SStephen Warren 4119014203SStephen Warren sdhci@3400000 { 4219014203SStephen Warren compatible = "nvidia,tegra186-sdhci"; 4319014203SStephen Warren reg = <0x0 0x03400000 0x0 0x200>; 4419014203SStephen Warren resets = <&bpmp TEGRA186_RESET_SDMMC1>; 4519014203SStephen Warren reset-names = "sdmmc"; 4619014203SStephen Warren clocks = <&bpmp TEGRA186_CLK_SDMMC1>; 4719014203SStephen Warren clock-names = "sdmmc"; 4819014203SStephen Warren interrupts = <GIC_SPI 62 0x04>; 4919014203SStephen Warren status = "disabled"; 5019014203SStephen Warren }; 5119014203SStephen Warren 52c7ba99c8SStephen Warren sdhci@3460000 { 53c7ba99c8SStephen Warren compatible = "nvidia,tegra186-sdhci"; 54c7ba99c8SStephen Warren reg = <0x0 0x03460000 0x0 0x200>; 5519014203SStephen Warren resets = <&bpmp TEGRA186_RESET_SDMMC4>; 5619014203SStephen Warren reset-names = "sdmmc"; 5719014203SStephen Warren clocks = <&bpmp TEGRA186_CLK_SDMMC4>; 5819014203SStephen Warren clock-names = "sdmmc"; 59c7ba99c8SStephen Warren interrupts = <GIC_SPI 31 0x04>; 60c7ba99c8SStephen Warren status = "disabled"; 61c7ba99c8SStephen Warren }; 62c7ba99c8SStephen Warren 63*20bbde06SStephen Warren gic: interrupt-controller@3881000 { 64*20bbde06SStephen Warren compatible = "arm,gic-400"; 65*20bbde06SStephen Warren #interrupt-cells = <3>; 66*20bbde06SStephen Warren interrupt-controller; 67*20bbde06SStephen Warren reg = <0x0 0x3881000 0x0 0x1000>, 68*20bbde06SStephen Warren <0x0 0x3882000 0x0 0x2000>, 69*20bbde06SStephen Warren <0x0 0x3884000 0x0 0x2000>, 70*20bbde06SStephen Warren <0x0 0x3886000 0x0 0x2000>; 71*20bbde06SStephen Warren interrupts = <GIC_PPI 9 72*20bbde06SStephen Warren (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 73*20bbde06SStephen Warren interrupt-parent = <&gic>; 74*20bbde06SStephen Warren }; 75*20bbde06SStephen Warren 760f67e239SStephen Warren hsp: hsp@3c00000 { 770f67e239SStephen Warren compatible = "nvidia,tegra186-hsp"; 780f67e239SStephen Warren reg = <0x0 0x03c00000 0x0 0xa0000>; 790f67e239SStephen Warren interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; 80729c2db7SStephen Warren interrupt-names = "doorbell"; 81729c2db7SStephen Warren #mbox-cells = <2>; 820f67e239SStephen Warren }; 830f67e239SStephen Warren 8419014203SStephen Warren gpio_aon: gpio@c2f0000 { 85c7ba99c8SStephen Warren compatible = "nvidia,tegra186-gpio-aon"; 86c7ba99c8SStephen Warren reg-names = "security", "gpio"; 87c7ba99c8SStephen Warren reg = 88c7ba99c8SStephen Warren <0x0 0xc2f0000 0x0 0x1000>, 89c7ba99c8SStephen Warren <0x0 0xc2f1000 0x0 0x1000>; 90c7ba99c8SStephen Warren interrupts = 91c7ba99c8SStephen Warren <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 92c7ba99c8SStephen Warren gpio-controller; 93c7ba99c8SStephen Warren #gpio-cells = <2>; 94c7ba99c8SStephen Warren interrupt-controller; 95c7ba99c8SStephen Warren #interrupt-cells = <2>; 96c7ba99c8SStephen Warren }; 9719014203SStephen Warren 98*20bbde06SStephen Warren pcie-controller@10003000 { 99*20bbde06SStephen Warren compatible = "nvidia,tegra186-pcie"; 100*20bbde06SStephen Warren device_type = "pci"; 101*20bbde06SStephen Warren reg = <0x0 0x10003000 0x0 0x00000800 /* PADS registers */ 102*20bbde06SStephen Warren 0x0 0x10003800 0x0 0x00000800 /* AFI registers */ 103*20bbde06SStephen Warren 0x0 0x40000000 0x0 0x10000000>; /* configuration space */ 104*20bbde06SStephen Warren reg-names = "pads", "afi", "cs"; 105*20bbde06SStephen Warren interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */ 106*20bbde06SStephen Warren <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, /* MSI interrupt */ 107*20bbde06SStephen Warren <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; /* Wake interrupt */ 108*20bbde06SStephen Warren interrupt-names = "intr", "msi", "wake"; 109*20bbde06SStephen Warren 110*20bbde06SStephen Warren #interrupt-cells = <1>; 111*20bbde06SStephen Warren interrupt-map-mask = <0 0 0 0>; 112*20bbde06SStephen Warren interrupt-map = <0 0 0 0 &gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 113*20bbde06SStephen Warren 114*20bbde06SStephen Warren bus-range = <0x00 0xff>; 115*20bbde06SStephen Warren #address-cells = <3>; 116*20bbde06SStephen Warren #size-cells = <2>; 117*20bbde06SStephen Warren 118*20bbde06SStephen Warren ranges = <0x82000000 0 0x10000000 0x0 0x10000000 0 0x00001000 /* port 0 configuration space */ 119*20bbde06SStephen Warren 0x82000000 0 0x10001000 0x0 0x10001000 0 0x00001000 /* port 1 configuration space */ 120*20bbde06SStephen Warren 0x82000000 0 0x10004000 0x0 0x10004000 0 0x00001000 /* port 2 configuration space */ 121*20bbde06SStephen Warren 0x81000000 0 0x0 0x0 0x50000000 0 0x00010000 /* downstream I/O (64 KiB) */ 122*20bbde06SStephen Warren 0x82000000 0 0x50100000 0x0 0x50100000 0 0x07f00000 /* non-prefetchable memory (127 MiB) */ 123*20bbde06SStephen Warren 0xc2000000 0 0x58000000 0x0 0x58000000 0 0x28000000>; /* prefetchable memory (640 MiB) */ 124*20bbde06SStephen Warren 125*20bbde06SStephen Warren clocks = <&bpmp TEGRA186_CLK_PCIE>, 126*20bbde06SStephen Warren <&bpmp TEGRA186_CLK_AFI>; 127*20bbde06SStephen Warren clock-names = "pex", "afi"; 128*20bbde06SStephen Warren resets = <&bpmp TEGRA186_RESET_PCIE>, 129*20bbde06SStephen Warren <&bpmp TEGRA186_RESET_AFI>, 130*20bbde06SStephen Warren <&bpmp TEGRA186_RESET_PCIEXCLK>; 131*20bbde06SStephen Warren reset-names = "pex", "afi", "pcie_x"; 132*20bbde06SStephen Warren power-domains = <&bpmp TEGRA186_POWER_DOMAIN_PCX>; 133*20bbde06SStephen Warren status = "disabled"; 134*20bbde06SStephen Warren 135*20bbde06SStephen Warren pci@1,0 { 136*20bbde06SStephen Warren device_type = "pci"; 137*20bbde06SStephen Warren assigned-addresses = <0x82000800 0 0x10000000 0 0x1000>; 138*20bbde06SStephen Warren reg = <0x000800 0 0 0 0>; 139*20bbde06SStephen Warren status = "disabled"; 140*20bbde06SStephen Warren 141*20bbde06SStephen Warren #address-cells = <3>; 142*20bbde06SStephen Warren #size-cells = <2>; 143*20bbde06SStephen Warren ranges; 144*20bbde06SStephen Warren 145*20bbde06SStephen Warren nvidia,num-lanes = <2>; 146*20bbde06SStephen Warren }; 147*20bbde06SStephen Warren 148*20bbde06SStephen Warren pci@2,0 { 149*20bbde06SStephen Warren device_type = "pci"; 150*20bbde06SStephen Warren assigned-addresses = <0x82001000 0 0x10001000 0 0x1000>; 151*20bbde06SStephen Warren reg = <0x001000 0 0 0 0>; 152*20bbde06SStephen Warren status = "disabled"; 153*20bbde06SStephen Warren 154*20bbde06SStephen Warren #address-cells = <3>; 155*20bbde06SStephen Warren #size-cells = <2>; 156*20bbde06SStephen Warren ranges; 157*20bbde06SStephen Warren 158*20bbde06SStephen Warren nvidia,num-lanes = <1>; 159*20bbde06SStephen Warren }; 160*20bbde06SStephen Warren 161*20bbde06SStephen Warren pci@3,0 { 162*20bbde06SStephen Warren device_type = "pci"; 163*20bbde06SStephen Warren assigned-addresses = <0x82001800 0 0x10004000 0 0x1000>; 164*20bbde06SStephen Warren reg = <0x001800 0 0 0 0>; 165*20bbde06SStephen Warren status = "disabled"; 166*20bbde06SStephen Warren 167*20bbde06SStephen Warren #address-cells = <3>; 168*20bbde06SStephen Warren #size-cells = <2>; 169*20bbde06SStephen Warren ranges; 170*20bbde06SStephen Warren 171*20bbde06SStephen Warren nvidia,num-lanes = <1>; 172*20bbde06SStephen Warren }; 173*20bbde06SStephen Warren }; 174*20bbde06SStephen Warren 17519014203SStephen Warren sysram@30000000 { 17619014203SStephen Warren compatible = "nvidia,tegra186-sysram", "mmio-sram"; 17719014203SStephen Warren reg = <0x0 0x30000000 0x0 0x50000>; 17819014203SStephen Warren #address-cells = <2>; 17919014203SStephen Warren #size-cells = <2>; 18019014203SStephen Warren ranges = <0 0x0 0x0 0x30000000 0x0 0x50000>; 18119014203SStephen Warren 18219014203SStephen Warren sysram_cpu_bpmp_tx: shmem@4e000 { 18319014203SStephen Warren compatible = "nvidia,tegra186-bpmp-shmem"; 18419014203SStephen Warren reg = <0x0 0x4e000 0x0 0x1000>; 18519014203SStephen Warren }; 18619014203SStephen Warren 18719014203SStephen Warren sysram_cpu_bpmp_rx: shmem@4f000 { 18819014203SStephen Warren compatible = "nvidia,tegra186-bpmp-shmem"; 18919014203SStephen Warren reg = <0x0 0x4f000 0x0 0x1000>; 19019014203SStephen Warren }; 19119014203SStephen Warren }; 19219014203SStephen Warren 19319014203SStephen Warren bpmp: bpmp { 19419014203SStephen Warren compatible = "nvidia,tegra186-bpmp"; 19519014203SStephen Warren mboxes = <&hsp HSP_MBOX_TYPE_DB HSP_DB_MASTER_BPMP>; 19619014203SStephen Warren /* 19719014203SStephen Warren * In theory, these references, and the configuration in the 19819014203SStephen Warren * node these reference point at, are board-specific, since 19919014203SStephen Warren * they depend on the BCT's memory carve-out setup, the 20019014203SStephen Warren * firmware that's actually loaded onto the BPMP, etc. However, 20119014203SStephen Warren * in practice, all boards are likely to use identical values. 20219014203SStephen Warren */ 20319014203SStephen Warren shmem = <&sysram_cpu_bpmp_tx &sysram_cpu_bpmp_rx>; 20419014203SStephen Warren #clock-cells = <1>; 20519014203SStephen Warren #power-domain-cells = <1>; 20619014203SStephen Warren #reset-cells = <1>; 20723ab5bdaSStephen Warren 20823ab5bdaSStephen Warren bpmp_i2c: i2c { 20923ab5bdaSStephen Warren compatible = "nvidia,tegra186-bpmp-i2c"; 21023ab5bdaSStephen Warren nvidia,bpmp = <&bpmp>; 21123ab5bdaSStephen Warren nvidia,bpmp-bus-id = <5>; 21223ab5bdaSStephen Warren #address-cells = <1>; 21323ab5bdaSStephen Warren #size-cells = <0>; 21423ab5bdaSStephen Warren status = "disabled"; 21523ab5bdaSStephen Warren }; 21619014203SStephen Warren }; 217c7ba99c8SStephen Warren}; 218