From: Chun Ng <chunn@nvidia.com>
To: <linux-tegra@vger.kernel.org>
Cc: <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<robh@kernel.org>, <krzk+dt@kernel.org>, <conor+dt@kernel.org>,
<thierry.reding@gmail.com>, <jonathanh@nvidia.com>,
<chunn@nvidia.com>, <ankitag@nvidia.com>
Subject: [PATCH 4/4] arm64: tegra: add e2426-1099+e2423-1099 support
Date: Wed, 25 Mar 2026 21:26:28 +0000 [thread overview]
Message-ID: <20260325212628.1234082-5-chunn@nvidia.com> (raw)
In-Reply-To: <20260325212628.1234082-1-chunn@nvidia.com>
Add the Tegra238 SoC device tree (tegra238.dtsi) and a minimal device
tree for the Tegra238 E2426-1099+E2423-1099 engineering reference
platform. The device-tree is not yet bootable and further enablement
will be added in follow-up patches.
Signed-off-by: Chun Ng <chunn@nvidia.com>
---
arch/arm64/boot/dts/nvidia/Makefile | 2 +
.../nvidia/tegra238-e2426-1099+e2423-1099.dts | 16 ++
arch/arm64/boot/dts/nvidia/tegra238.dtsi | 190 ++++++++++++++++++
3 files changed, 208 insertions(+)
create mode 100644 arch/arm64/boot/dts/nvidia/tegra238-e2426-1099+e2423-1099.dts
create mode 100644 arch/arm64/boot/dts/nvidia/tegra238.dtsi
diff --git a/arch/arm64/boot/dts/nvidia/Makefile b/arch/arm64/boot/dts/nvidia/Makefile
index b139cbd14442..a5357809e222 100644
--- a/arch/arm64/boot/dts/nvidia/Makefile
+++ b/arch/arm64/boot/dts/nvidia/Makefile
@@ -13,6 +13,7 @@ DTC_FLAGS_tegra234-p3737-0000+p3701-0000 := -@
DTC_FLAGS_tegra234-p3740-0002+p3701-0008 := -@
DTC_FLAGS_tegra234-p3768-0000+p3767-0000 := -@
DTC_FLAGS_tegra234-p3768-0000+p3767-0005 := -@
+DTC_FLAGS_tegra238-e2426-1099+e2423-1099 := -@
DTC_FLAGS_tegra264-p3971-0089+p3834-0008 := -@
dtb-$(CONFIG_ARCH_TEGRA_132_SOC) += tegra132-norrin.dtb
@@ -34,4 +35,5 @@ dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3737-0000+p3701-0008.dtb
dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3740-0002+p3701-0008.dtb
dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3768-0000+p3767-0000.dtb
dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3768-0000+p3767-0005.dtb
+dtb-$(CONFIG_ARCH_TEGRA_238_SOC) += tegra238-e2426-1099+e2423-1099.dtb
dtb-$(CONFIG_ARCH_TEGRA_264_SOC) += tegra264-p3971-0089+p3834-0008.dtb
diff --git a/arch/arm64/boot/dts/nvidia/tegra238-e2426-1099+e2423-1099.dts b/arch/arm64/boot/dts/nvidia/tegra238-e2426-1099+e2423-1099.dts
new file mode 100644
index 000000000000..d69ea2114e23
--- /dev/null
+++ b/arch/arm64/boot/dts/nvidia/tegra238-e2426-1099+e2423-1099.dts
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+
+/dts-v1/;
+
+#include "tegra238.dtsi"
+
+/ {
+ model = "NVIDIA Tegra238 E2426-1099+E2423-1099";
+ compatible = "nvidia,e2426-1099+e2423-1099", "nvidia,tegra238";
+
+ bus@0 {
+ uarta: serial@3100000 {
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/nvidia/tegra238.dtsi b/arch/arm64/boot/dts/nvidia/tegra238.dtsi
new file mode 100644
index 000000000000..0570c3b20e62
--- /dev/null
+++ b/arch/arm64/boot/dts/nvidia/tegra238.dtsi
@@ -0,0 +1,190 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+
+#include <dt-bindings/clock/nvidia,tegra238.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/mailbox/tegra186-hsp.h>
+#include <dt-bindings/reset/nvidia,tegra238.h>
+
+/ {
+ compatible = "nvidia,tegra238";
+ interrupt-parent = <&gic>;
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ bus@0 {
+ compatible = "simple-bus";
+
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges = <0x0 0x0 0x0 0x0 0x0 0x80000000>;
+
+ uarta: serial@3100000 {
+ compatible = "arm,pl011", "arm,primecell";
+ reg = <0x0 0x3100000 0x0 0x10000>;
+ interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&bpmp TEGRA238_CLK_UARTA>,
+ <&bpmp TEGRA238_CLK_PLLP_OUT0>;
+ clock-names = "uartclk", "apb_pclk";
+ assigned-clocks = <&bpmp TEGRA238_CLK_UARTA>;
+ assigned-clock-parents = <&bpmp TEGRA238_CLK_PLLP_OUT0>;
+ resets = <&bpmp TEGRA238_RESET_UARTA>;
+ arm,primecell-periphid = <0x00051011>;
+ status = "disabled";
+ };
+
+ fuse@3810000 {
+ compatible = "nvidia,tegra234-efuse";
+ reg = <0x0 0x03810000 0x0 0x19000>;
+ clocks = <&bpmp TEGRA238_CLK_FUSE>;
+ clock-names = "fuse";
+ };
+
+ hsp_top0: tegra-hsp@3c00000 {
+ compatible = "nvidia,tegra234-hsp", "nvidia,tegra194-hsp";
+ reg = <0x0 0x03c00000 0x0 0x000a0000>;
+ interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "doorbell", "shared0";
+ #mbox-cells = <2>;
+ };
+
+ hsp_top1: tegra-hsp@3d00000 {
+ compatible = "nvidia,tegra186-hsp";
+ reg = <0x0 0x03d00000 0x0 0x000a0000>;
+ interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "shared0";
+ #mbox-cells = <2>;
+ };
+
+ aon_hsp: tegra-hsp@c150000 {
+ compatible = "nvidia,tegra186-hsp";
+ reg = <0x0 0x0c150000 0x0 0x00090000>;
+ interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "shared1";
+ };
+
+ gic: interrupt-controller@f400000 {
+ compatible = "arm,gic-v3";
+ #interrupt-cells = <3>;
+ #address-cells = <0>;
+ #redistributor-regions = <1>;
+ interrupt-controller;
+ reg = <0x0 0x0f400000 0x0 0x00010000 /* GICD */
+ 0x0 0x0f440000 0x0 0x00200000>; /* GICR CPU 0-15 */
+ };
+
+ sram@40000000 {
+ compatible = "nvidia,tegra234-sysram", "mmio-sram";
+ reg = <0x0 0x40000000 0x0 0x72000>;
+ ranges = <0x0 0x0 0x40000000 0x72000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ no-memory-wc;
+
+ cpu_bpmp_tx: sram@70000 {
+ reg = <0x70000 0x1000>;
+ label = "cpu-bpmp-tx";
+ pool;
+ };
+
+ cpu_bpmp_rx: sram@71000 {
+ reg = <0x71000 0x1000>;
+ label = "cpu-bpmp-rx";
+ pool;
+ };
+ };
+ };
+
+ bpmp: bpmp {
+ compatible = "nvidia,tegra234-bpmp", "nvidia,tegra186-bpmp";
+ mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB TEGRA_HSP_DB_MASTER_BPMP>;
+ shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ #power-domain-cells = <1>;
+
+ bpmp_i2c: i2c {
+ compatible = "nvidia,tegra186-bpmp-i2c";
+ nvidia,bpmp-bus-id = <5>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu0_0: cpu@0 {
+ compatible = "arm,armv8";
+ device_type = "cpu";
+ reg = <0x000>;
+
+ enable-method = "psci";
+ };
+
+ cpu0_1: cpu@1 {
+ compatible = "arm,armv8";
+ device_type = "cpu";
+ reg = <0x100>;
+
+ enable-method = "psci";
+ };
+
+ cpu0_2: cpu@2 {
+ compatible = "arm,armv8";
+ device_type = "cpu";
+ reg = <0x200>;
+
+ enable-method = "psci";
+ };
+
+ cpu0_3: cpu@3 {
+ compatible = "arm,armv8";
+ device_type = "cpu";
+ reg = <0x300>;
+
+ enable-method = "psci";
+ };
+
+ cpu0_4: cpu@4 {
+ compatible = "arm,armv8";
+ device_type = "cpu";
+ reg = <0x400>;
+
+ enable-method = "psci";
+ };
+
+ cpu0_5: cpu@5 {
+ compatible = "arm,armv8";
+ device_type = "cpu";
+ reg = <0x500>;
+
+ enable-method = "psci";
+ };
+
+ cpu0_6: cpu@6 {
+ compatible = "arm,armv8";
+ device_type = "cpu";
+ reg = <0x600>;
+
+ enable-method = "psci";
+ };
+
+ cpu0_7: cpu@7 {
+ compatible = "arm,armv8";
+ device_type = "cpu";
+ reg = <0x700>;
+
+ enable-method = "psci";
+ };
+ };
+
+ timer {
+ compatible = "arm,armv8-timer";
+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
+ };
+};
--
2.43.0
next prev parent reply other threads:[~2026-03-25 21:27 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-25 21:26 [PATCH 0/4] arm64: tegra: add initial Tegra238 and E2426-1099+E2423-1099 support Chun Ng
2026-03-25 21:26 ` [PATCH 1/4] dt-bindings: tegra: Add Tegra238 clock and reset definitions Chun Ng
2026-03-26 10:19 ` Krzysztof Kozlowski
2026-03-25 21:26 ` [PATCH 2/4] dt-bindings: tegra: Document E2426-1099+E2423-1099 platform Chun Ng
2026-03-25 21:26 ` [PATCH 3/4] dt-bindings: mailbox: tegra186-hsp: allow doorbell+shared or shared-only Chun Ng
2026-03-26 10:22 ` Krzysztof Kozlowski
2026-03-25 21:26 ` Chun Ng [this message]
2026-03-26 10:18 ` [PATCH 4/4] arm64: tegra: add e2426-1099+e2423-1099 support Krzysztof Kozlowski
2026-03-26 11:03 ` Thierry Reding
2026-03-26 11:12 ` Krzysztof Kozlowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260325212628.1234082-5-chunn@nvidia.com \
--to=chunn@nvidia.com \
--cc=ankitag@nvidia.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jonathanh@nvidia.com \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=robh@kernel.org \
--cc=thierry.reding@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox