From 18f020320fe5dce5523e1ac6eebd6efca02155ee Mon Sep 17 00:00:00 2001 From: Aaron Kling Date: Sun, 11 May 2025 21:53:40 -0500 Subject: [PATCH] arm64: tegra: Add support for NVIDIA Shield TV Pro 2019 Add initial device-tree support for NVIDIA Shield TV Pro 2019 (a.k.a MDarcy) based up the Tegra210B01 SoC with 3 GiB of LPDDR4 RAM. This is very basic, intended for checking initial Tegra210B01 support. More complete support for the device will be added later. Signed-off-by: Aaron Kling --- arch/arm64/boot/dts/nvidia/Makefile | 1 + .../dts/nvidia/tegra210b01-p2894-0050-a08.dts | 10 +++ .../boot/dts/nvidia/tegra210b01-p2894.dtsi | 70 +++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 arch/arm64/boot/dts/nvidia/tegra210b01-p2894-0050-a08.dts create mode 100644 arch/arm64/boot/dts/nvidia/tegra210b01-p2894.dtsi diff --git a/arch/arm64/boot/dts/nvidia/Makefile b/arch/arm64/boot/dts/nvidia/Makefile index b377d895c00c..7313e1b00070 100644 --- a/arch/arm64/boot/dts/nvidia/Makefile +++ b/arch/arm64/boot/dts/nvidia/Makefile @@ -26,6 +26,7 @@ dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p3450-0000.dtb dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p3541-0000.dtb dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-smaug.dtb dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2894-0050-a08.dtb +dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210b01-p2894-0050-a08.dtb dtb-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186-p2771-0000.dtb dtb-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186-p3509-0000+p3636-0001.dtb dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p2972-0000.dtb diff --git a/arch/arm64/boot/dts/nvidia/tegra210b01-p2894-0050-a08.dts b/arch/arm64/boot/dts/nvidia/tegra210b01-p2894-0050-a08.dts new file mode 100644 index 000000000000..f18266b3d8ae --- /dev/null +++ b/arch/arm64/boot/dts/nvidia/tegra210b01-p2894-0050-a08.dts @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; + +#include "tegra210b01-p2894.dtsi" + +/ { + model = "NVIDIA Shield TV Pro 2019"; + compatible = "nvidia,p2894-0050-a08", "nvidia,darcy", "nvidia,tegra210b01", + "nvidia,tegra210"; +}; diff --git a/arch/arm64/boot/dts/nvidia/tegra210b01-p2894.dtsi b/arch/arm64/boot/dts/nvidia/tegra210b01-p2894.dtsi new file mode 100644 index 000000000000..97c9bd8f2935 --- /dev/null +++ b/arch/arm64/boot/dts/nvidia/tegra210b01-p2894.dtsi @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "tegra210b01.dtsi" + +/ { + aliases { + serial0 = &uarta; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + memory@80000000 { + device_type = "memory"; + reg = <0x0 0x80000000 0x0 0xc0000000>; + }; + + serial@70006000 { + /delete-property/ dmas; + /delete-property/ dma-names; + status = "okay"; + }; + + pmc@7000e400 { + nvidia,invert-interrupt; + nvidia,suspend-mode = <0>; + nvidia,cpu-pwr-good-time = <0>; + nvidia,cpu-pwr-off-time = <0>; + nvidia,core-pwr-good-time = <4587 3876>; + nvidia,core-pwr-off-time = <39065>; + nvidia,core-power-req-active-high; + nvidia,sys-clock-req-active-high; + status = "okay"; + }; + + mmc@700b0600 { + bus-width = <8>; + non-removable; + status = "okay"; + }; + + clk32k_in: clock-32k { + compatible = "fixed-clock"; + clock-frequency = <32768>; + #clock-cells = <0>; + }; + + cpus { + cpu@0 { + enable-method = "psci"; + }; + + cpu@1 { + enable-method = "psci"; + }; + + cpu@2 { + enable-method = "psci"; + }; + + cpu@3 { + enable-method = "psci"; + }; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; +};