[v2,1/5] arm64: tegra: Add support for NVIDIA Shield TV

Message ID 20190109012420.6755-2-markz@nvidia.com
State Superseded
Headers show
Series
  • NVIDIA Shield TV device tree patch set
Related show

Commit Message

Mark Zhang Jan. 9, 2019, 1:24 a.m.
Add initial device-tree support for NVIDIA Shield TV (a.k.a. Darcy)
based upon Tegra210 SoC with 3 GiB of LPDDR4 RAM.

Signed-off-by: Mark Zhang <markz@nvidia.com>
---
 arch/arm64/boot/dts/nvidia/Makefile           |  1 +
 .../dts/nvidia/tegra210-p2894-0050-a08.dts    | 10 +++
 .../arm64/boot/dts/nvidia/tegra210-p2894.dtsi | 77 +++++++++++++++++++
 3 files changed, 88 insertions(+)
 create mode 100644 arch/arm64/boot/dts/nvidia/tegra210-p2894-0050-a08.dts
 create mode 100644 arch/arm64/boot/dts/nvidia/tegra210-p2894.dtsi

Comments

Thierry Reding Jan. 10, 2019, 3:32 p.m. | #1
On Wed, Jan 09, 2019 at 09:24:16AM +0800, Mark Zhang wrote:
> Add initial device-tree support for NVIDIA Shield TV (a.k.a. Darcy)
> based upon Tegra210 SoC with 3 GiB of LPDDR4 RAM.
> 
> Signed-off-by: Mark Zhang <markz@nvidia.com>
> ---
>  arch/arm64/boot/dts/nvidia/Makefile           |  1 +
>  .../dts/nvidia/tegra210-p2894-0050-a08.dts    | 10 +++
>  .../arm64/boot/dts/nvidia/tegra210-p2894.dtsi | 77 +++++++++++++++++++
>  3 files changed, 88 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/nvidia/tegra210-p2894-0050-a08.dts
>  create mode 100644 arch/arm64/boot/dts/nvidia/tegra210-p2894.dtsi
> 
> diff --git a/arch/arm64/boot/dts/nvidia/Makefile b/arch/arm64/boot/dts/nvidia/Makefile
> index 7c13d7df484e..6b8ab5568481 100644
> --- a/arch/arm64/boot/dts/nvidia/Makefile
> +++ b/arch/arm64/boot/dts/nvidia/Makefile
> @@ -4,5 +4,6 @@ dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-0000.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-2180.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2571.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_186_SOC) += tegra186-p2771-0000.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p2972-0000.dtb
> diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2894-0050-a08.dts b/arch/arm64/boot/dts/nvidia/tegra210-p2894-0050-a08.dts
> new file mode 100644
> index 000000000000..57bf5ccd30e4
> --- /dev/null
> +++ b/arch/arm64/boot/dts/nvidia/tegra210-p2894-0050-a08.dts
> @@ -0,0 +1,10 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/dts-v1/;
> +
> +#include "tegra210.dtsi"
> +#include "tegra210-p2894.dtsi"

There's no need to include tegra210.dtsi above because it's already
pulled in by tegra210-p2894.dtsi.

> +
> +/ {
> +	model = "NVIDIA Shield TV";
> +	compatible = "nvidia,darcy", "nvidia,tegra210";

Perhaps we should add another compatible string here that defines the
exact type of board:

	compatible = "nvidia,p2894-0050-a08", "nvidia,darcy", "nvidia,tegra210";

?

Thierry
Mark Zhang Jan. 11, 2019, 2:47 a.m. | #2
On 1/10/2019 11:32 PM, Thierry Reding wrote:
> On Wed, Jan 09, 2019 at 09:24:16AM +0800, Mark Zhang wrote:
>> Add initial device-tree support for NVIDIA Shield TV (a.k.a. Darcy)
>> based upon Tegra210 SoC with 3 GiB of LPDDR4 RAM.
>>
>> Signed-off-by: Mark Zhang <markz@nvidia.com>
>> ---
>>  arch/arm64/boot/dts/nvidia/Makefile           |  1 +
>>  .../dts/nvidia/tegra210-p2894-0050-a08.dts    | 10 +++
>>  .../arm64/boot/dts/nvidia/tegra210-p2894.dtsi | 77 +++++++++++++++++++
>>  3 files changed, 88 insertions(+)
>>  create mode 100644 arch/arm64/boot/dts/nvidia/tegra210-p2894-0050-a08.dts
>>  create mode 100644 arch/arm64/boot/dts/nvidia/tegra210-p2894.dtsi
>>
>> diff --git a/arch/arm64/boot/dts/nvidia/Makefile b/arch/arm64/boot/dts/nvidia/Makefile
>> index 7c13d7df484e..6b8ab5568481 100644
>> --- a/arch/arm64/boot/dts/nvidia/Makefile
>> +++ b/arch/arm64/boot/dts/nvidia/Makefile
>> @@ -4,5 +4,6 @@ dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-0000.dtb
>>  dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-2180.dtb
>>  dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2571.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_186_SOC) += tegra186-p2771-0000.dtb
>>  dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p2972-0000.dtb
>> diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2894-0050-a08.dts b/arch/arm64/boot/dts/nvidia/tegra210-p2894-0050-a08.dts
>> new file mode 100644
>> index 000000000000..57bf5ccd30e4
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/nvidia/tegra210-p2894-0050-a08.dts
>> @@ -0,0 +1,10 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +/dts-v1/;
>> +
>> +#include "tegra210.dtsi"
>> +#include "tegra210-p2894.dtsi"
> 
> There's no need to include tegra210.dtsi above because it's already
> pulled in by tegra210-p2894.dtsi.
> 

Yep.

>> +
>> +/ {
>> +	model = "NVIDIA Shield TV";
>> +	compatible = "nvidia,darcy", "nvidia,tegra210";
> 
> Perhaps we should add another compatible string here that defines the
> exact type of board:
> 
> 	compatible = "nvidia,p2894-0050-a08", "nvidia,darcy", "nvidia,tegra210";
> 

Done.

Mark
> ?
> 
> Thierry
>

Patch

diff --git a/arch/arm64/boot/dts/nvidia/Makefile b/arch/arm64/boot/dts/nvidia/Makefile
index 7c13d7df484e..6b8ab5568481 100644
--- a/arch/arm64/boot/dts/nvidia/Makefile
+++ b/arch/arm64/boot/dts/nvidia/Makefile
@@ -4,5 +4,6 @@  dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-0000.dtb
 dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-2180.dtb
 dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2571.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_186_SOC) += tegra186-p2771-0000.dtb
 dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p2972-0000.dtb
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2894-0050-a08.dts b/arch/arm64/boot/dts/nvidia/tegra210-p2894-0050-a08.dts
new file mode 100644
index 000000000000..57bf5ccd30e4
--- /dev/null
+++ b/arch/arm64/boot/dts/nvidia/tegra210-p2894-0050-a08.dts
@@ -0,0 +1,10 @@ 
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "tegra210.dtsi"
+#include "tegra210-p2894.dtsi"
+
+/ {
+	model = "NVIDIA Shield TV";
+	compatible = "nvidia,darcy", "nvidia,tegra210";
+};
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2894.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2894.dtsi
new file mode 100644
index 000000000000..ac52286ab9ab
--- /dev/null
+++ b/arch/arm64/boot/dts/nvidia/tegra210-p2894.dtsi
@@ -0,0 +1,77 @@ 
+// SPDX-License-Identifier: GPL-2.0
+
+#include "tegra210.dtsi"
+
+/ {
+	aliases {
+		serial0 = &uarta;
+	};
+
+	chosen {
+		bootargs = "earlycon";
+		stdout-path = "serial0:115200n8";
+	};
+
+	memory {
+		device_type = "memory";
+		reg = <0x0 0x80000000 0x0 0xc0000000>;
+	};
+
+	serial@70006000 {
+		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";
+	};
+
+	sdhci@700b0600 {
+		bus-width = <8>;
+		non-removable;
+		status = "okay";
+	};
+
+	clocks {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		clk32k_in: clock@0 {
+			compatible = "fixed-clock";
+			reg = <0>;
+			#clock-cells = <0>;
+			clock-frequency = <32768>;
+		};
+	};
+
+	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";
+	};
+};