163944891SThierry Reding// SPDX-License-Identifier: GPL-2.0
263944891SThierry Reding
363944891SThierry Reding#include <dt-bindings/clock/tegra234-clock.h>
463944891SThierry Reding#include <dt-bindings/interrupt-controller/arm-gic.h>
563944891SThierry Reding#include <dt-bindings/mailbox/tegra186-hsp.h>
663944891SThierry Reding#include <dt-bindings/reset/tegra234-reset.h>
763944891SThierry Reding
863944891SThierry Reding/ {
963944891SThierry Reding	compatible = "nvidia,tegra234";
1063944891SThierry Reding	interrupt-parent = <&gic>;
1163944891SThierry Reding	#address-cells = <2>;
1263944891SThierry Reding	#size-cells = <2>;
1363944891SThierry Reding
1463944891SThierry Reding	bus@0 {
1563944891SThierry Reding		compatible = "simple-bus";
1663944891SThierry Reding		#address-cells = <1>;
1763944891SThierry Reding		#size-cells = <1>;
1863944891SThierry Reding
1963944891SThierry Reding		ranges = <0x0 0x0 0x0 0x40000000>;
2063944891SThierry Reding
2163944891SThierry Reding		misc@100000 {
2263944891SThierry Reding			compatible = "nvidia,tegra234-misc";
2363944891SThierry Reding			reg = <0x00100000 0xf000>,
2463944891SThierry Reding			      <0x0010f000 0x1000>;
2563944891SThierry Reding			status = "okay";
2663944891SThierry Reding		};
2763944891SThierry Reding
2863944891SThierry Reding		uarta: serial@3100000 {
2963944891SThierry Reding			compatible = "nvidia,tegra234-uart", "nvidia,tegra20-uart";
3063944891SThierry Reding			reg = <0x03100000 0x10000>;
3163944891SThierry Reding			interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
3263944891SThierry Reding			clocks = <&bpmp TEGRA234_CLK_UARTA>;
3363944891SThierry Reding			clock-names = "serial";
3463944891SThierry Reding			resets = <&bpmp TEGRA234_RESET_UARTA>;
3563944891SThierry Reding			reset-names = "serial";
3663944891SThierry Reding			status = "disabled";
3763944891SThierry Reding		};
3863944891SThierry Reding
3963944891SThierry Reding		mmc@3460000 {
4063944891SThierry Reding			compatible = "nvidia,tegra234-sdhci", "nvidia,tegra186-sdhci";
4163944891SThierry Reding			reg = <0x03460000 0x20000>;
4263944891SThierry Reding			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
43*e086d82dSMikko Perttunen			clocks = <&bpmp TEGRA234_CLK_SDMMC4>,
44*e086d82dSMikko Perttunen				 <&bpmp TEGRA234_CLK_SDMMC_LEGACY_TM>;
45*e086d82dSMikko Perttunen			clock-names = "sdhci", "tmclk";
46*e086d82dSMikko Perttunen			assigned-clocks = <&bpmp TEGRA234_CLK_SDMMC4>,
47*e086d82dSMikko Perttunen					  <&bpmp TEGRA234_CLK_PLLC4>;
48*e086d82dSMikko Perttunen			assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLC4>;
4963944891SThierry Reding			resets = <&bpmp TEGRA234_RESET_SDMMC4>;
5063944891SThierry Reding			reset-names = "sdhci";
51*e086d82dSMikko Perttunen			nvidia,pad-autocal-pull-up-offset-hs400 = <0x00>;
52*e086d82dSMikko Perttunen			nvidia,pad-autocal-pull-down-offset-hs400 = <0x00>;
53*e086d82dSMikko Perttunen			nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x0a>;
54*e086d82dSMikko Perttunen			nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x0a>;
55*e086d82dSMikko Perttunen			nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x0a>;
56*e086d82dSMikko Perttunen			nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x0a>;
57*e086d82dSMikko Perttunen			nvidia,default-tap = <0x8>;
58*e086d82dSMikko Perttunen			nvidia,default-trim = <0x14>;
59*e086d82dSMikko Perttunen			nvidia,dqs-trim = <40>;
60*e086d82dSMikko Perttunen			supports-cqe;
6163944891SThierry Reding			status = "disabled";
6263944891SThierry Reding		};
6363944891SThierry Reding
6463944891SThierry Reding		fuse@3810000 {
6563944891SThierry Reding			compatible = "nvidia,tegra234-efuse";
6663944891SThierry Reding			reg = <0x03810000 0x10000>;
6763944891SThierry Reding			clocks = <&bpmp TEGRA234_CLK_FUSE>;
6863944891SThierry Reding			clock-names = "fuse";
6963944891SThierry Reding		};
7063944891SThierry Reding
7163944891SThierry Reding		hsp_top0: hsp@3c00000 {
7263944891SThierry Reding			compatible = "nvidia,tegra234-hsp", "nvidia,tegra194-hsp";
7363944891SThierry Reding			reg = <0x03c00000 0xa0000>;
7463944891SThierry Reding			interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>,
7563944891SThierry Reding				     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
7663944891SThierry Reding				     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
7763944891SThierry Reding				     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
7863944891SThierry Reding				     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
7963944891SThierry Reding				     <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
8063944891SThierry Reding				     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
8163944891SThierry Reding				     <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
8263944891SThierry Reding				     <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
8363944891SThierry Reding			interrupt-names = "doorbell", "shared0", "shared1", "shared2",
8463944891SThierry Reding					  "shared3", "shared4", "shared5", "shared6",
8563944891SThierry Reding					  "shared7";
8663944891SThierry Reding			#mbox-cells = <2>;
8763944891SThierry Reding		};
8863944891SThierry Reding
8963944891SThierry Reding		hsp_aon: hsp@c150000 {
9063944891SThierry Reding			compatible = "nvidia,tegra234-hsp", "nvidia,tegra194-hsp";
9163944891SThierry Reding			reg = <0x0c150000 0x90000>;
9263944891SThierry Reding			interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
9363944891SThierry Reding				     <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
9463944891SThierry Reding				     <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
9563944891SThierry Reding				     <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
9663944891SThierry Reding			/*
9763944891SThierry Reding			 * Shared interrupt 0 is routed only to AON/SPE, so
9863944891SThierry Reding			 * we only have 4 shared interrupts for the CCPLEX.
9963944891SThierry Reding			 */
10063944891SThierry Reding			interrupt-names = "shared1", "shared2", "shared3", "shared4";
10163944891SThierry Reding			#mbox-cells = <2>;
10263944891SThierry Reding		};
10363944891SThierry Reding
10463944891SThierry Reding		rtc@c2a0000 {
10563944891SThierry Reding			compatible = "nvidia,tegra234-rtc", "nvidia,tegra20-rtc";
10663944891SThierry Reding			reg = <0x0c2a0000 0x10000>;
10763944891SThierry Reding			interrupt-parent = <&pmc>;
10863944891SThierry Reding			interrupts = <73 IRQ_TYPE_LEVEL_HIGH>;
109e537addeSMikko Perttunen			clocks = <&bpmp TEGRA234_CLK_CLK_32K>;
110e537addeSMikko Perttunen			clock-names = "rtc";
11163944891SThierry Reding			status = "disabled";
11263944891SThierry Reding		};
11363944891SThierry Reding
11463944891SThierry Reding		pmc: pmc@c360000 {
11563944891SThierry Reding			compatible = "nvidia,tegra234-pmc";
11663944891SThierry Reding			reg = <0x0c360000 0x10000>,
11763944891SThierry Reding			      <0x0c370000 0x10000>,
11863944891SThierry Reding			      <0x0c380000 0x10000>,
11963944891SThierry Reding			      <0x0c390000 0x10000>,
12063944891SThierry Reding			      <0x0c3a0000 0x10000>;
12163944891SThierry Reding			reg-names = "pmc", "wake", "aotag", "scratch", "misc";
12263944891SThierry Reding
12363944891SThierry Reding			#interrupt-cells = <2>;
12463944891SThierry Reding			interrupt-controller;
12563944891SThierry Reding		};
12663944891SThierry Reding
12763944891SThierry Reding		gic: interrupt-controller@f400000 {
12863944891SThierry Reding			compatible = "arm,gic-v3";
12963944891SThierry Reding			reg = <0x0f400000 0x010000>, /* GICD */
13063944891SThierry Reding			      <0x0f440000 0x200000>; /* GICR */
13163944891SThierry Reding			interrupt-parent = <&gic>;
13263944891SThierry Reding			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
13363944891SThierry Reding
13463944891SThierry Reding			#redistributor-regions = <1>;
13563944891SThierry Reding			#interrupt-cells = <3>;
13663944891SThierry Reding			interrupt-controller;
13763944891SThierry Reding		};
13863944891SThierry Reding	};
13963944891SThierry Reding
1407fa30752SThierry Reding	sram@40000000 {
14163944891SThierry Reding		compatible = "nvidia,tegra234-sysram", "mmio-sram";
14298094be1SMikko Perttunen		reg = <0x0 0x40000000 0x0 0x80000>;
14363944891SThierry Reding		#address-cells = <1>;
14463944891SThierry Reding		#size-cells = <1>;
14598094be1SMikko Perttunen		ranges = <0x0 0x0 0x40000000 0x80000>;
14663944891SThierry Reding
14798094be1SMikko Perttunen		cpu_bpmp_tx: sram@70000 {
14898094be1SMikko Perttunen			reg = <0x70000 0x1000>;
14963944891SThierry Reding			label = "cpu-bpmp-tx";
15063944891SThierry Reding			pool;
15163944891SThierry Reding		};
15263944891SThierry Reding
15398094be1SMikko Perttunen		cpu_bpmp_rx: sram@71000 {
15498094be1SMikko Perttunen			reg = <0x71000 0x1000>;
15563944891SThierry Reding			label = "cpu-bpmp-rx";
15663944891SThierry Reding			pool;
15763944891SThierry Reding		};
15863944891SThierry Reding	};
15963944891SThierry Reding
16063944891SThierry Reding	bpmp: bpmp {
16163944891SThierry Reding		compatible = "nvidia,tegra234-bpmp", "nvidia,tegra186-bpmp";
16263944891SThierry Reding		mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB
16363944891SThierry Reding				    TEGRA_HSP_DB_MASTER_BPMP>;
1647fa30752SThierry Reding		shmem = <&cpu_bpmp_tx>, <&cpu_bpmp_rx>;
16563944891SThierry Reding		#clock-cells = <1>;
16663944891SThierry Reding		#reset-cells = <1>;
16763944891SThierry Reding		#power-domain-cells = <1>;
16863944891SThierry Reding
16963944891SThierry Reding		bpmp_i2c: i2c {
17063944891SThierry Reding			compatible = "nvidia,tegra186-bpmp-i2c";
17163944891SThierry Reding			nvidia,bpmp-bus-id = <5>;
17263944891SThierry Reding			#address-cells = <1>;
17363944891SThierry Reding			#size-cells = <0>;
17463944891SThierry Reding		};
17563944891SThierry Reding	};
17663944891SThierry Reding
17763944891SThierry Reding	cpus {
17863944891SThierry Reding		#address-cells = <1>;
17963944891SThierry Reding		#size-cells = <0>;
18063944891SThierry Reding
18163944891SThierry Reding		cpu@0 {
18263944891SThierry Reding			device_type = "cpu";
18363944891SThierry Reding			reg = <0x000>;
18463944891SThierry Reding
18563944891SThierry Reding			enable-method = "psci";
18663944891SThierry Reding		};
18763944891SThierry Reding	};
18863944891SThierry Reding
18963944891SThierry Reding	psci {
19063944891SThierry Reding		compatible = "arm,psci-1.0";
19163944891SThierry Reding		status = "okay";
19263944891SThierry Reding		method = "smc";
19363944891SThierry Reding	};
19463944891SThierry Reding
19563944891SThierry Reding	timer {
19663944891SThierry Reding		compatible = "arm,armv8-timer";
19763944891SThierry Reding		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
19863944891SThierry Reding			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
19963944891SThierry Reding			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
20063944891SThierry Reding			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
20163944891SThierry Reding		interrupt-parent = <&gic>;
20263944891SThierry Reding		always-on;
20363944891SThierry Reding	};
20463944891SThierry Reding};
205