Skip to content

Commit d619216

Browse files
committed
Merge tag 'tegra-for-7.1-arm64-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
arm64: tegra: Device tree changes for v7.1-rc1 Various fixes and new additions across a number of devices. GPIO and PCI are enabled on Tegra264 and the Jetson AGX Thor Developer Kit, allowing it to boot via network and mass storage. * tag 'tegra-for-7.1-arm64-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: arm64: tegra: Add Tegra264 GPIO controllers arm64: tegra: smaug: Enable SPI-NOR flash arm64: tegra: Add Jetson AGX Thor Developer Kit support arm64: tegra: Add PCI controllers on Tegra264 arm64: tegra: Fix RTC aliases arm64: tegra: Drop redundant clock and reset names for TSEC arm64: tegra: Fix snps,blen properties dt-bindings: pci: Document the NVIDIA Tegra264 PCIe controller Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2 parents 9c5a544 + c70e6bc commit d619216

10 files changed

Lines changed: 500 additions & 32 deletions

File tree

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pci/nvidia,tegra264-pcie.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: NVIDIA Tegra264 PCIe controller
8+
9+
maintainers:
10+
- Thierry Reding <thierry.reding@gmail.com>
11+
- Jon Hunter <jonathanh@nvidia.com>
12+
13+
properties:
14+
compatible:
15+
const: nvidia,tegra264-pcie
16+
17+
reg:
18+
description: |
19+
Of the six PCIe controllers found on Tegra264, one (C0) is used for the
20+
internal GPU and the other five (C1-C5) are routed to connectors such as
21+
PCI or M.2 slots. Therefore the UPHY registers (XPL) exist only for C1
22+
through C5, but not for C0.
23+
minItems: 4
24+
items:
25+
- description: ECAM-compatible configuration space
26+
- description: application layer registers
27+
- description: transaction layer registers
28+
- description: privileged transaction layer registers
29+
- description: data link/physical layer registers (not available on C0)
30+
31+
reg-names:
32+
minItems: 4
33+
items:
34+
- const: ecam
35+
- const: xal
36+
- const: xtl
37+
- const: xtl-pri
38+
- const: xpl
39+
40+
interrupts:
41+
minItems: 1
42+
maxItems: 4
43+
44+
dma-coherent: true
45+
46+
nvidia,bpmp:
47+
$ref: /schemas/types.yaml#/definitions/phandle-array
48+
description: |
49+
Must contain a pair of phandle (to the BPMP controller node) and
50+
controller ID. The following are the controller IDs for each controller:
51+
52+
0: C0
53+
1: C1
54+
2: C2
55+
3: C3
56+
4: C4
57+
5: C5
58+
items:
59+
- items:
60+
- description: phandle to the BPMP controller node
61+
- description: PCIe controller ID
62+
maximum: 5
63+
64+
required:
65+
- interrupt-map
66+
- interrupt-map-mask
67+
- iommu-map
68+
- msi-map
69+
- nvidia,bpmp
70+
71+
allOf:
72+
- $ref: /schemas/pci/pci-host-bridge.yaml#
73+
74+
unevaluatedProperties: false
75+
76+
examples:
77+
- |
78+
bus {
79+
#address-cells = <2>;
80+
#size-cells = <2>;
81+
82+
pci@c000000 {
83+
compatible = "nvidia,tegra264-pcie";
84+
reg = <0xd0 0xb0000000 0x0 0x10000000>,
85+
<0x00 0x0c000000 0x0 0x00004000>,
86+
<0x00 0x0c004000 0x0 0x00001000>,
87+
<0x00 0x0c005000 0x0 0x00001000>;
88+
reg-names = "ecam", "xal", "xtl", "xtl-pri";
89+
#address-cells = <3>;
90+
#size-cells = <2>;
91+
device_type = "pci";
92+
linux,pci-domain = <0x00>;
93+
#interrupt-cells = <0x1>;
94+
95+
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
96+
interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 155 4>,
97+
<0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 156 4>,
98+
<0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 157 4>,
99+
<0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 158 4>;
100+
101+
iommu-map = <0x0 &smmu2 0x10000 0x10000>;
102+
msi-map = <0x0 &its 0x210000 0x10000>;
103+
dma-coherent;
104+
105+
ranges = <0x81000000 0x00 0x84000000 0xd0 0x84000000 0x00 0x00200000>,
106+
<0x82000000 0x00 0x20000000 0x00 0x20000000 0x00 0x08000000>,
107+
<0xc3000000 0xd0 0xc0000000 0xd0 0xc0000000 0x07 0xc0000000>;
108+
bus-range = <0x0 0xff>;
109+
110+
nvidia,bpmp = <&bpmp 0>;
111+
};
112+
};
113+
114+
- |
115+
bus {
116+
#address-cells = <2>;
117+
#size-cells = <2>;
118+
119+
pci@8400000 {
120+
compatible = "nvidia,tegra264-pcie";
121+
reg = <0xa8 0xb0000000 0x0 0x10000000>,
122+
<0x00 0x08400000 0x0 0x00004000>,
123+
<0x00 0x08404000 0x0 0x00001000>,
124+
<0x00 0x08405000 0x0 0x00001000>,
125+
<0x00 0x08410000 0x0 0x00010000>;
126+
reg-names = "ecam", "xal", "xtl", "xtl-pri", "xpl";
127+
#address-cells = <3>;
128+
#size-cells = <2>;
129+
device_type = "pci";
130+
linux,pci-domain = <0x01>;
131+
#interrupt-cells = <1>;
132+
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
133+
interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 908 4>,
134+
<0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 909 4>,
135+
<0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 910 4>,
136+
<0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 911 4>;
137+
138+
iommu-map = <0x0 &smmu1 0x10000 0x10000>;
139+
msi-map = <0x0 &its 0x110000 0x10000>;
140+
dma-coherent;
141+
142+
ranges = <0x81000000 0x00 0x84000000 0xa8 0x84000000 0x00 0x00200000>,
143+
<0x82000000 0x00 0x28000000 0x00 0x28000000 0x00 0x08000000>,
144+
<0xc3000000 0xa8 0xc0000000 0xa8 0xc0000000 0x07 0xc0000000>;
145+
bus-range = <0x00 0xff>;
146+
147+
nvidia,bpmp = <&bpmp 1>;
148+
};
149+
};

arch/arm64/boot/dts/nvidia/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ DTC_FLAGS_tegra234-p3740-0002+p3701-0008 := -@
1414
DTC_FLAGS_tegra234-p3768-0000+p3767-0000 := -@
1515
DTC_FLAGS_tegra234-p3768-0000+p3767-0005 := -@
1616
DTC_FLAGS_tegra264-p3971-0089+p3834-0008 := -@
17+
DTC_FLAGS_tegra264-p4071-0000+p3834-0008 := -@
1718

1819
dtb-$(CONFIG_ARCH_TEGRA_132_SOC) += tegra132-norrin.dtb
1920
dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-0000.dtb
@@ -35,3 +36,4 @@ dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3740-0002+p3701-0008.dtb
3536
dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3768-0000+p3767-0000.dtb
3637
dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3768-0000+p3767-0005.dtb
3738
dtb-$(CONFIG_ARCH_TEGRA_264_SOC) += tegra264-p3971-0089+p3834-0008.dtb
39+
dtb-$(CONFIG_ARCH_TEGRA_264_SOC) += tegra264-p4071-0000+p3834-0008.dtb

arch/arm64/boot/dts/nvidia/tegra210-smaug.dts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1892,6 +1892,18 @@
18921892
};
18931893
};
18941894

1895+
spi@70410000 {
1896+
status = "okay";
1897+
1898+
flash@0 {
1899+
compatible = "jedec,spi-nor";
1900+
reg = <0>;
1901+
spi-max-frequency = <104000000>;
1902+
spi-tx-bus-width = <2>;
1903+
spi-rx-bus-width = <2>;
1904+
};
1905+
};
1906+
18951907
clk32k_in: clock-32k {
18961908
compatible = "fixed-clock";
18971909
clock-frequency = <32768>;

arch/arm64/boot/dts/nvidia/tegra210.dtsi

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,9 +309,7 @@
309309
reg = <0x0 0x54500000 0x0 0x00040000>;
310310
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
311311
clocks = <&tegra_car TEGRA210_CLK_TSECB>;
312-
clock-names = "tsec";
313312
resets = <&tegra_car 206>;
314-
reset-names = "tsec";
315313
status = "disabled";
316314
};
317315

arch/arm64/boot/dts/nvidia/tegra234-p3701.dtsi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
mmc0 = "/bus@0/mmc@3460000";
1010
mmc1 = "/bus@0/mmc@3400000";
1111
rtc0 = "/bpmp/i2c/pmic@3c";
12+
rtc1 = "/bus@0/rtc@c2a0000";
1213
};
1314

1415
bus@0 {

arch/arm64/boot/dts/nvidia/tegra234-p3767.dtsi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
aliases {
99
mmc0 = "/bus@0/mmc@3400000";
1010
rtc0 = "/bpmp/i2c/pmic@3c";
11+
rtc1 = "/bus@0/rtc@c2a0000";
1112
};
1213

1314
bus@0 {

arch/arm64/boot/dts/nvidia/tegra234.dtsi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3621,7 +3621,7 @@
36213621
snps,axi-config = <&mgbe0_axi_setup>;
36223622

36233623
mgbe0_axi_setup: stmmac-axi-config {
3624-
snps,blen = <256 128 64 32>;
3624+
snps,blen = <256 128 64 32 0 0 0>;
36253625
snps,rd_osr_lmt = <63>;
36263626
snps,wr_osr_lmt = <63>;
36273627
};
@@ -3663,7 +3663,7 @@
36633663
snps,axi-config = <&mgbe1_axi_setup>;
36643664

36653665
mgbe1_axi_setup: stmmac-axi-config {
3666-
snps,blen = <256 128 64 32>;
3666+
snps,blen = <256 128 64 32 0 0 0>;
36673667
snps,rd_osr_lmt = <63>;
36683668
snps,wr_osr_lmt = <63>;
36693669
};
@@ -3705,7 +3705,7 @@
37053705
snps,axi-config = <&mgbe2_axi_setup>;
37063706

37073707
mgbe2_axi_setup: stmmac-axi-config {
3708-
snps,blen = <256 128 64 32>;
3708+
snps,blen = <256 128 64 32 0 0 0>;
37093709
snps,rd_osr_lmt = <63>;
37103710
snps,wr_osr_lmt = <63>;
37113711
};
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
/dts-v1/;
3+
4+
// module files must be included first
5+
#include "tegra264-p3834-0008.dtsi"
6+
#include "tegra264-p4071-0000+p3834.dtsi"
7+
8+
/ {
9+
model = "NVIDIA Jetson AGX Thor Developer Kit";
10+
compatible = "nvidia,p4071-0000+p3834-0008", "nvidia,p3834-0008", "nvidia,tegra264";
11+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
3+
/ {
4+
aliases {
5+
serial0 = &{/bus@0/serial@c4e0000};
6+
serial1 = &{/bus@0/serial@c5a0000};
7+
};
8+
9+
chosen {
10+
stdout-path = "serial0:115200n8";
11+
};
12+
};

0 commit comments

Comments
 (0)