summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2026-01-26 17:45:52 +0300
committerArnd Bergmann <arnd@arndb.de>2026-01-26 17:45:53 +0300
commit3d46ce71a7e45149447bbc2339e76d50d17438f2 (patch)
tree8a1f3ce1a3bf497cb29e2ae6644360d209e19a94
parent50411c8d83876d4e38f4e9fa0a5399afa660aefc (diff)
parentdfa93788dd8b2f9c59adf45ecf592082b1847b7b (diff)
downloadlinux-3d46ce71a7e45149447bbc2339e76d50d17438f2.tar.xz
Merge tag 'tegra-for-6.20-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
arm64: tegra: Changes for v6.20-rc1 This update improves Device Tree support for 64-bit Tegra platforms, specifically focusing on the Smaug board and the Tegra264 SoC. It enables full USB-C functionality on Smaug by adding role-switching support and enabling DisplayPort altmode. For Tegra264, it introduces nodes for Command Queue Virtualization (CMDQV) in the SMMU, adds the Data Backbone (DBB) clock for the memory controller, and corrects CPU compatible strings to match the Neoverse V3AE core. Additionally, it performs a cleanup by removing redundant status = "okay" properties across Tegra186, Tegra194, Tegra234, and Tegra264 files. * tag 'tegra-for-6.20-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: arm64: tegra: smaug: Add usb-role-switch support arm64: tegra: smaug: Complete and enable tegra-udc node arm64: tegra: smaug: Enable DisplayPort via USB-C port arm64: tegra: Correct CPU compatibles on Tegra264 arm64: tegra: Drop unneeded status=okay on Tegra264 arm64: tegra: Drop unneeded status=okay on Tegra234 arm64: tegra: Drop unneeded status=okay on Tegra194 arm64: tegra: Drop unneeded status=okay on Tegra186 arm64: tegra: Add nodes for CMDQV arm64: tegra: Add DBB clock to EMC on Tegra264 Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra186.dtsi2
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra194.dtsi15
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra210-smaug.dts25
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra234.dtsi15
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi8
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra264.dtsi64
6 files changed, 83 insertions, 46 deletions
diff --git a/arch/arm64/boot/dts/nvidia/tegra186.dtsi b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
index b00630451909..705af0373a09 100644
--- a/arch/arm64/boot/dts/nvidia/tegra186.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
@@ -120,7 +120,6 @@
iommus = <&smmu TEGRA186_SID_GPCDMA_0>;
dma-coherent;
dma-channel-mask = <0xfffffffe>;
- status = "okay";
};
aconnect@2900000 {
@@ -608,7 +607,6 @@
<GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
- status = "okay";
};
uarta: serial@3100000 {
diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
index b782f8db1288..849694f751d9 100644
--- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
@@ -97,7 +97,6 @@
<GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
nvidia,axi2apb = <&axi2apb>;
nvidia,apbmisc = <&apbmisc>;
- status = "okay";
};
axi2apb: axi2apb@2390000 {
@@ -108,13 +107,11 @@
<0x0 0x23c0000 0x0 0x1000>,
<0x0 0x23d0000 0x0 0x1000>,
<0x0 0x23e0000 0x0 0x1000>;
- status = "okay";
};
pinmux: pinmux@2430000 {
compatible = "nvidia,tegra194-pinmux";
reg = <0x0 0x2430000 0x0 0x17000>;
- status = "okay";
pex_clkreq_c5_bi_dir_state: pinmux-pex-clkreq-c5-bi-dir {
clkreq {
@@ -208,7 +205,6 @@
iommus = <&smmu TEGRA194_SID_GPCDMA_0>;
dma-coherent;
dma-channel-mask = <0xfffffffe>;
- status = "okay";
};
aconnect@2900000 {
@@ -737,7 +733,6 @@
<GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
- status = "okay";
};
uarta: serial@3100000 {
@@ -1359,7 +1354,6 @@
nvidia,int-threshold = <1>;
nvidia,slices = <11>;
#timestamp-cells = <1>;
- status = "okay";
};
hsp_top0: hsp@3c00000 {
@@ -1547,7 +1541,6 @@
<GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
nvidia,axi2apb = <&axi2apb>;
nvidia,apbmisc = <&apbmisc>;
- status = "okay";
};
rce-noc@be00000 {
@@ -1557,7 +1550,6 @@
<GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
nvidia,axi2apb = <&axi2apb>;
nvidia,apbmisc = <&apbmisc>;
- status = "okay";
};
hsp_aon: hsp@c150000 {
@@ -1582,7 +1574,6 @@
nvidia,int-threshold = <1>;
nvidia,slices = <3>;
#timestamp-cells = <1>;
- status = "okay";
};
gen2_i2c: i2c@c240000 {
@@ -1668,8 +1659,6 @@
pinmux_aon: pinmux@c300000 {
compatible = "nvidia,tegra194-pinmux-aon";
reg = <0x0 0xc300000 0x0 0x4000>;
-
- status = "okay";
};
pwm4: pwm@c340000 {
@@ -1722,7 +1711,6 @@
interrupts = <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
nvidia,apbmisc = <&apbmisc>;
- status = "okay";
};
bpmp-noc@d600000 {
@@ -1732,7 +1720,6 @@
<GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
nvidia,axi2apb = <&axi2apb>;
nvidia,apbmisc = <&apbmisc>;
- status = "okay";
};
iommu@10000000 {
@@ -1886,7 +1873,6 @@
#iommu-cells = <1>;
nvidia,memory-controller = <&mc>;
- status = "okay";
};
host1x@13e00000 {
@@ -3106,7 +3092,6 @@
psci {
compatible = "arm,psci-1.0";
- status = "okay";
method = "smc";
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts b/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
index 5aa6afd56cbc..b88428aa831e 100644
--- a/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
+++ b/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
@@ -31,6 +31,11 @@
};
host1x@50000000 {
+ dpaux1: dpaux@54040000 {
+ vdd-supply = <&pp3300>;
+ status = "okay";
+ };
+
dsia: dsi@54300000 {
avdd-dsi-csi-supply = <&vdd_dsi_csi>;
status = "okay";
@@ -58,6 +63,13 @@
};
};
+ sor1: sor@54580000 {
+ avdd-io-hdmi-dp-supply = <&pp1800>;
+ vdd-hdmi-dp-pll-supply = <&avddio_1v05>;
+ nvidia,dpaux = <&dpaux1>;
+ status = "okay";
+ };
+
dpaux: dpaux@545c0000 {
status = "okay";
};
@@ -1809,6 +1821,8 @@
status = "okay";
vbus-supply = <&usbc_vbus>;
mode = "otg";
+ usb-role-switch;
+ role-switch-default-mode = "host";
};
usb3-0 {
@@ -1843,6 +1857,17 @@
status = "okay";
};
+ usb@700d0000 {
+ phys = <&{/padctl@7009f000/pads/usb2/lanes/usb2-0}>,
+ <&{/padctl@7009f000/pads/pcie/lanes/pcie-6}>;
+ phy-names = "usb2-0", "usb3-0";
+
+ avddio-usb-supply = <&avddio_1v05>;
+ hvdd-usb-supply = <&pp3300>;
+
+ status = "okay";
+ };
+
clock@70110000 {
status = "okay";
nvidia,cf = <6>;
diff --git a/arch/arm64/boot/dts/nvidia/tegra234.dtsi b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
index 827dbb420826..850c473235e3 100644
--- a/arch/arm64/boot/dts/nvidia/tegra234.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
@@ -40,7 +40,6 @@
compatible = "nvidia,tegra234-misc";
reg = <0x0 0x00100000 0x0 0xf000>,
<0x0 0x0010f000 0x0 0x1000>;
- status = "okay";
};
timer@2080000 {
@@ -62,7 +61,6 @@
<GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>;
- status = "okay";
};
gpio: gpio@2200000 {
@@ -2780,7 +2778,6 @@
"ch11", "ch12", "ch13", "ch14", "ch15";
interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
#interconnect-cells = <1>;
- status = "okay";
#address-cells = <2>;
#size-cells = <2>;
@@ -2812,7 +2809,6 @@
interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA234_CLK_EMC>;
clock-names = "emc";
- status = "okay";
#interconnect-cells = <0>;
@@ -3888,7 +3884,6 @@
#iommu-cells = <1>;
nvidia,memory-controller = <&mc>;
- status = "okay";
};
sce-fabric@b600000 {
@@ -3902,7 +3897,6 @@
compatible = "nvidia,tegra234-rce-fabric";
reg = <0x0 0xbe00000 0x0 0x40000>;
interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
- status = "okay";
};
hsp_aon: hsp@c150000 {
@@ -4064,28 +4058,24 @@
compatible = "nvidia,tegra234-aon-fabric";
reg = <0x0 0xc600000 0x0 0x40000>;
interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
- status = "okay";
};
bpmp-fabric@d600000 {
compatible = "nvidia,tegra234-bpmp-fabric";
reg = <0x0 0xd600000 0x0 0x40000>;
interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
- status = "okay";
};
dce-fabric@de00000 {
compatible = "nvidia,tegra234-dce-fabric";
reg = <0x0 0xde00000 0x0 0x40000>;
interrupts = <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH>;
- status = "okay";
};
ccplex@e000000 {
compatible = "nvidia,tegra234-ccplex-cluster";
reg = <0x0 0x0e000000 0x0 0x5ffff>;
nvidia,bpmp = <&bpmp>;
- status = "okay";
};
gic: interrupt-controller@f400000 {
@@ -4239,7 +4229,6 @@
#iommu-cells = <1>;
nvidia,memory-controller = <&mc>;
- status = "okay";
};
smmu_niso0: iommu@12000000 {
@@ -4381,14 +4370,12 @@
#iommu-cells = <1>;
nvidia,memory-controller = <&mc>;
- status = "okay";
};
cbb-fabric@13a00000 {
compatible = "nvidia,tegra234-cbb-fabric";
reg = <0x0 0x13a00000 0x0 0x400000>;
interrupts = <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
- status = "okay";
};
host1x@13e00000 {
@@ -5804,12 +5791,10 @@
pmu {
compatible = "arm,cortex-a78-pmu";
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
- status = "okay";
};
psci {
compatible = "arm,psci-1.0";
- status = "okay";
method = "smc";
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi b/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi
index 06795c82427a..7e2c3e66c2ab 100644
--- a/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi
@@ -23,8 +23,16 @@
status = "okay";
};
+ cmdqv@5200000 {
+ status = "okay";
+ };
+
iommu@6000000 {
status = "okay";
};
+
+ cmdqv@6200000 {
+ status = "okay";
+ };
};
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra264.dtsi b/arch/arm64/boot/dts/nvidia/tegra264.dtsi
index f137565da804..7644a41d5f72 100644
--- a/arch/arm64/boot/dts/nvidia/tegra264.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra264.dtsi
@@ -3361,7 +3361,7 @@
<0x02 0x00000000 0xd0 0x00000000 0x08 0x80000000>; /* ECAM, prefetchable memory, I/O */
smmu1: iommu@5000000 {
- compatible = "arm,smmu-v3";
+ compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
reg = <0x00 0x5000000 0x0 0x200000>;
interrupts = <GIC_SPI 12 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 13 IRQ_TYPE_EDGE_RISING>;
@@ -3370,10 +3370,18 @@
#iommu-cells = <1>;
dma-coherent;
+ nvidia,cmdqv = <&cmdqv1>;
+ };
+
+ cmdqv1: cmdqv@5200000 {
+ compatible = "nvidia,tegra264-cmdqv";
+ reg = <0x00 0x5200000 0x0 0x830000>;
+ interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+ status = "disabled";
};
smmu2: iommu@6000000 {
- compatible = "arm,smmu-v3";
+ compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
reg = <0x00 0x6000000 0x0 0x200000>;
interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 2 IRQ_TYPE_EDGE_RISING>;
@@ -3382,6 +3390,14 @@
#iommu-cells = <1>;
dma-coherent;
+ nvidia,cmdqv = <&cmdqv2>;
+ };
+
+ cmdqv2: cmdqv@6200000 {
+ compatible = "nvidia,tegra264-cmdqv";
+ reg = <0x00 0x6200000 0x0 0x830000>;
+ interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+ status = "disabled";
};
mc: memory-controller@8020000 {
@@ -3428,8 +3444,9 @@
reg = <0x00 0x8800000 0x0 0x20000>,
<0x00 0x8890000 0x0 0x20000>;
interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&bpmp TEGRA264_CLK_EMC>;
- clock-names = "emc";
+ clocks = <&bpmp TEGRA264_CLK_EMC>,
+ <&bpmp TEGRA264_CLK_DBB_UPHY0>;
+ clock-names = "emc", "dbb";
#interconnect-cells = <0>;
nvidia,bpmp = <&bpmp>;
@@ -3437,7 +3454,7 @@
};
smmu0: iommu@a000000 {
- compatible = "arm,smmu-v3";
+ compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
reg = <0x00 0xa000000 0x0 0x200000>;
interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
@@ -3446,10 +3463,18 @@
#iommu-cells = <1>;
dma-coherent;
+ nvidia,cmdqv = <&cmdqv0>;
+ };
+
+ cmdqv0: cmdqv@a200000 {
+ compatible = "nvidia,tegra264-cmdqv";
+ reg = <0x00 0xa200000 0x0 0x830000>;
+ interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+ status = "disabled";
};
smmu4: iommu@b000000 {
- compatible = "arm,smmu-v3";
+ compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
reg = <0x00 0xb000000 0x0 0x200000>;
interrupts = <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 31 IRQ_TYPE_EDGE_RISING>;
@@ -3458,6 +3483,14 @@
#iommu-cells = <1>;
dma-coherent;
+ nvidia,cmdqv = <&cmdqv4>;
+ };
+
+ cmdqv4: cmdqv@b200000 {
+ compatible = "nvidia,tegra264-cmdqv";
+ reg = <0x00 0xb200000 0x0 0x830000>;
+ interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+ status = "disabled";
};
i2c14: i2c@c410000 {
@@ -3690,7 +3723,7 @@
ranges = <0x00 0x00000000 0x88 0x00000000 0x01 0x00000000>;
smmu3: iommu@6000000 {
- compatible = "arm,smmu-v3";
+ compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
reg = <0x00 0x6000000 0x0 0x200000>;
interrupts = <GIC_SPI 225 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 226 IRQ_TYPE_EDGE_RISING>;
@@ -3699,6 +3732,14 @@
#iommu-cells = <1>;
dma-coherent;
+ nvidia,cmdqv = <&cmdqv3>;
+ };
+
+ cmdqv3: cmdqv@6200000 {
+ compatible = "nvidia,tegra264-cmdqv";
+ reg = <0x00 0x6200000 0x0 0x830000>;
+ interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>;
+ status = "disabled";
};
hda@90b0000 {
@@ -3733,10 +3774,9 @@
#size-cells = <0>;
cpu0: cpu@0 {
- compatible = "arm,armv8";
+ compatible = "arm,neoverse-v3ae";
device_type = "cpu";
reg = <0x00000>;
- status = "okay";
enable-method = "psci";
@@ -3749,10 +3789,9 @@
};
cpu1: cpu@1 {
- compatible = "arm,armv8";
+ compatible = "arm,neoverse-v3ae";
device_type = "cpu";
reg = <0x10000>;
- status = "okay";
enable-method = "psci";
@@ -3790,12 +3829,10 @@
pmu {
compatible = "arm,armv8-pmuv3";
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
- status = "okay";
};
psci {
compatible = "arm,psci-1.0";
- status = "okay";
method = "smc";
};
@@ -3822,6 +3859,5 @@
<GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
<GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>,
<GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>;
- status = "okay";
};
};