summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2026-10-01 13:48:22 +0100
committerMark Brown <broonie@kernel.org>2026-10-01 13:48:22 +0100
commitff8b4030161b58be72d756337bf0e1c8ce21a97c (patch)
treee304424ab6245a1ab409e4f0994f929c61c75bf1
parentd1d38455235370e4e5f02e84d3f197d57129977c (diff)
parent11430072551f5d5a37f58e390b3d042035992ca4 (diff)
downloadlinux-next-ff8b4030161b58be72d756337bf0e1c8ce21a97c.tar.gz
linux-next-ff8b4030161b58be72d756337bf0e1c8ce21a97c.zip
Merge branch 'for-next' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git
-rw-r--r--Documentation/devicetree/bindings/fuse/nvidia,tegra20-fuse.yaml1
-rw-r--r--Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-emc.yaml10
-rw-r--r--Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-mc.yaml1
-rw-r--r--arch/arm/boot/dts/nvidia/tegra124.dtsi16
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra132.dtsi16
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra186-p3509-0000+p3636-0001.dts8
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra186.dtsi74
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts8
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi8
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra194.dtsi78
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts10
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra210.dtsi6
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701.dtsi9
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra234-p3740-0002+p3701-0008.dts45
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi2
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra234.dtsi74
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi57
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra264-p4071-0000+p3834.dtsi93
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra264.dtsi582
-rw-r--r--arch/arm64/boot/dts/nvidia/thermal/nvidia,tegra264-bpmp.h20
-rw-r--r--drivers/soc/tegra/fuse/fuse-tegra.c11
-rw-r--r--drivers/soc/tegra/fuse/fuse-tegra30.c168
-rw-r--r--drivers/soc/tegra/fuse/fuse.h7
-rw-r--r--drivers/soc/tegra/pmc.c98
24 files changed, 973 insertions, 429 deletions
diff --git a/Documentation/devicetree/bindings/fuse/nvidia,tegra20-fuse.yaml b/Documentation/devicetree/bindings/fuse/nvidia,tegra20-fuse.yaml
index 02f0b0462377..bf9923b63852 100644
--- a/Documentation/devicetree/bindings/fuse/nvidia,tegra20-fuse.yaml
+++ b/Documentation/devicetree/bindings/fuse/nvidia,tegra20-fuse.yaml
@@ -22,6 +22,7 @@ properties:
- nvidia,tegra186-efuse
- nvidia,tegra194-efuse
- nvidia,tegra234-efuse
+ - nvidia,tegra264-efuse
- items:
- const: nvidia,tegra132-efuse
diff --git a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-emc.yaml b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-emc.yaml
index 9398aae49093..8e0c67d671f9 100644
--- a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-emc.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-emc.yaml
@@ -16,9 +16,13 @@ description: |
properties:
compatible:
- enum:
- - nvidia,tegra114-emc
- - nvidia,tegra124-emc
+ oneOf:
+ - enum:
+ - nvidia,tegra114-emc
+ - nvidia,tegra124-emc
+ - items:
+ - const: nvidia,tegra132-emc
+ - const: nvidia,tegra124-emc
reg:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-mc.yaml b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-mc.yaml
index f8747cebb680..2f1ffd27e1d9 100644
--- a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-mc.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-mc.yaml
@@ -22,6 +22,7 @@ properties:
enum:
- nvidia,tegra114-mc
- nvidia,tegra124-mc
+ - nvidia,tegra132-mc
reg:
maxItems: 1
diff --git a/arch/arm/boot/dts/nvidia/tegra124.dtsi b/arch/arm/boot/dts/nvidia/tegra124.dtsi
index ce4efa1de509..86956b94ca0b 100644
--- a/arch/arm/boot/dts/nvidia/tegra124.dtsi
+++ b/arch/arm/boot/dts/nvidia/tegra124.dtsi
@@ -1114,13 +1114,13 @@
"rx3", "tx3", "rx4", "tx4", "rx5", "tx5",
"rx6", "tx6", "rx7", "tx7", "rx8", "tx8",
"rx9", "tx9";
- ranges;
- #address-cells = <2>;
- #size-cells = <2>;
+ ranges = <0x70300000 0x0 0x70300000 0x10000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
tegra_i2s0: i2s@70301000 {
compatible = "nvidia,tegra124-i2s";
- reg = <0x0 0x70301000 0x0 0x100>;
+ reg = <0x70301000 0x100>;
nvidia,ahub-cif-ids = <4 4>;
clocks = <&tegra_car TEGRA124_CLK_I2S0>;
resets = <&tegra_car 30>;
@@ -1130,7 +1130,7 @@
tegra_i2s1: i2s@70301100 {
compatible = "nvidia,tegra124-i2s";
- reg = <0x0 0x70301100 0x0 0x100>;
+ reg = <0x70301100 0x100>;
nvidia,ahub-cif-ids = <5 5>;
clocks = <&tegra_car TEGRA124_CLK_I2S1>;
resets = <&tegra_car 11>;
@@ -1140,7 +1140,7 @@
tegra_i2s2: i2s@70301200 {
compatible = "nvidia,tegra124-i2s";
- reg = <0x0 0x70301200 0x0 0x100>;
+ reg = <0x70301200 0x100>;
nvidia,ahub-cif-ids = <6 6>;
clocks = <&tegra_car TEGRA124_CLK_I2S2>;
resets = <&tegra_car 18>;
@@ -1150,7 +1150,7 @@
tegra_i2s3: i2s@70301300 {
compatible = "nvidia,tegra124-i2s";
- reg = <0x0 0x70301300 0x0 0x100>;
+ reg = <0x70301300 0x100>;
nvidia,ahub-cif-ids = <7 7>;
clocks = <&tegra_car TEGRA124_CLK_I2S3>;
resets = <&tegra_car 101>;
@@ -1160,7 +1160,7 @@
tegra_i2s4: i2s@70301400 {
compatible = "nvidia,tegra124-i2s";
- reg = <0x0 0x70301400 0x0 0x100>;
+ reg = <0x70301400 0x100>;
nvidia,ahub-cif-ids = <8 8>;
clocks = <&tegra_car TEGRA124_CLK_I2S4>;
resets = <&tegra_car 102>;
diff --git a/arch/arm64/boot/dts/nvidia/tegra132.dtsi b/arch/arm64/boot/dts/nvidia/tegra132.dtsi
index 26cd11a8a4a1..3463fa637b37 100644
--- a/arch/arm64/boot/dts/nvidia/tegra132.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra132.dtsi
@@ -936,13 +936,13 @@
"rx3", "tx3", "rx4", "tx4", "rx5", "tx5",
"rx6", "tx6", "rx7", "tx7", "rx8", "tx8",
"rx9", "tx9";
- ranges;
- #address-cells = <2>;
- #size-cells = <2>;
+ ranges = <0x70300000 0x0 0x70300000 0x10000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
tegra_i2s0: i2s@70301000 {
compatible = "nvidia,tegra124-i2s";
- reg = <0x0 0x70301000 0x0 0x100>;
+ reg = <0x70301000 0x100>;
nvidia,ahub-cif-ids = <4 4>;
clocks = <&tegra_car TEGRA124_CLK_I2S0>;
clock-names = "i2s";
@@ -953,7 +953,7 @@
tegra_i2s1: i2s@70301100 {
compatible = "nvidia,tegra124-i2s";
- reg = <0x0 0x70301100 0x0 0x100>;
+ reg = <0x70301100 0x100>;
nvidia,ahub-cif-ids = <5 5>;
clocks = <&tegra_car TEGRA124_CLK_I2S1>;
clock-names = "i2s";
@@ -964,7 +964,7 @@
tegra_i2s2: i2s@70301200 {
compatible = "nvidia,tegra124-i2s";
- reg = <0x0 0x70301200 0x0 0x100>;
+ reg = <0x70301200 0x100>;
nvidia,ahub-cif-ids = <6 6>;
clocks = <&tegra_car TEGRA124_CLK_I2S2>;
clock-names = "i2s";
@@ -975,7 +975,7 @@
tegra_i2s3: i2s@70301300 {
compatible = "nvidia,tegra124-i2s";
- reg = <0x0 0x70301300 0x0 0x100>;
+ reg = <0x70301300 0x100>;
nvidia,ahub-cif-ids = <7 7>;
clocks = <&tegra_car TEGRA124_CLK_I2S3>;
clock-names = "i2s";
@@ -986,7 +986,7 @@
tegra_i2s4: i2s@70301400 {
compatible = "nvidia,tegra124-i2s";
- reg = <0x0 0x70301400 0x0 0x100>;
+ reg = <0x70301400 0x100>;
nvidia,ahub-cif-ids = <8 8>;
clocks = <&tegra_car TEGRA124_CLK_I2S4>;
clock-names = "i2s";
diff --git a/arch/arm64/boot/dts/nvidia/tegra186-p3509-0000+p3636-0001.dts b/arch/arm64/boot/dts/nvidia/tegra186-p3509-0000+p3636-0001.dts
index d9aafe053112..4b2fa1a49f05 100644
--- a/arch/arm64/boot/dts/nvidia/tegra186-p3509-0000+p3636-0001.dts
+++ b/arch/arm64/boot/dts/nvidia/tegra186-p3509-0000+p3636-0001.dts
@@ -1176,22 +1176,22 @@
};
cooling-maps {
- cpu-critical {
+ map-critical {
cooling-device = <&fan 3 3>;
trip = <&cpu_trip_critical>;
};
- cpu-hot {
+ map-hot {
cooling-device = <&fan 2 2>;
trip = <&cpu_trip_hot>;
};
- cpu-active {
+ map-active {
cooling-device = <&fan 1 1>;
trip = <&cpu_trip_active>;
};
- cpu-passive {
+ map-passive {
cooling-device = <&fan 0 0>;
trip = <&cpu_trip_passive>;
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra186.dtsi b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
index 705af0373a09..623d5e654323 100644
--- a/arch/arm64/boot/dts/nvidia/tegra186.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
@@ -142,15 +142,15 @@
assigned-clocks = <&bpmp TEGRA186_CLK_AHUB>;
assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLP_OUT0>;
assigned-clock-rates = <81600000>;
- #address-cells = <2>;
- #size-cells = <2>;
- ranges = <0x0 0x02900800 0x0 0x02900800 0x0 0x11800>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x02900000 0x0 0x02900000 0x20000>;
status = "disabled";
tegra_i2s1: i2s@2901000 {
compatible = "nvidia,tegra186-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901000 0x0 0x100>;
+ reg = <0x2901000 0x100>;
clocks = <&bpmp TEGRA186_CLK_I2S1>,
<&bpmp TEGRA186_CLK_I2S1_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -164,7 +164,7 @@
tegra_i2s2: i2s@2901100 {
compatible = "nvidia,tegra186-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901100 0x0 0x100>;
+ reg = <0x2901100 0x100>;
clocks = <&bpmp TEGRA186_CLK_I2S2>,
<&bpmp TEGRA186_CLK_I2S2_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -178,7 +178,7 @@
tegra_i2s3: i2s@2901200 {
compatible = "nvidia,tegra186-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901200 0x0 0x100>;
+ reg = <0x2901200 0x100>;
clocks = <&bpmp TEGRA186_CLK_I2S3>,
<&bpmp TEGRA186_CLK_I2S3_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -192,7 +192,7 @@
tegra_i2s4: i2s@2901300 {
compatible = "nvidia,tegra186-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901300 0x0 0x100>;
+ reg = <0x2901300 0x100>;
clocks = <&bpmp TEGRA186_CLK_I2S4>,
<&bpmp TEGRA186_CLK_I2S4_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -206,7 +206,7 @@
tegra_i2s5: i2s@2901400 {
compatible = "nvidia,tegra186-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901400 0x0 0x100>;
+ reg = <0x2901400 0x100>;
clocks = <&bpmp TEGRA186_CLK_I2S5>,
<&bpmp TEGRA186_CLK_I2S5_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -220,7 +220,7 @@
tegra_i2s6: i2s@2901500 {
compatible = "nvidia,tegra186-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901500 0x0 0x100>;
+ reg = <0x2901500 0x100>;
clocks = <&bpmp TEGRA186_CLK_I2S6>,
<&bpmp TEGRA186_CLK_I2S6_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -234,7 +234,7 @@
tegra_sfc1: sfc@2902000 {
compatible = "nvidia,tegra186-sfc",
"nvidia,tegra210-sfc";
- reg = <0x0 0x2902000 0x0 0x200>;
+ reg = <0x2902000 0x200>;
sound-name-prefix = "SFC1";
status = "disabled";
};
@@ -242,7 +242,7 @@
tegra_sfc2: sfc@2902200 {
compatible = "nvidia,tegra186-sfc",
"nvidia,tegra210-sfc";
- reg = <0x0 0x2902200 0x0 0x200>;
+ reg = <0x2902200 0x200>;
sound-name-prefix = "SFC2";
status = "disabled";
};
@@ -250,7 +250,7 @@
tegra_sfc3: sfc@2902400 {
compatible = "nvidia,tegra186-sfc",
"nvidia,tegra210-sfc";
- reg = <0x0 0x2902400 0x0 0x200>;
+ reg = <0x2902400 0x200>;
sound-name-prefix = "SFC3";
status = "disabled";
};
@@ -258,7 +258,7 @@
tegra_sfc4: sfc@2902600 {
compatible = "nvidia,tegra186-sfc",
"nvidia,tegra210-sfc";
- reg = <0x0 0x2902600 0x0 0x200>;
+ reg = <0x2902600 0x200>;
sound-name-prefix = "SFC4";
status = "disabled";
};
@@ -266,7 +266,7 @@
tegra_amx1: amx@2903000 {
compatible = "nvidia,tegra186-amx",
"nvidia,tegra210-amx";
- reg = <0x0 0x2903000 0x0 0x100>;
+ reg = <0x2903000 0x100>;
sound-name-prefix = "AMX1";
status = "disabled";
};
@@ -274,7 +274,7 @@
tegra_amx2: amx@2903100 {
compatible = "nvidia,tegra186-amx",
"nvidia,tegra210-amx";
- reg = <0x0 0x2903100 0x0 0x100>;
+ reg = <0x2903100 0x100>;
sound-name-prefix = "AMX2";
status = "disabled";
};
@@ -282,7 +282,7 @@
tegra_amx3: amx@2903200 {
compatible = "nvidia,tegra186-amx",
"nvidia,tegra210-amx";
- reg = <0x0 0x2903200 0x0 0x100>;
+ reg = <0x2903200 0x100>;
sound-name-prefix = "AMX3";
status = "disabled";
};
@@ -290,7 +290,7 @@
tegra_amx4: amx@2903300 {
compatible = "nvidia,tegra186-amx",
"nvidia,tegra210-amx";
- reg = <0x0 0x2903300 0x0 0x100>;
+ reg = <0x2903300 0x100>;
sound-name-prefix = "AMX4";
status = "disabled";
};
@@ -298,7 +298,7 @@
tegra_adx1: adx@2903800 {
compatible = "nvidia,tegra186-adx",
"nvidia,tegra210-adx";
- reg = <0x0 0x2903800 0x0 0x100>;
+ reg = <0x2903800 0x100>;
sound-name-prefix = "ADX1";
status = "disabled";
};
@@ -306,7 +306,7 @@
tegra_adx2: adx@2903900 {
compatible = "nvidia,tegra186-adx",
"nvidia,tegra210-adx";
- reg = <0x0 0x2903900 0x0 0x100>;
+ reg = <0x2903900 0x100>;
sound-name-prefix = "ADX2";
status = "disabled";
};
@@ -314,7 +314,7 @@
tegra_adx3: adx@2903a00 {
compatible = "nvidia,tegra186-adx",
"nvidia,tegra210-adx";
- reg = <0x0 0x2903a00 0x0 0x100>;
+ reg = <0x2903a00 0x100>;
sound-name-prefix = "ADX3";
status = "disabled";
};
@@ -322,14 +322,14 @@
tegra_adx4: adx@2903b00 {
compatible = "nvidia,tegra186-adx",
"nvidia,tegra210-adx";
- reg = <0x0 0x2903b00 0x0 0x100>;
+ reg = <0x2903b00 0x100>;
sound-name-prefix = "ADX4";
status = "disabled";
};
tegra_dmic1: dmic@2904000 {
compatible = "nvidia,tegra210-dmic";
- reg = <0x0 0x2904000 0x0 0x100>;
+ reg = <0x2904000 0x100>;
clocks = <&bpmp TEGRA186_CLK_DMIC1>;
clock-names = "dmic";
assigned-clocks = <&bpmp TEGRA186_CLK_DMIC1>;
@@ -341,7 +341,7 @@
tegra_dmic2: dmic@2904100 {
compatible = "nvidia,tegra210-dmic";
- reg = <0x0 0x2904100 0x0 0x100>;
+ reg = <0x2904100 0x100>;
clocks = <&bpmp TEGRA186_CLK_DMIC2>;
clock-names = "dmic";
assigned-clocks = <&bpmp TEGRA186_CLK_DMIC2>;
@@ -353,7 +353,7 @@
tegra_dmic3: dmic@2904200 {
compatible = "nvidia,tegra210-dmic";
- reg = <0x0 0x2904200 0x0 0x100>;
+ reg = <0x2904200 0x100>;
clocks = <&bpmp TEGRA186_CLK_DMIC3>;
clock-names = "dmic";
assigned-clocks = <&bpmp TEGRA186_CLK_DMIC3>;
@@ -365,7 +365,7 @@
tegra_dmic4: dmic@2904300 {
compatible = "nvidia,tegra210-dmic";
- reg = <0x0 0x2904300 0x0 0x100>;
+ reg = <0x2904300 0x100>;
clocks = <&bpmp TEGRA186_CLK_DMIC4>;
clock-names = "dmic";
assigned-clocks = <&bpmp TEGRA186_CLK_DMIC4>;
@@ -377,7 +377,7 @@
tegra_dspk1: dspk@2905000 {
compatible = "nvidia,tegra186-dspk";
- reg = <0x0 0x2905000 0x0 0x100>;
+ reg = <0x2905000 0x100>;
clocks = <&bpmp TEGRA186_CLK_DSPK1>;
clock-names = "dspk";
assigned-clocks = <&bpmp TEGRA186_CLK_DSPK1>;
@@ -389,7 +389,7 @@
tegra_dspk2: dspk@2905100 {
compatible = "nvidia,tegra186-dspk";
- reg = <0x0 0x2905100 0x0 0x100>;
+ reg = <0x2905100 0x100>;
clocks = <&bpmp TEGRA186_CLK_DSPK2>;
clock-names = "dspk";
assigned-clocks = <&bpmp TEGRA186_CLK_DSPK2>;
@@ -402,9 +402,9 @@
tegra_ope1: processing-engine@2908000 {
compatible = "nvidia,tegra186-ope",
"nvidia,tegra210-ope";
- reg = <0x0 0x2908000 0x0 0x100>;
- #address-cells = <2>;
- #size-cells = <2>;
+ reg = <0x2908000 0x100>;
+ #address-cells = <1>;
+ #size-cells = <1>;
ranges;
sound-name-prefix = "OPE1";
status = "disabled";
@@ -412,20 +412,20 @@
equalizer@2908100 {
compatible = "nvidia,tegra186-peq",
"nvidia,tegra210-peq";
- reg = <0x0 0x2908100 0x0 0x100>;
+ reg = <0x2908100 0x100>;
};
dynamic-range-compressor@2908200 {
compatible = "nvidia,tegra186-mbdrc",
"nvidia,tegra210-mbdrc";
- reg = <0x0 0x2908200 0x0 0x200>;
+ reg = <0x2908200 0x200>;
};
};
tegra_mvc1: mvc@290a000 {
compatible = "nvidia,tegra186-mvc",
"nvidia,tegra210-mvc";
- reg = <0x0 0x290a000 0x0 0x200>;
+ reg = <0x290a000 0x200>;
sound-name-prefix = "MVC1";
status = "disabled";
};
@@ -433,7 +433,7 @@
tegra_mvc2: mvc@290a200 {
compatible = "nvidia,tegra186-mvc",
"nvidia,tegra210-mvc";
- reg = <0x0 0x290a200 0x0 0x200>;
+ reg = <0x290a200 0x200>;
sound-name-prefix = "MVC2";
status = "disabled";
};
@@ -441,14 +441,14 @@
tegra_amixer: amixer@290bb00 {
compatible = "nvidia,tegra186-amixer",
"nvidia,tegra210-amixer";
- reg = <0x0 0x290bb00 0x0 0x800>;
+ reg = <0x290bb00 0x800>;
sound-name-prefix = "MIXER1";
status = "disabled";
};
tegra_admaif: admaif@290f000 {
compatible = "nvidia,tegra186-admaif";
- reg = <0x0 0x0290f000 0x0 0x1000>;
+ reg = <0x0290f000 0x1000>;
dmas = <&adma 1>, <&adma 1>,
<&adma 2>, <&adma 2>,
<&adma 3>, <&adma 3>,
@@ -494,7 +494,7 @@
tegra_asrc: asrc@2910000 {
compatible = "nvidia,tegra186-asrc";
- reg = <0x0 0x2910000 0x0 0x2000>;
+ reg = <0x2910000 0x2000>;
sound-name-prefix = "ASRC1";
status = "disabled";
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts b/arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts
index 5462200f1176..478464464bcb 100644
--- a/arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts
+++ b/arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts
@@ -2450,22 +2450,22 @@
};
cooling-maps {
- cpu-critical {
+ map-critical {
cooling-device = <&fan 3 3>;
trip = <&cpu_trip_critical>;
};
- cpu-hot {
+ map-hot {
cooling-device = <&fan 2 2>;
trip = <&cpu_trip_hot>;
};
- cpu-active {
+ map-active {
cooling-device = <&fan 1 1>;
trip = <&cpu_trip_active>;
};
- cpu-passive {
+ map-passive {
cooling-device = <&fan 0 0>;
trip = <&cpu_trip_passive>;
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi b/arch/arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi
index 6f4879c49da2..569d181b2ad2 100644
--- a/arch/arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi
@@ -2433,22 +2433,22 @@
};
cooling-maps {
- cpu-critical {
+ map-critical {
cooling-device = <&fan 3 3>;
trip = <&cpu_trip_critical>;
};
- cpu-hot {
+ map-hot {
cooling-device = <&fan 2 2>;
trip = <&cpu_trip_hot>;
};
- cpu-active {
+ map-active {
cooling-device = <&fan 1 1>;
trip = <&cpu_trip_active>;
};
- cpu-passive {
+ map-passive {
cooling-device = <&fan 0 0>;
trip = <&cpu_trip_passive>;
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
index 5e510f77b538..13a95008c186 100644
--- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
@@ -231,14 +231,14 @@
assigned-clock-rates = <81600000>;
status = "disabled";
- #address-cells = <2>;
- #size-cells = <2>;
- ranges = <0x0 0x02900800 0x0 0x02900800 0x0 0x11800>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x02900000 0x0 0x02900000 0x20000>;
tegra_i2s1: i2s@2901000 {
compatible = "nvidia,tegra194-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901000 0x0 0x100>;
+ reg = <0x2901000 0x100>;
clocks = <&bpmp TEGRA194_CLK_I2S1>,
<&bpmp TEGRA194_CLK_I2S1_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -252,7 +252,7 @@
tegra_i2s2: i2s@2901100 {
compatible = "nvidia,tegra194-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901100 0x0 0x100>;
+ reg = <0x2901100 0x100>;
clocks = <&bpmp TEGRA194_CLK_I2S2>,
<&bpmp TEGRA194_CLK_I2S2_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -266,7 +266,7 @@
tegra_i2s3: i2s@2901200 {
compatible = "nvidia,tegra194-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901200 0x0 0x100>;
+ reg = <0x2901200 0x100>;
clocks = <&bpmp TEGRA194_CLK_I2S3>,
<&bpmp TEGRA194_CLK_I2S3_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -280,7 +280,7 @@
tegra_i2s4: i2s@2901300 {
compatible = "nvidia,tegra194-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901300 0x0 0x100>;
+ reg = <0x2901300 0x100>;
clocks = <&bpmp TEGRA194_CLK_I2S4>,
<&bpmp TEGRA194_CLK_I2S4_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -294,7 +294,7 @@
tegra_i2s5: i2s@2901400 {
compatible = "nvidia,tegra194-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901400 0x0 0x100>;
+ reg = <0x2901400 0x100>;
clocks = <&bpmp TEGRA194_CLK_I2S5>,
<&bpmp TEGRA194_CLK_I2S5_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -308,7 +308,7 @@
tegra_i2s6: i2s@2901500 {
compatible = "nvidia,tegra194-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901500 0x0 0x100>;
+ reg = <0x2901500 0x100>;
clocks = <&bpmp TEGRA194_CLK_I2S6>,
<&bpmp TEGRA194_CLK_I2S6_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -322,7 +322,7 @@
tegra_sfc1: sfc@2902000 {
compatible = "nvidia,tegra194-sfc",
"nvidia,tegra210-sfc";
- reg = <0x0 0x2902000 0x0 0x200>;
+ reg = <0x2902000 0x200>;
sound-name-prefix = "SFC1";
status = "disabled";
};
@@ -330,7 +330,7 @@
tegra_sfc2: sfc@2902200 {
compatible = "nvidia,tegra194-sfc",
"nvidia,tegra210-sfc";
- reg = <0x0 0x2902200 0x0 0x200>;
+ reg = <0x2902200 0x200>;
sound-name-prefix = "SFC2";
status = "disabled";
};
@@ -338,7 +338,7 @@
tegra_sfc3: sfc@2902400 {
compatible = "nvidia,tegra194-sfc",
"nvidia,tegra210-sfc";
- reg = <0x0 0x2902400 0x0 0x200>;
+ reg = <0x2902400 0x200>;
sound-name-prefix = "SFC3";
status = "disabled";
};
@@ -346,35 +346,35 @@
tegra_sfc4: sfc@2902600 {
compatible = "nvidia,tegra194-sfc",
"nvidia,tegra210-sfc";
- reg = <0x0 0x2902600 0x0 0x200>;
+ reg = <0x2902600 0x200>;
sound-name-prefix = "SFC4";
status = "disabled";
};
tegra_amx1: amx@2903000 {
compatible = "nvidia,tegra194-amx";
- reg = <0x0 0x2903000 0x0 0x100>;
+ reg = <0x2903000 0x100>;
sound-name-prefix = "AMX1";
status = "disabled";
};
tegra_amx2: amx@2903100 {
compatible = "nvidia,tegra194-amx";
- reg = <0x0 0x2903100 0x0 0x100>;
+ reg = <0x2903100 0x100>;
sound-name-prefix = "AMX2";
status = "disabled";
};
tegra_amx3: amx@2903200 {
compatible = "nvidia,tegra194-amx";
- reg = <0x0 0x2903200 0x0 0x100>;
+ reg = <0x2903200 0x100>;
sound-name-prefix = "AMX3";
status = "disabled";
};
tegra_amx4: amx@2903300 {
compatible = "nvidia,tegra194-amx";
- reg = <0x0 0x2903300 0x0 0x100>;
+ reg = <0x2903300 0x100>;
sound-name-prefix = "AMX4";
status = "disabled";
};
@@ -382,7 +382,7 @@
tegra_adx1: adx@2903800 {
compatible = "nvidia,tegra194-adx",
"nvidia,tegra210-adx";
- reg = <0x0 0x2903800 0x0 0x100>;
+ reg = <0x2903800 0x100>;
sound-name-prefix = "ADX1";
status = "disabled";
};
@@ -390,7 +390,7 @@
tegra_adx2: adx@2903900 {
compatible = "nvidia,tegra194-adx",
"nvidia,tegra210-adx";
- reg = <0x0 0x2903900 0x0 0x100>;
+ reg = <0x2903900 0x100>;
sound-name-prefix = "ADX2";
status = "disabled";
};
@@ -398,7 +398,7 @@
tegra_adx3: adx@2903a00 {
compatible = "nvidia,tegra194-adx",
"nvidia,tegra210-adx";
- reg = <0x0 0x2903a00 0x0 0x100>;
+ reg = <0x2903a00 0x100>;
sound-name-prefix = "ADX3";
status = "disabled";
};
@@ -406,7 +406,7 @@
tegra_adx4: adx@2903b00 {
compatible = "nvidia,tegra194-adx",
"nvidia,tegra210-adx";
- reg = <0x0 0x2903b00 0x0 0x100>;
+ reg = <0x2903b00 0x100>;
sound-name-prefix = "ADX4";
status = "disabled";
};
@@ -414,7 +414,7 @@
tegra_dmic1: dmic@2904000 {
compatible = "nvidia,tegra194-dmic",
"nvidia,tegra210-dmic";
- reg = <0x0 0x2904000 0x0 0x100>;
+ reg = <0x2904000 0x100>;
clocks = <&bpmp TEGRA194_CLK_DMIC1>;
clock-names = "dmic";
assigned-clocks = <&bpmp TEGRA194_CLK_DMIC1>;
@@ -427,7 +427,7 @@
tegra_dmic2: dmic@2904100 {
compatible = "nvidia,tegra194-dmic",
"nvidia,tegra210-dmic";
- reg = <0x0 0x2904100 0x0 0x100>;
+ reg = <0x2904100 0x100>;
clocks = <&bpmp TEGRA194_CLK_DMIC2>;
clock-names = "dmic";
assigned-clocks = <&bpmp TEGRA194_CLK_DMIC2>;
@@ -440,7 +440,7 @@
tegra_dmic3: dmic@2904200 {
compatible = "nvidia,tegra194-dmic",
"nvidia,tegra210-dmic";
- reg = <0x0 0x2904200 0x0 0x100>;
+ reg = <0x2904200 0x100>;
clocks = <&bpmp TEGRA194_CLK_DMIC3>;
clock-names = "dmic";
assigned-clocks = <&bpmp TEGRA194_CLK_DMIC3>;
@@ -453,7 +453,7 @@
tegra_dmic4: dmic@2904300 {
compatible = "nvidia,tegra194-dmic",
"nvidia,tegra210-dmic";
- reg = <0x0 0x2904300 0x0 0x100>;
+ reg = <0x2904300 0x100>;
clocks = <&bpmp TEGRA194_CLK_DMIC4>;
clock-names = "dmic";
assigned-clocks = <&bpmp TEGRA194_CLK_DMIC4>;
@@ -466,7 +466,7 @@
tegra_dspk1: dspk@2905000 {
compatible = "nvidia,tegra194-dspk",
"nvidia,tegra186-dspk";
- reg = <0x0 0x2905000 0x0 0x100>;
+ reg = <0x2905000 0x100>;
clocks = <&bpmp TEGRA194_CLK_DSPK1>;
clock-names = "dspk";
assigned-clocks = <&bpmp TEGRA194_CLK_DSPK1>;
@@ -479,7 +479,7 @@
tegra_dspk2: dspk@2905100 {
compatible = "nvidia,tegra194-dspk",
"nvidia,tegra186-dspk";
- reg = <0x0 0x2905100 0x0 0x100>;
+ reg = <0x2905100 0x100>;
clocks = <&bpmp TEGRA194_CLK_DSPK2>;
clock-names = "dspk";
assigned-clocks = <&bpmp TEGRA194_CLK_DSPK2>;
@@ -492,31 +492,31 @@
tegra_ope1: processing-engine@2908000 {
compatible = "nvidia,tegra194-ope",
"nvidia,tegra210-ope";
- reg = <0x0 0x2908000 0x0 0x100>;
+ reg = <0x2908000 0x100>;
sound-name-prefix = "OPE1";
status = "disabled";
- #address-cells = <2>;
- #size-cells = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
ranges;
equalizer@2908100 {
compatible = "nvidia,tegra194-peq",
"nvidia,tegra210-peq";
- reg = <0x0 0x2908100 0x0 0x100>;
+ reg = <0x2908100 0x100>;
};
dynamic-range-compressor@2908200 {
compatible = "nvidia,tegra194-mbdrc",
"nvidia,tegra210-mbdrc";
- reg = <0x0 0x2908200 0x0 0x200>;
+ reg = <0x2908200 0x200>;
};
};
tegra_mvc1: mvc@290a000 {
compatible = "nvidia,tegra194-mvc",
"nvidia,tegra210-mvc";
- reg = <0x0 0x290a000 0x0 0x200>;
+ reg = <0x290a000 0x200>;
sound-name-prefix = "MVC1";
status = "disabled";
};
@@ -524,7 +524,7 @@
tegra_mvc2: mvc@290a200 {
compatible = "nvidia,tegra194-mvc",
"nvidia,tegra210-mvc";
- reg = <0x0 0x290a200 0x0 0x200>;
+ reg = <0x290a200 0x200>;
sound-name-prefix = "MVC2";
status = "disabled";
};
@@ -532,7 +532,7 @@
tegra_amixer: amixer@290bb00 {
compatible = "nvidia,tegra194-amixer",
"nvidia,tegra210-amixer";
- reg = <0x0 0x290bb00 0x0 0x800>;
+ reg = <0x290bb00 0x800>;
sound-name-prefix = "MIXER1";
status = "disabled";
};
@@ -540,7 +540,7 @@
tegra_admaif: admaif@290f000 {
compatible = "nvidia,tegra194-admaif",
"nvidia,tegra186-admaif";
- reg = <0x0 0x0290f000 0x0 0x1000>;
+ reg = <0x0290f000 0x1000>;
dmas = <&adma 1>, <&adma 1>,
<&adma 2>, <&adma 2>,
<&adma 3>, <&adma 3>,
@@ -591,7 +591,7 @@
tegra_asrc: asrc@2910000 {
compatible = "nvidia,tegra194-asrc",
"nvidia,tegra186-asrc";
- reg = <0x0 0x2910000 0x0 0x2000>;
+ reg = <0x2910000 0x2000>;
sound-name-prefix = "ASRC1";
status = "disabled";
};
@@ -923,6 +923,8 @@
<&bpmp TEGRA194_CLK_QSPI0_PM>;
clock-names = "qspi", "qspi_out";
resets = <&bpmp TEGRA194_RESET_QSPI0>;
+ dmas = <&gpcdma 5>, <&gpcdma 5>;
+ dma-names = "rx", "tx";
status = "disabled";
};
@@ -1013,6 +1015,8 @@
<&bpmp TEGRA194_CLK_QSPI1_PM>;
clock-names = "qspi", "qspi_out";
resets = <&bpmp TEGRA194_RESET_QSPI1>;
+ dmas = <&gpcdma 6>, <&gpcdma 6>;
+ dma-names = "rx", "tx";
status = "disabled";
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts b/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
index d78b9bd45df6..8ee334c10871 100644
--- a/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
+++ b/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
@@ -1750,7 +1750,7 @@
label = "Force Recovery";
gpios = <&gpio TEGRA_GPIO(X, 6) GPIO_ACTIVE_LOW>;
linux,input-type = <EV_KEY>;
- linux,code = <BTN_1>;
+ linux,code = <KEY_SLEEP>;
debounce-interval = <30>;
};
@@ -1968,22 +1968,22 @@
};
cooling-maps {
- cpu-critical {
+ map-critical {
cooling-device = <&fan 3 3>;
trip = <&cpu_trip_critical>;
};
- cpu-hot {
+ map-hot {
cooling-device = <&fan 2 2>;
trip = <&cpu_trip_hot>;
};
- cpu-active {
+ map-active {
cooling-device = <&fan 1 1>;
trip = <&cpu_trip_active>;
};
- cpu-passive {
+ map-passive {
cooling-device = <&fan 0 0>;
trip = <&cpu_trip_passive>;
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra210.dtsi b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
index 5f5e5370d709..99fefce41476 100644
--- a/arch/arm64/boot/dts/nvidia/tegra210.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
@@ -1461,7 +1461,7 @@
assigned-clock-rates = <81600000>;
#address-cells = <1>;
#size-cells = <1>;
- ranges = <0x702d0000 0x702d0000 0x0000e400>;
+ ranges = <0x702d0000 0x702d0000 0x00010000>;
status = "disabled";
tegra_admaif: admaif@702d0000 {
@@ -2164,12 +2164,12 @@
};
cooling-maps {
- dram-passive {
+ map-passive {
cooling-device = <&emc 0 0>;
trip = <&dram_nominal>;
};
- dram-active {
+ map-active {
cooling-device = <&emc 1 1>;
trip = <&dram_throttle>;
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701.dtsi b/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701.dtsi
index 420858a8f4a8..9b990d1cef3f 100644
--- a/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701.dtsi
@@ -391,7 +391,7 @@
label = "Force Recovery";
gpios = <&gpio TEGRA234_MAIN_GPIO(G, 0) GPIO_ACTIVE_LOW>;
linux,input-type = <EV_KEY>;
- linux,code = <BTN_1>;
+ linux,code = <KEY_SLEEP>;
};
key-power {
@@ -402,13 +402,6 @@
wakeup-event-action = <EV_ACT_ASSERTED>;
wakeup-source;
};
-
- key-suspend {
- label = "Suspend";
- gpios = <&gpio TEGRA234_MAIN_GPIO(G, 2) GPIO_ACTIVE_LOW>;
- linux,input-type = <EV_KEY>;
- linux,code = <KEY_SLEEP>;
- };
};
fan: pwm-fan {
diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3740-0002+p3701-0008.dts b/arch/arm64/boot/dts/nvidia/tegra234-p3740-0002+p3701-0008.dts
index 97cede1fcb70..8c8c71547996 100644
--- a/arch/arm64/boot/dts/nvidia/tegra234-p3740-0002+p3701-0008.dts
+++ b/arch/arm64/boot/dts/nvidia/tegra234-p3740-0002+p3701-0008.dts
@@ -93,6 +93,29 @@
};
};
+ typec@28 {
+ compatible = "st,stusb1600";
+ reg = <0x28>;
+ interrupt-parent = <&gpio>;
+ interrupts = <TEGRA234_MAIN_GPIO(K, 6) IRQ_TYPE_LEVEL_LOW>;
+ vdd-supply = <&vdd_5v_sys>;
+ vsys-supply = <&vdd_3v3_sys>;
+
+ connector {
+ compatible = "usb-c-connector";
+ label = "USB-C";
+ data-role = "dual";
+ power-role = "dual";
+ typec-power-opmode = "default";
+
+ port {
+ typec_con_ep: endpoint {
+ remote-endpoint = <&usb_role_switch0>;
+ };
+ };
+ };
+ };
+
/* carrier board ID EEPROM */
eeprom@55 {
compatible = "atmel,24c02";
@@ -173,6 +196,12 @@
mode = "otg";
usb-role-switch;
status = "okay";
+
+ port {
+ usb_role_switch0: endpoint {
+ remote-endpoint = <&typec_con_ep>;
+ };
+ };
};
usb2-1 {
@@ -337,7 +366,7 @@
label = "Force Recovery";
gpios = <&gpio TEGRA234_MAIN_GPIO(G, 0) GPIO_ACTIVE_LOW>;
linux,input-type = <EV_KEY>;
- linux,code = <BTN_1>;
+ linux,code = <KEY_SLEEP>;
};
key-power {
@@ -348,13 +377,6 @@
wakeup-event-action = <EV_ACT_ASSERTED>;
wakeup-source;
};
-
- key-suspend {
- label = "Suspend";
- gpios = <&gpio TEGRA234_MAIN_GPIO(G, 2) GPIO_ACTIVE_LOW>;
- linux,input-type = <EV_KEY>;
- linux,code = <KEY_SLEEP>;
- };
};
serial {
@@ -473,4 +495,11 @@
regulator-boot-on;
enable-active-high;
};
+
+ vdd_5v_sys: regulator-vdd-5v-sys {
+ compatible = "regulator-fixed";
+ regulator-name = "vdd-5v-sys";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ };
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi b/arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi
index 41821354bbda..9b93074e5aed 100644
--- a/arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi
@@ -216,7 +216,7 @@
label = "Force Recovery";
gpios = <&gpio TEGRA234_MAIN_GPIO(G, 0) GPIO_ACTIVE_LOW>;
linux,input-type = <EV_KEY>;
- linux,code = <BTN_1>;
+ linux,code = <KEY_SLEEP>;
};
key-power {
diff --git a/arch/arm64/boot/dts/nvidia/tegra234.dtsi b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
index 5e29316a4d75..5311245334de 100644
--- a/arch/arm64/boot/dts/nvidia/tegra234.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
@@ -245,14 +245,14 @@
assigned-clock-rates = <81600000>;
status = "disabled";
- #address-cells = <2>;
- #size-cells = <2>;
- ranges = <0x0 0x02900800 0x0 0x02900800 0x0 0x11800>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x02900000 0x0 0x02900000 0x20000>;
tegra_i2s1: i2s@2901000 {
compatible = "nvidia,tegra234-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901000 0x0 0x100>;
+ reg = <0x2901000 0x100>;
clocks = <&bpmp TEGRA234_CLK_I2S1>,
<&bpmp TEGRA234_CLK_I2S1_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -288,7 +288,7 @@
tegra_i2s2: i2s@2901100 {
compatible = "nvidia,tegra234-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901100 0x0 0x100>;
+ reg = <0x2901100 0x100>;
clocks = <&bpmp TEGRA234_CLK_I2S2>,
<&bpmp TEGRA234_CLK_I2S2_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -324,7 +324,7 @@
tegra_i2s3: i2s@2901200 {
compatible = "nvidia,tegra234-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901200 0x0 0x100>;
+ reg = <0x2901200 0x100>;
clocks = <&bpmp TEGRA234_CLK_I2S3>,
<&bpmp TEGRA234_CLK_I2S3_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -360,7 +360,7 @@
tegra_i2s4: i2s@2901300 {
compatible = "nvidia,tegra234-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901300 0x0 0x100>;
+ reg = <0x2901300 0x100>;
clocks = <&bpmp TEGRA234_CLK_I2S4>,
<&bpmp TEGRA234_CLK_I2S4_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -396,7 +396,7 @@
tegra_i2s5: i2s@2901400 {
compatible = "nvidia,tegra234-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901400 0x0 0x100>;
+ reg = <0x2901400 0x100>;
clocks = <&bpmp TEGRA234_CLK_I2S5>,
<&bpmp TEGRA234_CLK_I2S5_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -432,7 +432,7 @@
tegra_i2s6: i2s@2901500 {
compatible = "nvidia,tegra234-i2s",
"nvidia,tegra210-i2s";
- reg = <0x0 0x2901500 0x0 0x100>;
+ reg = <0x2901500 0x100>;
clocks = <&bpmp TEGRA234_CLK_I2S6>,
<&bpmp TEGRA234_CLK_I2S6_SYNC_INPUT>;
clock-names = "i2s", "sync_input";
@@ -468,7 +468,7 @@
tegra_sfc1: sfc@2902000 {
compatible = "nvidia,tegra234-sfc",
"nvidia,tegra210-sfc";
- reg = <0x0 0x2902000 0x0 0x200>;
+ reg = <0x2902000 0x200>;
sound-name-prefix = "SFC1";
ports {
@@ -496,7 +496,7 @@
tegra_sfc2: sfc@2902200 {
compatible = "nvidia,tegra234-sfc",
"nvidia,tegra210-sfc";
- reg = <0x0 0x2902200 0x0 0x200>;
+ reg = <0x2902200 0x200>;
sound-name-prefix = "SFC2";
ports {
@@ -524,7 +524,7 @@
tegra_sfc3: sfc@2902400 {
compatible = "nvidia,tegra234-sfc",
"nvidia,tegra210-sfc";
- reg = <0x0 0x2902400 0x0 0x200>;
+ reg = <0x2902400 0x200>;
sound-name-prefix = "SFC3";
ports {
@@ -552,7 +552,7 @@
tegra_sfc4: sfc@2902600 {
compatible = "nvidia,tegra234-sfc",
"nvidia,tegra210-sfc";
- reg = <0x0 0x2902600 0x0 0x200>;
+ reg = <0x2902600 0x200>;
sound-name-prefix = "SFC4";
ports {
@@ -580,7 +580,7 @@
tegra_amx1: amx@2903000 {
compatible = "nvidia,tegra234-amx",
"nvidia,tegra194-amx";
- reg = <0x0 0x2903000 0x0 0x100>;
+ reg = <0x2903000 0x100>;
sound-name-prefix = "AMX1";
ports {
@@ -632,7 +632,7 @@
tegra_amx2: amx@2903100 {
compatible = "nvidia,tegra234-amx",
"nvidia,tegra194-amx";
- reg = <0x0 0x2903100 0x0 0x100>;
+ reg = <0x2903100 0x100>;
sound-name-prefix = "AMX2";
ports {
@@ -684,7 +684,7 @@
tegra_amx3: amx@2903200 {
compatible = "nvidia,tegra234-amx",
"nvidia,tegra194-amx";
- reg = <0x0 0x2903200 0x0 0x100>;
+ reg = <0x2903200 0x100>;
sound-name-prefix = "AMX3";
ports {
@@ -736,7 +736,7 @@
tegra_amx4: amx@2903300 {
compatible = "nvidia,tegra234-amx",
"nvidia,tegra194-amx";
- reg = <0x0 0x2903300 0x0 0x100>;
+ reg = <0x2903300 0x100>;
sound-name-prefix = "AMX4";
ports {
@@ -788,7 +788,7 @@
tegra_adx1: adx@2903800 {
compatible = "nvidia,tegra234-adx",
"nvidia,tegra210-adx";
- reg = <0x0 0x2903800 0x0 0x100>;
+ reg = <0x2903800 0x100>;
sound-name-prefix = "ADX1";
ports {
@@ -840,7 +840,7 @@
tegra_adx2: adx@2903900 {
compatible = "nvidia,tegra234-adx",
"nvidia,tegra210-adx";
- reg = <0x0 0x2903900 0x0 0x100>;
+ reg = <0x2903900 0x100>;
sound-name-prefix = "ADX2";
ports {
@@ -892,7 +892,7 @@
tegra_adx3: adx@2903a00 {
compatible = "nvidia,tegra234-adx",
"nvidia,tegra210-adx";
- reg = <0x0 0x2903a00 0x0 0x100>;
+ reg = <0x2903a00 0x100>;
sound-name-prefix = "ADX3";
ports {
@@ -944,7 +944,7 @@
tegra_adx4: adx@2903b00 {
compatible = "nvidia,tegra234-adx",
"nvidia,tegra210-adx";
- reg = <0x0 0x2903b00 0x0 0x100>;
+ reg = <0x2903b00 0x100>;
sound-name-prefix = "ADX4";
ports {
@@ -997,7 +997,7 @@
tegra_dmic1: dmic@2904000 {
compatible = "nvidia,tegra234-dmic",
"nvidia,tegra210-dmic";
- reg = <0x0 0x2904000 0x0 0x100>;
+ reg = <0x2904000 0x100>;
clocks = <&bpmp TEGRA234_CLK_DMIC1>;
clock-names = "dmic";
assigned-clocks = <&bpmp TEGRA234_CLK_DMIC1>;
@@ -1031,7 +1031,7 @@
tegra_dmic2: dmic@2904100 {
compatible = "nvidia,tegra234-dmic",
"nvidia,tegra210-dmic";
- reg = <0x0 0x2904100 0x0 0x100>;
+ reg = <0x2904100 0x100>;
clocks = <&bpmp TEGRA234_CLK_DMIC2>;
clock-names = "dmic";
assigned-clocks = <&bpmp TEGRA234_CLK_DMIC2>;
@@ -1065,7 +1065,7 @@
tegra_dmic3: dmic@2904200 {
compatible = "nvidia,tegra234-dmic",
"nvidia,tegra210-dmic";
- reg = <0x0 0x2904200 0x0 0x100>;
+ reg = <0x2904200 0x100>;
clocks = <&bpmp TEGRA234_CLK_DMIC3>;
clock-names = "dmic";
assigned-clocks = <&bpmp TEGRA234_CLK_DMIC3>;
@@ -1099,7 +1099,7 @@
tegra_dmic4: dmic@2904300 {
compatible = "nvidia,tegra234-dmic",
"nvidia,tegra210-dmic";
- reg = <0x0 0x2904300 0x0 0x100>;
+ reg = <0x2904300 0x100>;
clocks = <&bpmp TEGRA234_CLK_DMIC4>;
clock-names = "dmic";
assigned-clocks = <&bpmp TEGRA234_CLK_DMIC4>;
@@ -1133,7 +1133,7 @@
tegra_dspk1: dspk@2905000 {
compatible = "nvidia,tegra234-dspk",
"nvidia,tegra186-dspk";
- reg = <0x0 0x2905000 0x0 0x100>;
+ reg = <0x2905000 0x100>;
clocks = <&bpmp TEGRA234_CLK_DSPK1>;
clock-names = "dspk";
assigned-clocks = <&bpmp TEGRA234_CLK_DSPK1>;
@@ -1167,7 +1167,7 @@
tegra_dspk2: dspk@2905100 {
compatible = "nvidia,tegra234-dspk",
"nvidia,tegra186-dspk";
- reg = <0x0 0x2905100 0x0 0x100>;
+ reg = <0x2905100 0x100>;
clocks = <&bpmp TEGRA234_CLK_DSPK2>;
clock-names = "dspk";
assigned-clocks = <&bpmp TEGRA234_CLK_DSPK2>;
@@ -1201,23 +1201,23 @@
tegra_ope1: processing-engine@2908000 {
compatible = "nvidia,tegra234-ope",
"nvidia,tegra210-ope";
- reg = <0x0 0x2908000 0x0 0x100>;
+ reg = <0x2908000 0x100>;
sound-name-prefix = "OPE1";
- #address-cells = <2>;
- #size-cells = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
ranges;
equalizer@2908100 {
compatible = "nvidia,tegra234-peq",
"nvidia,tegra210-peq";
- reg = <0x0 0x2908100 0x0 0x100>;
+ reg = <0x2908100 0x100>;
};
dynamic-range-compressor@2908200 {
compatible = "nvidia,tegra234-mbdrc",
"nvidia,tegra210-mbdrc";
- reg = <0x0 0x2908200 0x0 0x200>;
+ reg = <0x2908200 0x200>;
};
ports {
@@ -1247,7 +1247,7 @@
tegra_mvc1: mvc@290a000 {
compatible = "nvidia,tegra234-mvc",
"nvidia,tegra210-mvc";
- reg = <0x0 0x290a000 0x0 0x200>;
+ reg = <0x290a000 0x200>;
sound-name-prefix = "MVC1";
ports {
@@ -1275,7 +1275,7 @@
tegra_mvc2: mvc@290a200 {
compatible = "nvidia,tegra234-mvc",
"nvidia,tegra210-mvc";
- reg = <0x0 0x290a200 0x0 0x200>;
+ reg = <0x290a200 0x200>;
sound-name-prefix = "MVC2";
ports {
@@ -1303,7 +1303,7 @@
tegra_amixer: amixer@290bb00 {
compatible = "nvidia,tegra234-amixer",
"nvidia,tegra210-amixer";
- reg = <0x0 0x290bb00 0x0 0x800>;
+ reg = <0x290bb00 0x800>;
sound-name-prefix = "MIXER1";
ports {
@@ -1435,7 +1435,7 @@
tegra_admaif: admaif@290f000 {
compatible = "nvidia,tegra234-admaif",
"nvidia,tegra186-admaif";
- reg = <0x0 0x0290f000 0x0 0x1000>;
+ reg = <0x0290f000 0x1000>;
dmas = <&adma 1>, <&adma 1>,
<&adma 2>, <&adma 2>,
<&adma 3>, <&adma 3>,
@@ -1650,7 +1650,7 @@
tegra_asrc: asrc@2910000 {
compatible = "nvidia,tegra234-asrc",
"nvidia,tegra186-asrc";
- reg = <0x0 0x2910000 0x0 0x2000>;
+ reg = <0x2910000 0x2000>;
sound-name-prefix = "ASRC1";
ports {
diff --git a/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi b/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi
index 58cd81bc33d7..f39f33a66cd2 100644
--- a/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi
@@ -38,5 +38,62 @@
cmdqv@6200000 {
status = "okay";
};
+
+ i2c@c640000 {
+ status = "okay";
+
+ eeprom@50 {
+ compatible = "atmel,24c02";
+ reg = <0x50>;
+ label = "module";
+ address-width = <8>;
+ pagesize = <8>;
+ size = <256>;
+ read-only;
+ };
+ };
+ };
+
+ bpmp {
+ i2c {
+ status = "okay";
+
+ thermal-sensor@4c {
+ compatible = "ti,tmp451";
+ reg = <0x4c>;
+ };
+ };
+ };
+
+ thermal-zones {
+ cpu-thermal {
+ polling-delay-passive = <40>;
+ polling-delay = <1000>;
+ status = "okay";
+ };
+
+ gpu-thermal {
+ polling-delay-passive = <40>;
+ polling-delay = <1000>;
+ status = "okay";
+ };
+
+ soc012-thermal {
+ polling-delay-passive = <40>;
+ polling-delay = <1000>;
+ status = "okay";
+ };
+
+ soc345-thermal {
+ polling-delay-passive = <40>;
+ polling-delay = <1000>;
+ status = "okay";
+ };
+
+ tj-thermal {
+ polling-delay-passive = <40>;
+ polling-delay = <1000>;
+ status = "okay";
+ };
};
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra264-p4071-0000+p3834.dtsi b/arch/arm64/boot/dts/nvidia/tegra264-p4071-0000+p3834.dtsi
index 4550e843f513..9295f9c81296 100644
--- a/arch/arm64/boot/dts/nvidia/tegra264-p4071-0000+p3834.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra264-p4071-0000+p3834.dtsi
@@ -1,5 +1,8 @@
// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/input/gpio-keys.h>
+
/ {
aliases {
serial0 = &{/bus@0/serial@c4e0000};
@@ -11,15 +14,105 @@
};
bus@0 {
+ rtc@c2c0000 {
+ status = "okay";
+ };
+
pwm@c6a0000 {
status = "okay";
};
};
+ bus@8100000000 {
+ i2c@c640000 {
+ eeprom@56 {
+ compatible = "atmel,24c02";
+ reg = <0x56>;
+ label = "system";
+ address-width = <8>;
+ pagesize = <8>;
+ size = <256>;
+ read-only;
+ };
+ };
+ };
+
fan: pwm-fan {
compatible = "pwm-fan";
cooling-levels = <77 102 140 192 255>;
pwms = <&pwm4 0 40000>;
#cooling-cells = <2>;
};
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ key-force-recovery {
+ label = "Force Recovery";
+ gpios = <&gpio_aon TEGRA264_AON_GPIO(EE, 1) GPIO_ACTIVE_LOW>;
+ linux,input-type = <EV_KEY>;
+ linux,code = <KEY_SLEEP>;
+ };
+
+ key-power {
+ label = "Power";
+ gpios = <&gpio_aon TEGRA264_AON_GPIO(AA, 5) GPIO_ACTIVE_LOW>;
+ linux,input-type = <EV_KEY>;
+ linux,code = <KEY_POWER>;
+ wakeup-event-action = <EV_ACT_ASSERTED>;
+ wakeup-source;
+ };
+ };
+
+ thermal-zones {
+ tj-thermal {
+ trips {
+ tj_trip_active0: active-0 {
+ temperature = <80000>;
+ hysteresis = <0>;
+ type = "active";
+ };
+
+ tj_trip_active1: active-1 {
+ temperature = <86000>;
+ hysteresis = <0>;
+ type = "active";
+ };
+
+ tj_trip_active2: active-2 {
+ temperature = <91000>;
+ hysteresis = <0>;
+ type = "active";
+ };
+
+ tj_trip_active3: active-3 {
+ temperature = <100000>;
+ hysteresis = <0>;
+ type = "active";
+ };
+ };
+
+ cooling-maps {
+ map-active-0 {
+ cooling-device = <&fan 0 1>;
+ trip = <&tj_trip_active0>;
+ };
+
+ map-active-1 {
+ cooling-device = <&fan 1 2>;
+ trip = <&tj_trip_active1>;
+ };
+
+ map-active-2 {
+ cooling-device = <&fan 2 3>;
+ trip = <&tj_trip_active2>;
+ };
+
+ map-active-3 {
+ cooling-device = <&fan 3 4>;
+ trip = <&tj_trip_active3>;
+ };
+ };
+ };
+ };
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra264.dtsi b/arch/arm64/boot/dts/nvidia/tegra264.dtsi
index 6b2e3a6ab810..c04d0e5df85b 100644
--- a/arch/arm64/boot/dts/nvidia/tegra264.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra264.dtsi
@@ -1,18 +1,40 @@
// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
#include <dt-bindings/clock/nvidia,tegra264.h>
+#include <dt-bindings/gpio/nvidia,tegra264-gpio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/mailbox/tegra186-hsp.h>
#include <dt-bindings/memory/nvidia,tegra264.h>
#include <dt-bindings/power/nvidia,tegra264-bpmp.h>
#include <dt-bindings/reset/nvidia,tegra264.h>
+#include "thermal/nvidia,tegra264-bpmp.h"
+
/ {
compatible = "nvidia,tegra264";
interrupt-parent = <&gic>;
#address-cells = <2>;
#size-cells = <2>;
+ aliases {
+ i2c0 = &i2c0;
+ i2c1 = &i2c1;
+ i2c2 = &i2c2;
+ i2c3 = &i2c3;
+ i2c4 = &i2c4;
+ i2c5 = &{/bpmp/i2c};
+ i2c6 = &i2c6;
+ i2c7 = &i2c7;
+ i2c8 = &i2c8;
+ i2c9 = &i2c9;
+ i2c10 = &i2c10;
+ i2c11 = &i2c11;
+ i2c12 = &i2c12;
+ i2c14 = &i2c14;
+ i2c15 = &i2c15;
+ i2c16 = &i2c16;
+ };
+
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
@@ -40,6 +62,13 @@
<0x0 0x0c140000 0x0 0x10000>;
};
+ fuse@1000000 {
+ compatible = "nvidia,tegra264-efuse";
+ reg = <0x0 0x1000000 0x0 0x20000>;
+ clocks = <&bpmp TEGRA264_CLK_FUSE>;
+ clock-names = "fuse";
+ };
+
timer@8000000 {
compatible = "nvidia,tegra234-timer";
reg = <0x0 0x08000000 0x0 0x140000>;
@@ -122,85 +151,85 @@
aconnect@9000000 {
compatible = "nvidia,tegra264-aconnect",
- "nvidia,tegra210-aconnect";
+ "nvidia,tegra210-aconnect";
clocks = <&bpmp TEGRA264_CLK_APE>,
- <&bpmp TEGRA264_CLK_ADSP>;
+ <&bpmp TEGRA264_CLK_ADSP>;
clock-names = "ape", "apb2ape";
power-domains = <&bpmp TEGRA264_POWER_DOMAIN_AUD>;
status = "disabled";
- #address-cells = <2>;
- #size-cells = <2>;
- ranges = <0x0 0x9000000 0x0 0x9000000 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x9000000 0x0 0x9000000 0x2000000>;
adma: dma-controller@9440000 {
compatible = "nvidia,tegra264-adma";
- reg = <0x0 0x9440000 0x0 0xb0000>;
+ reg = <0x9440000 0xb0000>;
interrupt-parent = <&agic_page0>;
interrupts = <GIC_SPI 0x90 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x91 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x92 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x93 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x94 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x95 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x96 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x97 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x98 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x99 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x9a IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x9b IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x9c IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x9d IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x9e IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0x9f IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xa0 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xa1 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xa2 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xa3 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xa4 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xa5 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xa6 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xa7 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xa8 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xa9 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xaa IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xab IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xac IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xad IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xae IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xaf IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xb0 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xb1 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xb2 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xb3 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xb4 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xb5 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xb6 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xb7 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xb8 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xb9 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xba IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xbb IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xbc IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xbd IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xbe IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xbf IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xc0 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xc1 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xc2 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xc3 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xc4 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xc5 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xc6 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xc7 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xc8 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xc9 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xca IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xcb IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xcc IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xcd IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xce IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 0xcf IRQ_TYPE_LEVEL_HIGH>;
+ <GIC_SPI 0x91 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0x92 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0x93 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0x94 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0x95 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0x96 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0x97 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0x98 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0x99 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0x9a IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0x9b IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0x9c IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0x9d IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0x9e IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0x9f IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xa0 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xa1 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xa2 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xa3 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xa4 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xa5 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xa6 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xa7 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xa8 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xa9 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xaa IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xab IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xac IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xad IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xae IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xaf IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xb0 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xb1 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xb2 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xb3 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xb4 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xb5 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xb6 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xb7 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xb8 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xb9 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xba IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xbb IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xbc IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xbd IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xbe IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xbf IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xc0 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xc1 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xc2 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xc3 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xc4 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xc5 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xc6 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xc7 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xc8 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xc9 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xca IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xcb IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xcc IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xcd IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xce IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 0xcf IRQ_TYPE_LEVEL_HIGH>;
#dma-cells = <1>;
clocks = <&bpmp TEGRA264_CLK_AHUB>;
clock-names = "d_audio";
@@ -209,24 +238,24 @@
tegra_ahub: ahub@9630000 {
compatible = "nvidia,tegra264-ahub";
- reg = <0x0 0x9630000 0x0 0x10000>;
+ reg = <0x9630000 0x10000>;
clocks = <&bpmp TEGRA264_CLK_AHUB>;
clock-names = "ahub";
assigned-clocks = <&bpmp TEGRA264_CLK_AHUB>;
assigned-clock-parents = <&bpmp TEGRA264_CLK_PLLAON_APE>;
status = "disabled";
- #address-cells = <2>;
- #size-cells = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
/* ADMA is under AHUB range, its excluded in the defined range */
- ranges = <0x0 0x9280000 0x0 0x9280000 0x0 0x1c0000>,
- <0x0 0x9510000 0x0 0x9510000 0x0 0x370000>;
+ ranges = <0x9280000 0x9280000 0x1c0000>,
+ <0x9510000 0x9510000 0x370000>;
tegra_i2s1: i2s@9280000 {
compatible = "nvidia,tegra264-i2s";
- reg = <0x0 0x9280000 0x0 0x10000>;
+ reg = <0x9280000 0x10000>;
clocks = <&bpmp TEGRA264_CLK_I2S1>,
- <&bpmp TEGRA264_CLK_I2S1_SCLK_IN>;
+ <&bpmp TEGRA264_CLK_I2S1_SCLK_IN>;
clock-names = "i2s", "sync_input";
assigned-clocks = <&bpmp TEGRA264_CLK_I2S1>;
assigned-clock-parents = <&bpmp TEGRA264_CLK_PLLA1_OUT1>;
@@ -259,7 +288,7 @@
tegra_i2s2: i2s@9290000 {
compatible = "nvidia,tegra264-i2s";
- reg = <0x0 0x9290000 0x0 0x10000>;
+ reg = <0x9290000 0x10000>;
clocks = <&bpmp TEGRA264_CLK_I2S2>,
<&bpmp TEGRA264_CLK_I2S2_SCLK_IN>;
clock-names = "i2s", "sync_input";
@@ -294,9 +323,9 @@
tegra_i2s3: i2s@92a0000 {
compatible = "nvidia,tegra264-i2s";
- reg = <0x0 0x92a0000 0x0 0x10000>;
+ reg = <0x92a0000 0x10000>;
clocks = <&bpmp TEGRA264_CLK_I2S3>,
- <&bpmp TEGRA264_CLK_I2S3_SCLK_IN>;
+ <&bpmp TEGRA264_CLK_I2S3_SCLK_IN>;
clock-names = "i2s", "sync_input";
assigned-clocks = <&bpmp TEGRA264_CLK_I2S3>;
assigned-clock-parents = <&bpmp TEGRA264_CLK_PLLA1_OUT1>;
@@ -329,9 +358,9 @@
tegra_i2s4: i2s@92b0000 {
compatible = "nvidia,tegra264-i2s";
- reg = <0x0 0x92b0000 0x0 0x10000>;
+ reg = <0x92b0000 0x10000>;
clocks = <&bpmp TEGRA264_CLK_I2S4>,
- <&bpmp TEGRA264_CLK_I2S4_SCLK_IN>;
+ <&bpmp TEGRA264_CLK_I2S4_SCLK_IN>;
clock-names = "i2s", "sync_input";
assigned-clocks = <&bpmp TEGRA264_CLK_I2S4>;
assigned-clock-parents = <&bpmp TEGRA264_CLK_PLLA1_OUT1>;
@@ -364,9 +393,9 @@
tegra_i2s5: i2s@92c0000 {
compatible = "nvidia,tegra264-i2s";
- reg = <0x0 0x92c0000 0x0 0x10000>;
+ reg = <0x92c0000 0x10000>;
clocks = <&bpmp TEGRA264_CLK_I2S5>,
- <&bpmp TEGRA264_CLK_I2S5_SCLK_IN>;
+ <&bpmp TEGRA264_CLK_I2S5_SCLK_IN>;
clock-names = "i2s", "sync_input";
assigned-clocks = <&bpmp TEGRA264_CLK_I2S5>;
assigned-clock-parents = <&bpmp TEGRA264_CLK_PLLA1_OUT1>;
@@ -399,9 +428,9 @@
tegra_i2s6: i2s@92d0000 {
compatible = "nvidia,tegra264-i2s";
- reg = <0x0 0x92d0000 0x0 0x10000>;
+ reg = <0x92d0000 0x10000>;
clocks = <&bpmp TEGRA264_CLK_I2S6>,
- <&bpmp TEGRA264_CLK_I2S6_SCLK_IN>;
+ <&bpmp TEGRA264_CLK_I2S6_SCLK_IN>;
clock-names = "i2s", "sync_input";
assigned-clocks = <&bpmp TEGRA264_CLK_I2S6>;
assigned-clock-parents = <&bpmp TEGRA264_CLK_PLLA1_OUT1>;
@@ -434,9 +463,9 @@
tegra_i2s7: i2s@92e0000 {
compatible = "nvidia,tegra264-i2s";
- reg = <0x0 0x92e0000 0x0 0x10000>;
+ reg = <0x92e0000 0x10000>;
clocks = <&bpmp TEGRA264_CLK_I2S7>,
- <&bpmp TEGRA264_CLK_I2S7_SCLK_IN>;
+ <&bpmp TEGRA264_CLK_I2S7_SCLK_IN>;
clock-names = "i2s", "sync_input";
assigned-clocks = <&bpmp TEGRA264_CLK_I2S7>;
assigned-clock-parents = <&bpmp TEGRA264_CLK_PLLA1_OUT1>;
@@ -469,9 +498,9 @@
tegra_i2s8: i2s@92f0000 {
compatible = "nvidia,tegra264-i2s";
- reg = <0x0 0x92f0000 0x0 0x10000>;
+ reg = <0x92f0000 0x10000>;
clocks = <&bpmp TEGRA264_CLK_I2S8>,
- <&bpmp TEGRA264_CLK_I2S8_SCLK_IN>;
+ <&bpmp TEGRA264_CLK_I2S8_SCLK_IN>;
clock-names = "i2s", "sync_input";
assigned-clocks = <&bpmp TEGRA264_CLK_I2S8>;
assigned-clock-parents = <&bpmp TEGRA264_CLK_PLLA1_OUT1>;
@@ -504,8 +533,8 @@
tegra_dmic1: dmic@9300000 {
compatible = "nvidia,tegra264-dmic",
- "nvidia,tegra210-dmic";
- reg = <0x0 0x9300000 0x0 0x10000>;
+ "nvidia,tegra210-dmic";
+ reg = <0x9300000 0x10000>;
clocks = <&bpmp TEGRA264_CLK_DMIC1>;
clock-names = "dmic";
assigned-clocks = <&bpmp TEGRA264_CLK_DMIC1>;
@@ -538,8 +567,8 @@
tegra_dmic2: dmic@9310000 {
compatible = "nvidia,tegra264-dmic",
- "nvidia,tegra210-dmic";
- reg = <0x0 0x9310000 0x0 0x10000>;
+ "nvidia,tegra210-dmic";
+ reg = <0x9310000 0x10000>;
clocks = <&bpmp TEGRA264_CLK_DMIC1>;
clock-names = "dmic";
assigned-clocks = <&bpmp TEGRA264_CLK_DMIC1>;
@@ -572,8 +601,8 @@
tegra_dspk1: dspk@9380000 {
compatible = "nvidia,tegra264-dspk",
- "nvidia,tegra186-dspk";
- reg = <0x0 0x9380000 0x0 0x10000>;
+ "nvidia,tegra186-dspk";
+ reg = <0x9380000 0x10000>;
clocks = <&bpmp TEGRA264_CLK_DSPK1>;
clock-names = "dspk";
assigned-clocks = <&bpmp TEGRA264_CLK_DSPK1>;
@@ -606,7 +635,7 @@
tegra_amx1: amx@9510000 {
compatible = "nvidia,tegra264-amx";
- reg = <0x0 0x9510000 0x0 0x10000>;
+ reg = <0x9510000 0x10000>;
sound-name-prefix = "AMX1";
ports {
@@ -657,7 +686,7 @@
tegra_amx2: amx@9520000 {
compatible = "nvidia,tegra264-amx";
- reg = <0x0 0x9520000 0x0 0x10000>;
+ reg = <0x9520000 0x10000>;
sound-name-prefix = "AMX2";
ports {
@@ -708,7 +737,7 @@
tegra_amx3: amx@9530000 {
compatible = "nvidia,tegra264-amx";
- reg = <0x0 0x9530000 0x0 0x10000>;
+ reg = <0x9530000 0x10000>;
sound-name-prefix = "AMX3";
ports {
@@ -759,7 +788,7 @@
tegra_amx4: amx@9540000 {
compatible = "nvidia,tegra264-amx";
- reg = <0x0 0x9540000 0x0 0x10000>;
+ reg = <0x9540000 0x10000>;
sound-name-prefix = "AMX4";
ports {
@@ -810,7 +839,7 @@
tegra_amx5: amx@9550000 {
compatible = "nvidia,tegra264-amx";
- reg = <0x0 0x9550000 0x0 0x10000>;
+ reg = <0x9550000 0x10000>;
sound-name-prefix = "AMX5";
ports {
@@ -861,7 +890,7 @@
tegra_amx6: amx@9560000 {
compatible = "nvidia,tegra264-amx";
- reg = <0x0 0x9560000 0x0 0x10000>;
+ reg = <0x9560000 0x10000>;
sound-name-prefix = "AMX6";
ports {
@@ -912,7 +941,7 @@
tegra_adx1: adx@9590000 {
compatible = "nvidia,tegra264-adx";
- reg = <0x0 0x9590000 0x0 0x10000>;
+ reg = <0x9590000 0x10000>;
sound-name-prefix = "ADX1";
ports {
@@ -963,7 +992,7 @@
tegra_adx2: adx@95a0000 {
compatible = "nvidia,tegra264-adx";
- reg = <0x0 0x95a0000 0x0 0x10000>;
+ reg = <0x95a0000 0x10000>;
sound-name-prefix = "ADX2";
ports {
@@ -1014,7 +1043,7 @@
tegra_adx3: adx@95b0000 {
compatible = "nvidia,tegra264-adx";
- reg = <0x0 0x95b0000 0x0 0x10000>;
+ reg = <0x95b0000 0x10000>;
sound-name-prefix = "ADX3";
ports {
@@ -1065,7 +1094,7 @@
tegra_adx4: adx@95c0000 {
compatible = "nvidia,tegra264-adx";
- reg = <0x0 0x95c0000 0x0 0x10000>;
+ reg = <0x95c0000 0x10000>;
sound-name-prefix = "ADX4";
ports {
@@ -1116,7 +1145,7 @@
tegra_adx5: adx@95d0000 {
compatible = "nvidia,tegra264-adx";
- reg = <0x0 0x95d0000 0x0 0x10000>;
+ reg = <0x95d0000 0x10000>;
sound-name-prefix = "ADX5";
ports {
@@ -1167,7 +1196,7 @@
tegra_adx6: adx@95e0000 {
compatible = "nvidia,tegra264-adx";
- reg = <0x0 0x95e0000 0x0 0x10000>;
+ reg = <0x95e0000 0x10000>;
sound-name-prefix = "ADX6";
ports {
@@ -1218,76 +1247,75 @@
tegra_admaif: admaif@9610000 {
compatible = "nvidia,tegra264-admaif";
- reg = <0x0 0x9610000 0x0 0x10000>;
+ reg = <0x9610000 0x10000>;
dmas = <&adma 1>, <&adma 1>,
- <&adma 2>, <&adma 2>,
- <&adma 3>, <&adma 3>,
- <&adma 4>, <&adma 4>,
- <&adma 5>, <&adma 5>,
- <&adma 6>, <&adma 6>,
- <&adma 7>, <&adma 7>,
- <&adma 8>, <&adma 8>,
- <&adma 9>, <&adma 9>,
- <&adma 10>, <&adma 10>,
- <&adma 11>, <&adma 11>,
- <&adma 12>, <&adma 12>,
- <&adma 13>, <&adma 13>,
- <&adma 14>, <&adma 14>,
- <&adma 15>, <&adma 15>,
- <&adma 16>, <&adma 16>,
- <&adma 17>, <&adma 17>,
- <&adma 18>, <&adma 18>,
- <&adma 19>, <&adma 19>,
- <&adma 20>, <&adma 20>,
- <&adma 21>, <&adma 21>,
- <&adma 22>, <&adma 22>,
- <&adma 23>, <&adma 23>,
- <&adma 24>, <&adma 24>,
- <&adma 25>, <&adma 25>,
- <&adma 26>, <&adma 26>,
- <&adma 27>, <&adma 27>,
- <&adma 28>, <&adma 28>,
- <&adma 29>, <&adma 29>,
- <&adma 30>, <&adma 30>,
- <&adma 31>, <&adma 31>,
- <&adma 32>, <&adma 32>;
+ <&adma 2>, <&adma 2>,
+ <&adma 3>, <&adma 3>,
+ <&adma 4>, <&adma 4>,
+ <&adma 5>, <&adma 5>,
+ <&adma 6>, <&adma 6>,
+ <&adma 7>, <&adma 7>,
+ <&adma 8>, <&adma 8>,
+ <&adma 9>, <&adma 9>,
+ <&adma 10>, <&adma 10>,
+ <&adma 11>, <&adma 11>,
+ <&adma 12>, <&adma 12>,
+ <&adma 13>, <&adma 13>,
+ <&adma 14>, <&adma 14>,
+ <&adma 15>, <&adma 15>,
+ <&adma 16>, <&adma 16>,
+ <&adma 17>, <&adma 17>,
+ <&adma 18>, <&adma 18>,
+ <&adma 19>, <&adma 19>,
+ <&adma 20>, <&adma 20>,
+ <&adma 21>, <&adma 21>,
+ <&adma 22>, <&adma 22>,
+ <&adma 23>, <&adma 23>,
+ <&adma 24>, <&adma 24>,
+ <&adma 25>, <&adma 25>,
+ <&adma 26>, <&adma 26>,
+ <&adma 27>, <&adma 27>,
+ <&adma 28>, <&adma 28>,
+ <&adma 29>, <&adma 29>,
+ <&adma 30>, <&adma 30>,
+ <&adma 31>, <&adma 31>,
+ <&adma 32>, <&adma 32>;
dma-names = "rx1", "tx1",
- "rx2", "tx2",
- "rx3", "tx3",
- "rx4", "tx4",
- "rx5", "tx5",
- "rx6", "tx6",
- "rx7", "tx7",
- "rx8", "tx8",
- "rx9", "tx9",
- "rx10", "tx10",
- "rx11", "tx11",
- "rx12", "tx12",
- "rx13", "tx13",
- "rx14", "tx14",
- "rx15", "tx15",
- "rx16", "tx16",
- "rx17", "tx17",
- "rx18", "tx18",
- "rx19", "tx19",
- "rx20", "tx20",
- "rx21", "tx21",
- "rx22", "tx22",
- "rx23", "tx23",
- "rx24", "tx24",
- "rx25", "tx25",
- "rx26", "tx26",
- "rx27", "tx27",
- "rx28", "tx28",
- "rx29", "tx29",
- "rx30", "tx30",
- "rx31", "tx31",
- "rx32", "tx32";
-
- interconnects =
- <&mc TEGRA264_MEMORY_CLIENT_APEDMAR &emc>,
- <&mc TEGRA264_MEMORY_CLIENT_APEDMAW &emc>;
- interconnect-names = "dma-mem", "write";
+ "rx2", "tx2",
+ "rx3", "tx3",
+ "rx4", "tx4",
+ "rx5", "tx5",
+ "rx6", "tx6",
+ "rx7", "tx7",
+ "rx8", "tx8",
+ "rx9", "tx9",
+ "rx10", "tx10",
+ "rx11", "tx11",
+ "rx12", "tx12",
+ "rx13", "tx13",
+ "rx14", "tx14",
+ "rx15", "tx15",
+ "rx16", "tx16",
+ "rx17", "tx17",
+ "rx18", "tx18",
+ "rx19", "tx19",
+ "rx20", "tx20",
+ "rx21", "tx21",
+ "rx22", "tx22",
+ "rx23", "tx23",
+ "rx24", "tx24",
+ "rx25", "tx25",
+ "rx26", "tx26",
+ "rx27", "tx27",
+ "rx28", "tx28",
+ "rx29", "tx29",
+ "rx30", "tx30",
+ "rx31", "tx31",
+ "rx32", "tx32";
+
+ interconnects = <&mc TEGRA264_MEMORY_CLIENT_APEDMAR &emc>,
+ <&mc TEGRA264_MEMORY_CLIENT_APEDMAW &emc>;
+ interconnect-names = "dma-mem", "write";
iommus = <&smmu1 TEGRA264_SID_APE>;
@@ -1555,8 +1583,8 @@
tegra_sfc1: sfc@9700000 {
compatible = "nvidia,tegra264-sfc",
- "nvidia,tegra210-sfc";
- reg = <0x0 0x9700000 0x0 0x10000>;
+ "nvidia,tegra210-sfc";
+ reg = <0x9700000 0x10000>;
sound-name-prefix = "SFC1";
ports {
@@ -1583,8 +1611,8 @@
tegra_sfc2: sfc@9710000 {
compatible = "nvidia,tegra264-sfc",
- "nvidia,tegra210-sfc";
- reg = <0x0 0x9710000 0x0 0x10000>;
+ "nvidia,tegra210-sfc";
+ reg = <0x9710000 0x10000>;
sound-name-prefix = "SFC2";
ports {
@@ -1611,8 +1639,8 @@
tegra_sfc3: sfc@9720000 {
compatible = "nvidia,tegra264-sfc",
- "nvidia,tegra210-sfc";
- reg = <0x0 0x9720000 0x0 0x10000>;
+ "nvidia,tegra210-sfc";
+ reg = <0x9720000 0x10000>;
sound-name-prefix = "SFC3";
ports {
@@ -1639,8 +1667,8 @@
tegra_sfc4: sfc@9730000 {
compatible = "nvidia,tegra264-sfc",
- "nvidia,tegra210-sfc";
- reg = <0x0 0x9730000 0x0 0x10000>;
+ "nvidia,tegra210-sfc";
+ reg = <0x9730000 0x10000>;
sound-name-prefix = "SFC4";
ports {
@@ -1667,23 +1695,23 @@
tegra_ope1: processing-engine@9780000 {
compatible = "nvidia,tegra264-ope",
- "nvidia,tegra210-ope";
- reg = <0x0 0x9780000 0x0 0x10000>;
- #address-cells = <2>;
- #size-cells = <2>;
- ranges = <0x0 0x9780000 0x0 0x9780000 0x0 0x30000>;
+ "nvidia,tegra210-ope";
+ reg = <0x9780000 0x10000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x9780000 0x9780000 0x30000>;
sound-name-prefix = "OPE1";
equalizer@9790000 {
compatible = "nvidia,tegra264-peq",
- "nvidia,tegra210-peq";
- reg = <0x0 0x9790000 0x0 0x10000>;
+ "nvidia,tegra210-peq";
+ reg = <0x9790000 0x10000>;
};
dynamic-range-compressor@97a0000 {
compatible = "nvidia,tegra264-mbdrc",
- "nvidia,tegra210-mbdrc";
- reg = <0x0 0x97a0000 0x0 0x10000>;
+ "nvidia,tegra210-mbdrc";
+ reg = <0x97a0000 0x10000>;
};
ports {
@@ -1694,8 +1722,7 @@
reg = <0x0>;
ope1_cif_in_ep: endpoint {
- remote-endpoint =
- <&xbar_ope1_in_ep>;
+ remote-endpoint = <&xbar_ope1_in_ep>;
};
};
@@ -1703,8 +1730,7 @@
reg = <0x1>;
ope1_cif_out_ep: endpoint {
- remote-endpoint =
- <&xbar_ope1_out_ep>;
+ remote-endpoint = <&xbar_ope1_out_ep>;
};
};
};
@@ -1712,8 +1738,8 @@
tegra_mvc1: mvc@9800000 {
compatible = "nvidia,tegra264-mvc",
- "nvidia,tegra210-mvc";
- reg = <0x0 0x9800000 0x0 0x10000>;
+ "nvidia,tegra210-mvc";
+ reg = <0x9800000 0x10000>;
sound-name-prefix = "MVC1";
ports {
@@ -1740,8 +1766,8 @@
tegra_mvc2: mvc@9810000 {
compatible = "nvidia,tegra264-mvc",
- "nvidia,tegra210-mvc";
- reg = <0x0 0x9810000 0x0 0x10000>;
+ "nvidia,tegra210-mvc";
+ reg = <0x9810000 0x10000>;
sound-name-prefix = "MVC2";
ports {
@@ -1768,8 +1794,8 @@
tegra_amixer: amixer@9820000 {
compatible = "nvidia,tegra264-amixer",
- "nvidia,tegra210-amixer";
- reg = <0x0 0x9820000 0x0 0x10000>;
+ "nvidia,tegra210-amixer";
+ reg = <0x9820000 0x10000>;
sound-name-prefix = "MIXER1";
ports {
@@ -1900,7 +1926,7 @@
tegra_asrc: asrc@9850000 {
compatible = "nvidia,tegra264-asrc";
- reg = <0x0 0x9850000 0x0 0x10000>;
+ reg = <0x9850000 0x10000>;
sound-name-prefix = "ASRC1";
ports {
@@ -1911,8 +1937,7 @@
reg = <0x0>;
asrc_in1_ep: endpoint {
- remote-endpoint =
- <&xbar_asrc_in1_ep>;
+ remote-endpoint = <&xbar_asrc_in1_ep>;
};
};
@@ -1920,8 +1945,7 @@
reg = <0x1>;
asrc_in2_ep: endpoint {
- remote-endpoint =
- <&xbar_asrc_in2_ep>;
+ remote-endpoint = <&xbar_asrc_in2_ep>;
};
};
@@ -1929,8 +1953,7 @@
reg = <0x2>;
asrc_in3_ep: endpoint {
- remote-endpoint =
- <&xbar_asrc_in3_ep>;
+ remote-endpoint = <&xbar_asrc_in3_ep>;
};
};
@@ -1938,8 +1961,7 @@
reg = <0x3>;
asrc_in4_ep: endpoint {
- remote-endpoint =
- <&xbar_asrc_in4_ep>;
+ remote-endpoint = <&xbar_asrc_in4_ep>;
};
};
@@ -1947,8 +1969,7 @@
reg = <0x4>;
asrc_in5_ep: endpoint {
- remote-endpoint =
- <&xbar_asrc_in5_ep>;
+ remote-endpoint = <&xbar_asrc_in5_ep>;
};
};
@@ -1956,8 +1977,7 @@
reg = <0x5>;
asrc_in6_ep: endpoint {
- remote-endpoint =
- <&xbar_asrc_in6_ep>;
+ remote-endpoint = <&xbar_asrc_in6_ep>;
};
};
@@ -1965,8 +1985,7 @@
reg = <0x6>;
asrc_in7_ep: endpoint {
- remote-endpoint =
- <&xbar_asrc_in7_ep>;
+ remote-endpoint = <&xbar_asrc_in7_ep>;
};
};
@@ -1974,8 +1993,7 @@
reg = <0x7>;
asrc_out1_ep: endpoint {
- remote-endpoint =
- <&xbar_asrc_out1_ep>;
+ remote-endpoint = <&xbar_asrc_out1_ep>;
};
};
@@ -1983,8 +2001,7 @@
reg = <0x8>;
asrc_out2_ep: endpoint {
- remote-endpoint =
- <&xbar_asrc_out2_ep>;
+ remote-endpoint = <&xbar_asrc_out2_ep>;
};
};
@@ -1992,8 +2009,7 @@
reg = <0x9>;
asrc_out3_ep: endpoint {
- remote-endpoint =
- <&xbar_asrc_out3_ep>;
+ remote-endpoint = <&xbar_asrc_out3_ep>;
};
};
@@ -2001,8 +2017,7 @@
reg = <0xa>;
asrc_out4_ep: endpoint {
- remote-endpoint =
- <&xbar_asrc_out4_ep>;
+ remote-endpoint = <&xbar_asrc_out4_ep>;
};
};
@@ -2010,8 +2025,7 @@
reg = <0xb>;
asrc_out5_ep: endpoint {
- remote-endpoint =
- <&xbar_asrc_out5_ep>;
+ remote-endpoint = <&xbar_asrc_out5_ep>;
};
};
@@ -2019,8 +2033,7 @@
reg = <0xc>;
asrc_out6_ep: endpoint {
- remote-endpoint =
- <&xbar_asrc_out6_ep>;
+ remote-endpoint = <&xbar_asrc_out6_ep>;
};
};
};
@@ -3194,13 +3207,12 @@
agic_page0: interrupt-controller@9960000 {
compatible = "nvidia,tegra264-agic",
- "nvidia,tegra210-agic";
+ "nvidia,tegra210-agic";
#interrupt-cells = <3>;
interrupt-controller;
- reg = <0x0 0x9961000 0x0 0x1000>,
- <0x0 0x9962000 0x0 0x1000>;
- interrupts = <GIC_SPI 0x230
- (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+ reg = <0x9961000 0x1000>,
+ <0x9962000 0x1000>;
+ interrupts = <GIC_SPI 0x230 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
clocks = <&bpmp TEGRA264_CLK_ADSP>;
clock-names = "clk";
status = "disabled";
@@ -3208,13 +3220,12 @@
agic_page1: interrupt-controller@9970000 {
compatible = "nvidia,tegra264-agic",
- "nvidia,tegra210-agic";
+ "nvidia,tegra210-agic";
#interrupt-cells = <3>;
interrupt-controller;
- reg = <0x0 0x9971000 0x0 0x1000>,
- <0x0 0x9972000 0x0 0x1000>;
- interrupts = <GIC_SPI 0x231
- (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+ reg = <0x9971000 0x1000>,
+ <0x9972000 0x1000>;
+ interrupts = <GIC_SPI 0x231 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
clocks = <&bpmp TEGRA264_CLK_ADSP>;
clock-names = "clk";
status = "disabled";
@@ -3222,13 +3233,12 @@
agic_page2: interrupt-controller@9980000 {
compatible = "nvidia,tegra264-agic",
- "nvidia,tegra210-agic";
+ "nvidia,tegra210-agic";
#interrupt-cells = <3>;
interrupt-controller;
- reg = <0x0 0x9981000 0x0 0x1000>,
- <0x0 0x9982000 0x0 0x1000>;
- interrupts = <GIC_SPI 0x232
- (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+ reg = <0x9981000 0x1000>,
+ <0x9982000 0x1000>;
+ interrupts = <GIC_SPI 0x232 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
clocks = <&bpmp TEGRA264_CLK_ADSP>;
clock-names = "clk";
status = "disabled";
@@ -3236,13 +3246,12 @@
agic_page3: interrupt-controller@9990000 {
compatible = "nvidia,tegra264-agic",
- "nvidia,tegra210-agic";
+ "nvidia,tegra210-agic";
#interrupt-cells = <3>;
interrupt-controller;
- reg = <0x0 0x9991000 0x0 0x1000>,
- <0x0 0x9992000 0x0 0x1000>;
- interrupts = <GIC_SPI 0x233
- (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+ reg = <0x9991000 0x1000>,
+ <0x9992000 0x1000>;
+ interrupts = <GIC_SPI 0x233 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
clocks = <&bpmp TEGRA264_CLK_ADSP>;
clock-names = "clk";
status = "disabled";
@@ -3250,13 +3259,12 @@
agic_page4: interrupt-controller@99a0000 {
compatible = "nvidia,tegra264-agic",
- "nvidia,tegra210-agic";
+ "nvidia,tegra210-agic";
#interrupt-cells = <3>;
interrupt-controller;
- reg = <0x0 0x99a1000 0x0 0x1000>,
- <0x0 0x99a2000 0x0 0x1000>;
- interrupts = <GIC_SPI 0x234
- (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+ reg = <0x99a1000 0x1000>,
+ <0x99a2000 0x1000>;
+ interrupts = <GIC_SPI 0x234 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
clocks = <&bpmp TEGRA264_CLK_ADSP>;
clock-names = "clk";
status = "disabled";
@@ -3264,13 +3272,12 @@
agic_page5: interrupt-controller@99b0000 {
compatible = "nvidia,tegra264-agic",
- "nvidia,tegra210-agic";
+ "nvidia,tegra210-agic";
#interrupt-cells = <3>;
interrupt-controller;
- reg = <0x0 0x99b1000 0x0 0x1000>,
- <0x0 0x99b2000 0x0 0x1000>;
- interrupts = <GIC_SPI 0x235
- (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+ reg = <0x99b1000 0x1000>,
+ <0x99b2000 0x1000>;
+ interrupts = <GIC_SPI 0x235 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
clocks = <&bpmp TEGRA264_CLK_ADSP>;
clock-names = "clk";
status = "disabled";
@@ -3330,6 +3337,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x0 0x0c600000 0x0 0x10000>;
interrupts = <GIC_SPI 532 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_AON_I2C>,
<&bpmp TEGRA264_CLK_PLLAON>;
@@ -3345,6 +3354,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x0 0x0c610000 0x0 0x10000>;
interrupts = <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_AON_I2C>,
<&bpmp TEGRA264_CLK_PLLAON>;
@@ -3642,6 +3653,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x00 0x0c410000 0x0 0x10000>;
interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_TOP_I2C>,
<&bpmp TEGRA264_CLK_PLLP_OUT0>;
@@ -3657,6 +3670,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x00 0x0c420000 0x0 0x10000>;
interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_TOP_I2C>,
<&bpmp TEGRA264_CLK_PLLP_OUT0>;
@@ -3672,6 +3687,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x00 0x0c430000 0x0 0x10000>;
interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_TOP_I2C>,
<&bpmp TEGRA264_CLK_PLLP_OUT0>;
@@ -3747,6 +3764,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x00 0x0c630000 0x0 0x10000>;
interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_TOP_I2C>,
<&bpmp TEGRA264_CLK_PLLP_OUT0>;
@@ -3762,6 +3781,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x00 0x0c640000 0x0 0x10000>;
interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_TOP_I2C>,
<&bpmp TEGRA264_CLK_PLLP_OUT0>;
@@ -3777,6 +3798,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x00 0x0c650000 0x0 0x10000>;
interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_TOP_I2C>,
<&bpmp TEGRA264_CLK_PLLP_OUT0>;
@@ -3792,6 +3815,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x00 0x0c670000 0x0 0x10000>;
interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_TOP_I2C>,
<&bpmp TEGRA264_CLK_PLLP_OUT0>;
@@ -3807,6 +3832,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x00 0x0c680000 0x0 0x10000>;
interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_TOP_I2C>,
<&bpmp TEGRA264_CLK_PLLP_OUT0>;
@@ -3822,6 +3849,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x00 0x0c690000 0x0 0x10000>;
interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_TOP_I2C>,
<&bpmp TEGRA264_CLK_PLLP_OUT0>;
@@ -3837,6 +3866,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x00 0x0c6a0000 0x0 0x10000>;
interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_TOP_I2C>,
<&bpmp TEGRA264_CLK_PLLP_OUT0>;
@@ -3852,6 +3883,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x00 0x0c6b0000 0x0 0x10000>;
interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_TOP_I2C>,
<&bpmp TEGRA264_CLK_PLLP_OUT0>;
@@ -3867,6 +3900,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x00 0x0c6c0000 0x0 0x10000>;
interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_TOP_I2C>,
<&bpmp TEGRA264_CLK_PLLP_OUT0>;
@@ -3882,6 +3917,8 @@
compatible = "nvidia,tegra264-i2c";
reg = <0x00 0x0c6d0000 0x0 0x10000>;
interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
clock-frequency = <400000>;
clocks = <&bpmp TEGRA264_CLK_TOP_I2C>,
<&bpmp TEGRA264_CLK_PLLP_OUT0>;
@@ -4685,6 +4722,33 @@
status = "disabled";
};
+ thermal-zones {
+ cpu-thermal {
+ thermal-sensors = <&{/bpmp/thermal} TEGRA264_THERMAL_ZONE_CPU_MAX>;
+ status = "disabled";
+ };
+
+ gpu-thermal {
+ thermal-sensors = <&{/bpmp/thermal} TEGRA264_THERMAL_ZONE_GPU_MAX>;
+ status = "disabled";
+ };
+
+ soc012-thermal {
+ thermal-sensors = <&{/bpmp/thermal} TEGRA264_THERMAL_ZONE_SOC_012_MAX>;
+ status = "disabled";
+ };
+
+ soc345-thermal {
+ thermal-sensors = <&{/bpmp/thermal} TEGRA264_THERMAL_ZONE_SOC_345_MAX>;
+ status = "disabled";
+ };
+
+ tj-thermal {
+ thermal-sensors = <&{/bpmp/thermal} TEGRA264_THERMAL_ZONE_TJ_MAX>;
+ status = "disabled";
+ };
+ };
+
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
diff --git a/arch/arm64/boot/dts/nvidia/thermal/nvidia,tegra264-bpmp.h b/arch/arm64/boot/dts/nvidia/thermal/nvidia,tegra264-bpmp.h
new file mode 100644
index 000000000000..29695881f4cc
--- /dev/null
+++ b/arch/arm64/boot/dts/nvidia/thermal/nvidia,tegra264-bpmp.h
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/* SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */
+
+#ifndef DT_BINDINGS_THERMAL_NVIDIA_TEGRA264_BPMP_H
+#define DT_BINDINGS_THERMAL_NVIDIA_TEGRA264_BPMP_H
+
+#define TEGRA264_THERMAL_ZONE_TJ_MAX 0
+#define TEGRA264_THERMAL_ZONE_TJ_MIN 1
+#define TEGRA264_THERMAL_ZONE_GPU_AVG 2
+#define TEGRA264_THERMAL_ZONE_CPU_AVG 3
+#define TEGRA264_THERMAL_ZONE_SOC_012_AVG 4
+#define TEGRA264_THERMAL_ZONE_SOC_45_AVG 5
+#define TEGRA264_THERMAL_ZONE_SOC_3_AVG 6
+#define TEGRA264_THERMAL_ZONE_GPU_MAX 7
+#define TEGRA264_THERMAL_ZONE_CPU_MAX 8
+#define TEGRA264_THERMAL_ZONE_SOC_012_MAX 9
+#define TEGRA264_THERMAL_ZONE_SOC_345_MAX 10
+#define TEGRA264_THERMAL_ZONE_TJ_AVG 11
+
+#endif /* DT_BINDINGS_THERMAL_NVIDIA_TEGRA264_BPMP_H */
diff --git a/drivers/soc/tegra/fuse/fuse-tegra.c b/drivers/soc/tegra/fuse/fuse-tegra.c
index 39654964c35c..b8c8ccf80056 100644
--- a/drivers/soc/tegra/fuse/fuse-tegra.c
+++ b/drivers/soc/tegra/fuse/fuse-tegra.c
@@ -65,6 +65,9 @@ static struct tegra_fuse *fuse = &(struct tegra_fuse) {
};
static const struct of_device_id tegra_fuse_match[] = {
+#ifdef CONFIG_ARCH_TEGRA_264_SOC
+ { .compatible = "nvidia,tegra264-efuse", .data = &tegra264_fuse_soc },
+#endif
#ifdef CONFIG_ARCH_TEGRA_234_SOC
{ .compatible = "nvidia,tegra234-efuse", .data = &tegra234_fuse_soc },
#endif
@@ -176,6 +179,11 @@ static int tegra_fuse_probe(struct platform_device *pdev)
fuse->soc = &tegra241_fuse_soc;
break;
#endif
+#if defined(CONFIG_ARCH_TEGRA_264_SOC)
+ case TEGRA264:
+ fuse->soc = &tegra264_fuse_soc;
+ break;
+#endif
default:
return dev_err_probe(&pdev->dev, -EINVAL, "Unsupported SoC: %02x\n", chip);
}
@@ -413,7 +421,8 @@ const struct attribute_group tegra_soc_attr_group = {
#if IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC) || \
IS_ENABLED(CONFIG_ARCH_TEGRA_234_SOC) || \
- IS_ENABLED(CONFIG_ARCH_TEGRA_241_SOC)
+ IS_ENABLED(CONFIG_ARCH_TEGRA_241_SOC) || \
+ IS_ENABLED(CONFIG_ARCH_TEGRA_264_SOC)
static ssize_t platform_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
diff --git a/drivers/soc/tegra/fuse/fuse-tegra30.c b/drivers/soc/tegra/fuse/fuse-tegra30.c
index 2fad8b13a3b9..623848116b69 100644
--- a/drivers/soc/tegra/fuse/fuse-tegra30.c
+++ b/drivers/soc/tegra/fuse/fuse-tegra30.c
@@ -39,7 +39,8 @@
defined(CONFIG_ARCH_TEGRA_186_SOC) || \
defined(CONFIG_ARCH_TEGRA_194_SOC) || \
defined(CONFIG_ARCH_TEGRA_234_SOC) || \
- defined(CONFIG_ARCH_TEGRA_241_SOC)
+ defined(CONFIG_ARCH_TEGRA_241_SOC) || \
+ defined(CONFIG_ARCH_TEGRA_264_SOC)
static u32 tegra30_fuse_read_early(struct tegra_fuse *fuse, unsigned int offset)
{
if (WARN_ON(!fuse->base))
@@ -802,3 +803,168 @@ const struct tegra_fuse_soc tegra241_fuse_soc = {
.soc_attr_group = &tegra194_soc_attr_group,
};
#endif
+
+#ifdef CONFIG_ARCH_TEGRA_264_SOC
+static const struct nvmem_keepout tegra264_fuse_keepouts[] = {
+ { .start = 0x0019c, .end = 0x001a0 },
+ { .start = 0x00308, .end = 0x00310 },
+ { .start = 0x0032c, .end = 0x00334 },
+ { .start = 0x00350, .end = 0x00354 },
+ { .start = 0x00494, .end = 0x0049c },
+ { .start = 0x0078c, .end = 0x00790 },
+ { .start = 0x007a0, .end = 0x007a8 },
+ { .start = 0x007dc, .end = 0x007e4 },
+ { .start = 0x008d8, .end = 0x008dc },
+ { .start = 0x0096c, .end = 0x00970 },
+ { .start = 0x00974, .end = 0x0097c },
+ { .start = 0x009f4, .end = 0x009f8 },
+ { .start = 0x00a14, .end = 0x00a20 },
+ { .start = 0x00a44, .end = 0x00a4c },
+ { .start = 0x00a50, .end = 0x00a58 },
+ { .start = 0x00a5c, .end = 0x00a64 },
+ { .start = 0x00a68, .end = 0x00a70 },
+ { .start = 0x00acc, .end = 0x00ad0 },
+ { .start = 0x00b0c, .end = 0x00b18 },
+ { .start = 0x00c80, .end = 0x00c8c },
+ { .start = 0x00dac, .end = 0x00db4 },
+ { .start = 0x00db8, .end = 0x00dbc },
+ { .start = 0x00e0c, .end = 0x00e10 },
+ { .start = 0x00fd0, .end = 0x01f00 },
+ { .start = 0x01f1c, .end = 0x10064 },
+ { .start = 0x10084, .end = 0x100a0 },
+ { .start = 0x100a4, .end = 0x1019c },
+ { .start = 0x101a0, .end = 0x101cc },
+ { .start = 0x101d0, .end = 0x10308 },
+ { .start = 0x10310, .end = 0x1055c },
+ { .start = 0x1057c, .end = 0x106b0 },
+ { .start = 0x106b4, .end = 0x11008 },
+ { .start = 0x1100c, .end = 0x11018 },
+ { .start = 0x11020, .end = 0x110b8 },
+ { .start = 0x110c4, .end = 0x110c8 },
+ { .start = 0x110e8, .end = 0x110ec },
+ { .start = 0x110f0, .end = 0x11124 },
+ { .start = 0x11128, .end = 0x11168 },
+ { .start = 0x1116c, .end = 0x111b8 },
+ { .start = 0x111bc, .end = 0x111e4 },
+ { .start = 0x111e8, .end = 0x111ec },
+ { .start = 0x111f0, .end = 0x1121c },
+ { .start = 0x11250, .end = 0x1133c },
+ { .start = 0x11340, .end = 0x113c8 },
+ { .start = 0x113d0, .end = 0x11420 },
+ { .start = 0x11430, .end = 0x11440 },
+ { .start = 0x11444, .end = 0x11468 },
+ { .start = 0x1146c, .end = 0x114a8 },
+ { .start = 0x114ac, .end = 0x115cc },
+ { .start = 0x115d0, .end = 0x115dc },
+ { .start = 0x115e0, .end = 0x116b4 },
+ { .start = 0x116bc, .end = 0x11740 },
+ { .start = 0x11744, .end = 0x117b8 },
+ { .start = 0x117bc, .end = 0x11810 },
+ { .start = 0x11814, .end = 0x11850 },
+ { .start = 0x11858, .end = 0x118a0 },
+ { .start = 0x118ac, .end = 0x11b48 },
+ { .start = 0x11b50, .end = 0x11b5c },
+ { .start = 0x11b60, .end = 0x11bf8 },
+ { .start = 0x11bfc, .end = 0x11c18 },
+ { .start = 0x11c40, .end = 0x12000 },
+ { .start = 0x12004, .end = 0x12010 },
+ { .start = 0x12014, .end = 0x120fc },
+ { .start = 0x1211c, .end = 0x12120 },
+ { .start = 0x12124, .end = 0x12144 },
+ { .start = 0x1214c, .end = 0x12300 },
+ { .start = 0x12308, .end = 0x1236c },
+ { .start = 0x12370, .end = 0x126ac },
+ { .start = 0x126b0, .end = 0x12c60 },
+ { .start = 0x12c64, .end = 0x12d94 },
+ { .start = 0x12da4, .end = 0x13004 },
+ { .start = 0x13008, .end = 0x1300c },
+ { .start = 0x13010, .end = 0x13014 },
+ { .start = 0x13018, .end = 0x13020 },
+ { .start = 0x13064, .end = 0x13084 },
+ { .start = 0x130a0, .end = 0x130a4 },
+ { .start = 0x130b8, .end = 0x130c4 },
+ { .start = 0x130c8, .end = 0x130e8 },
+ { .start = 0x130ec, .end = 0x130f0 },
+ { .start = 0x130fc, .end = 0x1311c },
+ { .start = 0x13120, .end = 0x13128 },
+ { .start = 0x13144, .end = 0x1314c },
+ { .start = 0x13168, .end = 0x1316c },
+ { .start = 0x1319c, .end = 0x131a0 },
+ { .start = 0x131ac, .end = 0x131c0 },
+ { .start = 0x131cc, .end = 0x131d0 },
+ { .start = 0x131e4, .end = 0x131e8 },
+ { .start = 0x131ec, .end = 0x131f0 },
+ { .start = 0x1321c, .end = 0x13250 },
+ { .start = 0x132f0, .end = 0x13310 },
+ { .start = 0x1332c, .end = 0x13334 },
+ { .start = 0x1333c, .end = 0x13344 },
+ { .start = 0x13350, .end = 0x13354 },
+ { .start = 0x1336c, .end = 0x13370 },
+ { .start = 0x133ac, .end = 0x133b0 },
+ { .start = 0x133c8, .end = 0x133d0 },
+ { .start = 0x13420, .end = 0x13430 },
+ { .start = 0x13440, .end = 0x13444 },
+ { .start = 0x13468, .end = 0x13470 },
+ { .start = 0x13494, .end = 0x1349c },
+ { .start = 0x134a8, .end = 0x134ac },
+ { .start = 0x13544, .end = 0x1354c },
+ { .start = 0x1355c, .end = 0x1357c },
+ { .start = 0x135cc, .end = 0x135e0 },
+ { .start = 0x135e4, .end = 0x13608 },
+ { .start = 0x1360c, .end = 0x13620 },
+ { .start = 0x136ac, .end = 0x136bc },
+ { .start = 0x136c0, .end = 0x136c8 },
+ { .start = 0x13714, .end = 0x13718 },
+ { .start = 0x13724, .end = 0x13728 },
+ { .start = 0x1372c, .end = 0x13730 },
+ { .start = 0x13734, .end = 0x1373c },
+ { .start = 0x13740, .end = 0x13744 },
+ { .start = 0x13754, .end = 0x13758 },
+ { .start = 0x13760, .end = 0x13784 },
+ { .start = 0x1378c, .end = 0x13790 },
+ { .start = 0x137a0, .end = 0x137a8 },
+ { .start = 0x137b8, .end = 0x137bc },
+ { .start = 0x137dc, .end = 0x137e4 },
+ { .start = 0x137ec, .end = 0x137f0 },
+ { .start = 0x13800, .end = 0x13818 },
+ { .start = 0x13820, .end = 0x13828 },
+ { .start = 0x13830, .end = 0x13858 },
+ { .start = 0x138a0, .end = 0x138b0 },
+ { .start = 0x138d0, .end = 0x138dc },
+ { .start = 0x1396c, .end = 0x13970 },
+ { .start = 0x13974, .end = 0x1397c },
+ { .start = 0x139f4, .end = 0x139f8 },
+ { .start = 0x13a14, .end = 0x13a20 },
+ { .start = 0x13a44, .end = 0x13a4c },
+ { .start = 0x13a50, .end = 0x13a58 },
+ { .start = 0x13a5c, .end = 0x13a64 },
+ { .start = 0x13a68, .end = 0x13a70 },
+ { .start = 0x13acc, .end = 0x13ad8 },
+ { .start = 0x13b0c, .end = 0x13b18 },
+ { .start = 0x13b48, .end = 0x13b50 },
+ { .start = 0x13b5c, .end = 0x13b60 },
+ { .start = 0x13bf8, .end = 0x13bfc },
+ { .start = 0x13c18, .end = 0x13c40 },
+ { .start = 0x13c60, .end = 0x13c64 },
+ { .start = 0x13c74, .end = 0x13c8c },
+ { .start = 0x13d94, .end = 0x13da4 },
+ { .start = 0x13dac, .end = 0x13db4 },
+ { .start = 0x13db8, .end = 0x13dbc },
+ { .start = 0x13df4, .end = 0x13e04 },
+ { .start = 0x13e0c, .end = 0x13e10 },
+};
+
+static const struct tegra_fuse_info tegra264_fuse_info = {
+ .read = tegra30_fuse_read,
+ .size = 0x13eb8,
+};
+
+const struct tegra_fuse_soc tegra264_fuse_soc = {
+ .init = tegra30_fuse_init,
+ .info = &tegra264_fuse_info,
+ .keepouts = tegra264_fuse_keepouts,
+ .num_keepouts = ARRAY_SIZE(tegra264_fuse_keepouts),
+ .soc_attr_group = &tegra194_soc_attr_group,
+ .clk_suspend_on = false,
+};
+#endif
diff --git a/drivers/soc/tegra/fuse/fuse.h b/drivers/soc/tegra/fuse/fuse.h
index 9fee6ad6ad9e..0fb97508db0a 100644
--- a/drivers/soc/tegra/fuse/fuse.h
+++ b/drivers/soc/tegra/fuse/fuse.h
@@ -125,7 +125,8 @@ extern const struct tegra_fuse_soc tegra186_fuse_soc;
#if IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC) || \
IS_ENABLED(CONFIG_ARCH_TEGRA_234_SOC) || \
- IS_ENABLED(CONFIG_ARCH_TEGRA_241_SOC)
+ IS_ENABLED(CONFIG_ARCH_TEGRA_241_SOC) || \
+ IS_ENABLED(CONFIG_ARCH_TEGRA_264_SOC)
extern const struct attribute_group tegra194_soc_attr_group;
#endif
@@ -141,4 +142,8 @@ extern const struct tegra_fuse_soc tegra234_fuse_soc;
extern const struct tegra_fuse_soc tegra241_fuse_soc;
#endif
+#ifdef CONFIG_ARCH_TEGRA_264_SOC
+extern const struct tegra_fuse_soc tegra264_fuse_soc;
+#endif
+
#endif
diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c
index ea4dfe1994bd..4aece3370708 100644
--- a/drivers/soc/tegra/pmc.c
+++ b/drivers/soc/tegra/pmc.c
@@ -11,6 +11,7 @@
#define pr_fmt(fmt) "tegra-pmc: " fmt
+#include <linux/acpi.h>
#include <linux/arm-smccc.h>
#include <linux/clk.h>
#include <linux/clk-provider.h>
@@ -2980,6 +2981,18 @@ static void tegra_pmc_reset_suspend_mode(void *data)
pmc->suspend_mode = TEGRA_SUSPEND_NOT_READY;
}
+static int tegra_pmc_acpi_probe(struct platform_device *pdev, struct tegra_pmc *pmc)
+{
+ pmc->base = devm_platform_ioremap_resource(pdev, 0);
+ if (IS_ERR(pmc->base))
+ return PTR_ERR(pmc->base);
+
+ tegra_pmc_reset_sysfs_init(pmc);
+ platform_set_drvdata(pdev, pmc);
+
+ return 0;
+}
+
static int tegra_pmc_probe(struct platform_device *pdev)
{
struct tegra_pmc *pmc;
@@ -3004,6 +3017,9 @@ static int tegra_pmc_probe(struct platform_device *pdev)
mutex_init(&pmc->powergates_lock);
pmc->dev = &pdev->dev;
+ if (is_acpi_node(dev_fwnode(&pdev->dev)))
+ return tegra_pmc_acpi_probe(pdev, pmc);
+
err = tegra_pmc_parse_dt(pmc, pdev->dev.of_node);
if (err < 0)
return dev_err_probe(&pdev->dev, err, "failed to parse DT\n");
@@ -4821,6 +4837,81 @@ static const struct tegra_pmc_soc tegra264_pmc_soc = {
.max_wake_vectors = 4,
};
+static const char * const tegra410_reset_sources[] = {
+ "SYS_RESET_N", /* 0x0 */
+ "CSDC_RTC_XTAL",
+ "VREFRO_POWER_BAD",
+ "FMON_32K",
+ "FMON_OSC",
+ "POD_RTC",
+ "POD_IO",
+ "POD_PLUS_IO_SPLL",
+ "POD_PLUS_IO_VMON", /* 0x8 */
+ "POD_PLUS_SOC",
+ "VMON_PLUS_UV",
+ "VMON_PLUS_OV",
+ "FUSECRC_FAULT",
+ "OSC_FAULT",
+ "BPMP_BOOT_FAULT",
+ "SCPM_BPMP_CORE_CLK",
+ "SCPM_PSC_SE_CLK", /* 0x10 */
+ "VMON_SOC_MIN",
+ "VMON_SOC_MAX",
+ "NVJTAG_SEL_MONITOR",
+ "L0_RST_REQ_N",
+ "NV_THERM_FAULT",
+ "PSC_SW",
+ "POD_C2C_LPI_0",
+ "POD_C2C_LPI_1", /* 0x18 */
+ "BPMP_FMON",
+ "FMON_SPLL_OUT",
+ "L1_RST_REQ_N",
+ "OCP_RECOVERY",
+ "AO_WDT_POR",
+ "BPMP_WDT_POR",
+ "RAS_WDT_POR",
+ "TOP_0_WDT_POR", /* 0x20 */
+ "TOP_1_WDT_POR",
+ "TOP_2_WDT_POR",
+ "PSC_WDT_POR",
+ "OOBHUB_WDT_POR",
+ "MSS_SEQ_WDT_POR",
+ "SW_MAIN",
+ "L0L1_RST_OUT_N",
+ "HSM", /* 0x28 */
+ "CSITE_SW",
+ "AO_WDT_DBG",
+ "BPMP_WDT_DBG",
+ "RAS_WDT_DBG",
+ "TOP_0_WDT_DBG",
+ "TOP_1_WDT_DBG",
+ "TOP_2_WDT_DBG",
+ "PSC_WDT_DBG", /* 0x30 */
+ "TSC_0_WDT_DBG",
+ "TSC_1_WDT_DBG",
+ "OOBHUB_WDT_DBG",
+ "MSS_SEQ_WDT_DBG",
+ "L2_RST_REQ_N",
+ "L2_RST_OUT_N",
+ "SC7"
+};
+
+static const struct tegra_pmc_regs tegra410_pmc_regs = {
+ .rst_status = 0x8,
+ .rst_source_shift = 0x2,
+ .rst_source_mask = 0xfc,
+ .rst_level_shift = 0x0,
+ .rst_level_mask = 0x3,
+};
+
+static const struct tegra_pmc_soc tegra410_pmc_soc = {
+ .regs = &tegra410_pmc_regs,
+ .reset_sources = tegra410_reset_sources,
+ .num_reset_sources = ARRAY_SIZE(tegra410_reset_sources),
+ .reset_levels = tegra186_reset_levels,
+ .num_reset_levels = ARRAY_SIZE(tegra186_reset_levels),
+};
+
static const struct of_device_id tegra_pmc_match[] = {
{ .compatible = "nvidia,tegra264-pmc", .data = &tegra264_pmc_soc },
{ .compatible = "nvidia,tegra238-pmc", .data = &tegra238_pmc_soc },
@@ -4836,6 +4927,12 @@ static const struct of_device_id tegra_pmc_match[] = {
{ }
};
+static const struct acpi_device_id tegra_pmc_acpi_match[] = {
+ { .id = "NVDA2016", .driver_data = (kernel_ulong_t)&tegra410_pmc_soc },
+ { }
+};
+MODULE_DEVICE_TABLE(acpi, tegra_pmc_acpi_match);
+
static void tegra_pmc_sync_state(struct device *dev)
{
struct tegra_pmc *pmc = dev_get_drvdata(dev);
@@ -4887,6 +4984,7 @@ static struct platform_driver tegra_pmc_driver = {
.name = "tegra-pmc",
.suppress_bind_attrs = true,
.of_match_table = tegra_pmc_match,
+ .acpi_match_table = tegra_pmc_acpi_match,
#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_ARM)
.pm = &tegra_pmc_pm_ops,
#endif