Skip to content

Commit 75a2075

Browse files
author
Herton R. Krzesinski
committed
Merge: arm64: Update drivers/soc/tegra to v6.0
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/1484 Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2135064 Update drivers/soc/tegra to v6.0 level. This includes patches from drivers/memory/tegra, drivers/firmware/tegra, and drivers/misc/sram.{c,h} needed by the tegra SoCs. V4: Added a few new fixes and config change to allow kernel to boot on Nvidia Orin (from NVME and without builtin nic support) V3: Dropped upstream commit 3da9b0f "pwm: tegra: Add runtime PM and OPP support" which was merged as part of MR !1708 V2: Dropped a number of patches found in other MRs and added dependency on them. Also added a few more tegra soc related patches from upstream. Signed-off-by: Mark Salter <[email protected]> Approved-by: John W. Linville <[email protected]> Approved-by: Steve Best <[email protected]> Approved-by: Tony Camuso <[email protected]> Approved-by: David Arcari <[email protected]> Approved-by: Prarit Bhargava <[email protected]> Signed-off-by: Herton R. Krzesinski <[email protected]>
2 parents fa8007f + d752ff4 commit 75a2075

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+8890
-893
lines changed

Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt

Lines changed: 0 additions & 133 deletions
This file was deleted.
Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/arm/tegra/nvidia,tegra186-pmc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: NVIDIA Tegra Power Management Controller (PMC)
8+
9+
maintainers:
10+
- Thierry Reding <[email protected]>
11+
- Jon Hunter <[email protected]>
12+
13+
properties:
14+
compatible:
15+
enum:
16+
- nvidia,tegra186-pmc
17+
- nvidia,tegra194-pmc
18+
- nvidia,tegra234-pmc
19+
20+
reg:
21+
minItems: 4
22+
maxItems: 5
23+
24+
reg-names:
25+
minItems: 4
26+
items:
27+
- const: pmc
28+
- const: wake
29+
- const: aotag
30+
- const: scratch
31+
- const: misc
32+
33+
interrupt-controller: true
34+
35+
"#interrupt-cells":
36+
description: Specifies the number of cells needed to encode an
37+
interrupt source. The value must be 2.
38+
const: 2
39+
40+
nvidia,invert-interrupt:
41+
description: If present, inverts the PMU interrupt signal.
42+
$ref: /schemas/types.yaml#/definitions/flag
43+
44+
if:
45+
properties:
46+
compatible:
47+
contains:
48+
const: nvidia,tegra186-pmc
49+
then:
50+
properties:
51+
reg:
52+
maxItems: 4
53+
54+
reg-names:
55+
maxItems: 4
56+
else:
57+
properties:
58+
reg:
59+
minItems: 5
60+
61+
reg-names:
62+
minItems: 5
63+
64+
patternProperties:
65+
"^[a-z0-9]+-[a-z0-9]+$":
66+
if:
67+
type: object
68+
then:
69+
description: |
70+
These are pad configuration nodes. On Tegra SoCs a pad is a set of
71+
pins which are configured as a group. The pin grouping is a fixed
72+
attribute of the hardware. The PMC can be used to set pad power
73+
state and signaling voltage. A pad can be either in active or
74+
power down mode. The support for power state and signaling voltage
75+
configuration varies depending on the pad in question. 3.3 V and
76+
1.8 V signaling voltages are supported on pins where software
77+
controllable signaling voltage switching is available.
78+
79+
Pad configurations are described with pin configuration nodes
80+
which are placed under the pmc node and they are referred to by
81+
the pinctrl client properties. For more information see
82+
83+
Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
84+
85+
The following pads are present on Tegra186:
86+
87+
csia, csib, dsi, mipi-bias, pex-clk-bias, pex-clk3, pex-clk2,
88+
pex-clk1, usb0, usb1, usb2, usb-bias, uart, audio, hsic, dbg,
89+
hdmi-dp0, hdmi-dp1, pex-cntrl, sdmmc2-hv, sdmmc4, cam, dsib,
90+
dsic, dsid, csic, csid, csie, dsif, spi, ufs, dmic-hv, edp,
91+
sdmmc1-hv, sdmmc3-hv, conn, audio-hv, ao-hv
92+
93+
The following pads are present on Tegra194:
94+
95+
csia, csib, mipi-bias, pex-clk-bias, pex-clk3, pex-clk2,
96+
pex-clk1, eqos, pex-clk-2-bias, pex-clk-2, dap3, dap5, uart,
97+
pwr-ctl, soc-gpio53, audio, gp-pwm2, gp-pwm3, soc-gpio12,
98+
soc-gpio13, soc-gpio10, uart4, uart5, dbg, hdmi-dp3, hdmi-dp2,
99+
hdmi-dp0, hdmi-dp1, pex-cntrl, pex-ctl2, pex-l0-rst,
100+
pex-l1-rst, sdmmc4, pex-l5-rst, cam, csic, csid, csie, csif,
101+
spi, ufs, csig, csih, edp, sdmmc1-hv, sdmmc3-hv, conn,
102+
audio-hv, ao-hv
103+
104+
properties:
105+
pins:
106+
$ref: /schemas/types.yaml#/definitions/string
107+
description: Must contain the name of the pad(s) to be
108+
configured.
109+
110+
low-power-enable:
111+
description: Configure the pad into power down mode.
112+
$ref: /schemas/types.yaml#/definitions/flag
113+
114+
low-power-disable:
115+
description: Configure the pad into active mode.
116+
$ref: /schemas/types.yaml#/definitions/flag
117+
118+
power-source:
119+
$ref: /schemas/types.yaml#/definitions/uint32
120+
description: |
121+
Must contain either TEGRA_IO_PAD_VOLTAGE_1V8 or
122+
TEGRA_IO_PAD_VOLTAGE_3V3 to select between signalling
123+
voltages.
124+
125+
The values are defined in
126+
127+
include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h
128+
129+
The power state can be configured on all of the above pads
130+
except for ao-hv. Following pads have software configurable
131+
signaling voltages: sdmmc2-hv, dmic-hv, sdmmc1-hv, sdmmc3-hv,
132+
audio-hv, ao-hv.
133+
134+
phandle: true
135+
136+
required:
137+
- pins
138+
139+
additionalProperties: false
140+
141+
required:
142+
- compatible
143+
- reg
144+
- reg-names
145+
146+
additionalProperties: false
147+
148+
dependencies:
149+
interrupt-controller: ['#interrupt-cells']
150+
"#interrupt-cells":
151+
required:
152+
- interrupt-controller
153+
154+
examples:
155+
- |
156+
#include <dt-bindings/clock/tegra186-clock.h>
157+
#include <dt-bindings/interrupt-controller/arm-gic.h>
158+
#include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h>
159+
#include <dt-bindings/memory/tegra186-mc.h>
160+
#include <dt-bindings/reset/tegra186-reset.h>
161+
162+
pmc@c3600000 {
163+
compatible = "nvidia,tegra186-pmc";
164+
reg = <0x0c360000 0x10000>,
165+
<0x0c370000 0x10000>,
166+
<0x0c380000 0x10000>,
167+
<0x0c390000 0x10000>;
168+
reg-names = "pmc", "wake", "aotag", "scratch";
169+
nvidia,invert-interrupt;
170+
171+
sdmmc1_3v3: sdmmc1-3v3 {
172+
pins = "sdmmc1-hv";
173+
power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
174+
};
175+
176+
sdmmc1_1v8: sdmmc1-1v8 {
177+
pins = "sdmmc1-hv";
178+
power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
179+
};
180+
};
181+
182+
sdmmc1: mmc@3400000 {
183+
compatible = "nvidia,tegra186-sdhci";
184+
reg = <0x03400000 0x10000>;
185+
interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
186+
clocks = <&bpmp TEGRA186_CLK_SDMMC1>,
187+
<&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
188+
clock-names = "sdhci", "tmclk";
189+
resets = <&bpmp TEGRA186_RESET_SDMMC1>;
190+
reset-names = "sdhci";
191+
interconnects = <&mc TEGRA186_MEMORY_CLIENT_SDMMCRA &emc>,
192+
<&mc TEGRA186_MEMORY_CLIENT_SDMMCWA &emc>;
193+
interconnect-names = "dma-mem", "write";
194+
iommus = <&smmu TEGRA186_SID_SDMMC1>;
195+
pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
196+
pinctrl-0 = <&sdmmc1_3v3>;
197+
pinctrl-1 = <&sdmmc1_1v8>;
198+
};

Documentation/devicetree/bindings/iommu/arm,smmu.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,9 @@ properties:
5959
for improved performance.
6060
items:
6161
- enum:
62-
- nvidia,tegra194-smmu
6362
- nvidia,tegra186-smmu
63+
- nvidia,tegra194-smmu
64+
- nvidia,tegra234-smmu
6465
- const: nvidia,smmu-500
6566
- items:
6667
- const: arm,mmu-500
@@ -169,8 +170,9 @@ allOf:
169170
compatible:
170171
contains:
171172
enum:
172-
- nvidia,tegra194-smmu
173173
- nvidia,tegra186-smmu
174+
- nvidia,tegra194-smmu
175+
- nvidia,tegra234-smmu
174176
then:
175177
properties:
176178
reg:

0 commit comments

Comments
 (0)