Commit Graph

304 Commits

Author SHA1 Message Date
Vidya Sagar
84eaaf7500 arm64: tegra: Add support for PCIe endpoint mode in P2972-0000 platform
Add endpoint mode support for PCIe C5 controller in P2972-0000 platform
with information about supplies, PHY, PERST GPIO and GPIO that controls
PCIe reference clock coming from the host system.

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:31 +01:00
Vidya Sagar
0c988b731e arm64: tegra: Add PCIe endpoint controllers nodes for Tegra194
Add endpoint mode controllers nodes for the dual mode PCIe controllers
present in Tegra194 SoC.

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:31 +01:00
Thierry Reding
bcdf81cb26 arm64: tegra: Add ethernet alias on Jetson TX1
Adding this alias for the Ethernet interface on Jetson TX1 allows the
bootloader to pass the MAC address to the Linux kernel.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:31 +01:00
Jon Hunter
db705117d1 arm64: tegra: Populate LP8557 backlight regulator
The following warning is observed on Jetson TX1 platform because the
supply regulator is not specified for the backlight.

 WARNING KERN lp855x 0-002c: 0-002c supply power not found, using dummy regulator

The backlight supply is provided by the 3.3V SYS rail and so add this
as the supply for the backlight.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:30 +01:00
Jon Hunter
5f4ade92ed arm64: tegra: Fix Tegra186 SOR supply
The following warning is observed on the Jetson TX2 platform ...

 WARNING KERN tegra-sor 15540000.sor: 15540000.sor supply \
              vdd-hdmi-dp-pll not found, using dummy regulator

The problem is caused because the regulator for the SOR device is
missing the '-supply' suffix in Device-Tree. Therefore, add the
'-supply' suffix to fix this warning.

Fixes: 3fdfaf8718 ("arm64: tegra: Enable DP support on Jetson TX2")
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:30 +01:00
Jon Hunter
ec5fd197a9 arm64: tegra: Add EEPROM supplies
The following warning is observed on Jetson TX1, Jetson Nano and Jetson
TX2 platforms because the supply regulators are not specified for the
EEPROMs.

 WARNING KERN at24 0-0050: 0-0050 supply vcc not found, using dummy regulator
 WARNING KERN at24 0-0057: 0-0057 supply vcc not found, using dummy regulator

For both of these platforms the EEPROM is powered by the main 1.8V
supply rail and so populate the supply for these devices to fix these
warnings.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:30 +01:00
Jon Hunter
9995f924b5 arm64: tegra: Enable I2C controller for EEPROM
Commit a5b6b67364 ("arm64: tegra: Add ID EEPROM for Jetson TX1
module") populated the EEPROM on the Jetson TX1 module, but did not
enable the corresponding I2C controller. Enable the I2C controller so
that this EEPROM can be accessed.

Fixes: a5b6b67364 ("arm64: tegra: Add ID EEPROM for Jetson TX1 module")
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:30 +01:00
Sowjanya Komatineni
d90bd9b76c arm64: tegra: smaug: Change clk_out_2 provider to PMC
clk_out_2 is a clock provided by the PMC, rather than the clock and
reset controller, as previously erroneously defined.

This patch changes clk_out_2 provider to PMC and uses corresponding
PMC clock ID for clk_out_2.

Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:29 +01:00
Sowjanya Komatineni
359ae651f4 arm64: tegra: Add clock-cells property to Tegra PMC node
Tegra132 and Tegra210 PMC blocks have clk_out_1, clk_out_2, clk_out_3,
and a blink clock as a part of the PMC.

These clocks were erroneously provided by the clock and reset controller
and are now provided by the PMC instead because that's where the primary
controls are.

Clock IDs for these clocks are defined in the PMC dt-bindings.

This patch updates the device tree to include the PMC dt-bindings header
and adds the #clock-cells property with one clock specifier to the PMC
node.

Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:29 +01:00
Nagarjuna Kristam
9f2ff73856 arm64: tegra: Enable XUDC node on Jetson Nano
Enable XUSB device mode driver for USB 2-0 slot on Jetson Nano.

Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:29 +01:00
Nagarjuna Kristam
88d1049e16 arm64: tegra: Update OTG port entries for Jetson Nano
Add usb-role-switch entry to peripheral USB port and add corresponding
connector details.

Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:29 +01:00
Nagarjuna Kristam
0edc020229 arm64: tegra: Enable XUDC node on Jetson TX2
Enable XUSB device mode driver for USB 2-0 slot on Jetson TX2.

Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:28 +01:00
Nagarjuna Kristam
584f800c47 arm64: tegra: Add XUDC node for Tegra186
Tegra186 has one XUSB device mode controller, which can be operated in
HS and SS modes. Add DT entry for XUSB device mode controller.

Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:28 +01:00
Nagarjuna Kristam
6b3d859301 arm64: tegra: Enable XUDC on Jetson TX1
Enable XUSB device mode driver for USB 2-0 slot on Jetson TX1.

Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:27 +01:00
Nagarjuna Kristam
e74db5a5b4 arm64: tegra: Add XUDC node for Tegra210
Tegra210 has one XUSB device mode controller, which can be operated in
HS and SS modes. Add DT entry for XUSB device mode controller.

Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:27 +01:00
Nagarjuna Kristam
6895c83fda arm64: tegra: Update OTG port entries for Jetson TX2
Add usb-role-switch entry to OTG USB port and add corresponding
connector details.

Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:27 +01:00
Nagarjuna Kristam
dbf91ff001 arm64: tegra: Update OTG port entries for Jetson TX1
Populate OTG vbus regulator and add usb-role-switch entry to USB 2-0
port and corresponding connector details.

Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:27 +01:00
JC Kuo
92f37c0a0e arm64: tegra: Enable XUSB host in P2972-0000 board
This commit enables XUSB host and pad controller in Tegra194
P2972-0000 board.

Signed-off-by: JC Kuo <jckuo@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:26 +01:00
JC Kuo
fab7a0391b arm64: tegra: Add XUSB and pad controller on Tegra194
Adds the XUSB pad and XUSB controllers on Tegra194.

Signed-off-by: JC Kuo <jckuo@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:26 +01:00
Jon Hunter
f9f711efd4 arm64: tegra: Fix Tegra194 PCIe compatible string
If the kernel configuration option CONFIG_PCIE_DW_PLAT_HOST is enabled
then this can cause the kernel to incorrectly probe the generic
designware PCIe platform driver instead of the Tegra194 designware PCIe
driver. This causes a boot failure on Tegra194 because the necessary
configuration to access the hardware is not performed.

The order in which the compatible strings are populated in Device-Tree
is not relevant in this case, because the kernel will attempt to probe
the device as soon as a driver is loaded and if the generic designware
PCIe driver is loaded first, then this driver will be probed first.
Therefore, to fix this problem, remove the "snps,dw-pcie" string from
the compatible string as we never want this driver to be probe on
Tegra194.

Fixes: 2602c32f15 ("arm64: tegra: Add P2U and PCIe controller nodes to Tegra194 DT")
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-03-12 12:14:25 +01:00
Peter Robinson
f41f34ddce arm64: tegra: Allow bootloader to configure Ethernet MAC on Jetson TX2
Add an ethernet alias so that a stable MAC address is added to the
device tree for the wired ethernet interface.

Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-01-10 17:04:29 +01:00
Thierry Reding
cd8f843c6c arm64: tegra: Redefine force recovery key on Jetson AGX Xavier
The current BTN_1 code associated with the force-recovery key is not a
valid code for EV_KEY type input devices. This causes errors in the
libinput debug-events command.

There is no system level action that maps to the force-recovery key on
Jetson AGX Xavier, so assign it the KEY_SLEEP action, which at least
makes it do something marginally useful.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-01-10 16:56:47 +01:00
Tamás Szűcs
1f32a31fe2 arm64: tegra: Enable SDIO on Jetson Nano M.2 Key E
Enable SDMMC3 and set it up for SDIO devices.

Signed-off-by: Tamás Szűcs <tszucs@protonmail.ch>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-01-10 16:46:47 +01:00
Tamás Szűcs
6f78a9460f arm64: tegra: Enable PWM fan on Jetson Nano
Enable PWM fan and extend CPU thermal zones for monitoring and fan control.
This will trigger the PWM fan on J15 and cool down the system if necessary.

Signed-off-by: Tamás Szűcs <tszucs@protonmail.ch>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-01-10 16:41:28 +01:00
JC Kuo
09903c5e07 arm64: tegra: Add fuse/apbmisc node on Tegra194
This commit adds Tegra194 fuse and apbmisc device nodes.

Signed-off-by: JC Kuo <jckuo@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-01-09 19:27:48 +01:00
Thierry Reding
06c6b06f89 arm64: tegra: Make XUSB node consistent with the rest
The ordering of properties in the XUSB node is inconsistent with the
ordering of the properties in other nodes. Resort them to make the node
more consistent. Also get rid of some unnecessary whitespace.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-01-09 19:15:50 +01:00
Thierry Reding
be9b887f3b arm64: tegra: Add the memory subsystem on Tegra194
The memory subsystem on Tegra194 encompasses both the memory and
external memory controllers. The EMC is represented as a subnode of the
MC and a ranges property is used to describe the register ranges.

A dma-ranges property is also added to describe that all memory clients
can address up to 39 bits using the memory controller client interface
(MCCIF), unless otherwise limited by the DMA engines of the hardware. A
memory client can technically use 40 bits of addresses, but the memory
controller on Tegra194 uses bit 39 to determine the XBAR format used to
access memory. Use of this bit needs to be explicitly controlled by the
operating system drivers for devices that can use this on-the-fly format
conversion. Using the dma-ranges property prevents the operating system
from using the bit implicitly, for example in I/O virtual address
mappings.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-01-09 19:15:09 +01:00
Thierry Reding
3f6eaef9ab arm64: tegra: Add external memory controller on Tegra186
Add the external memory controller as a child device of the memory
controller on Tegra186. The memory controller really represents the
memory subsystem that encompasses both the memory and external memory
controllers. The external memory controller uses the BPMP to obtain the
list of supported EMC frequencies and set the EMC frequency.

Also set up the dma-ranges property to describe that all memory clients
can address up to 40 bits using the memory controller client interface
(MCCIF), unless otherwise limited by the DMA engines of the hardware.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-01-09 19:14:51 +01:00
Thierry Reding
b72d52a1b6 arm64: tegra: Add interrupt for memory controller on Tegra186
The memory controller can be interrupted by certain conditions. Add the
interrupt to the device tree node to allow drivers to trap these
conditions.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-01-09 19:14:14 +01:00
Thierry Reding
47cd385e08 arm64: tegra: Rename EMC on Tegra132
Rename the EMC node to external-memory-controller according to device
tree best practices.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-01-09 19:07:21 +01:00
Thierry Reding
0bab86abe5 arm64: tegra: Let the EMC hardware use the EMC clock
The EMC hardware block needs access to the EMC clock in order to scale
the external memory frequency. Add the clocks property so that drivers
for the EMC can acquire a reference to the EMC clock.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-01-09 19:06:39 +01:00
Sowjanya Komatineni
47b4e12915 arm64: tegra: Add Jetson Nano SC7 timings
Add platform specific SC7 timing configuration to the Jetson Nano device
tree.

Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:09 +01:00
Sowjanya Komatineni
106f7a06fb arm64: tegra: Add Jetson TX1 SC7 timings
Add platform specific SC7 timing configuration to the Jetson TX1 device
tree.

Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:09 +01:00
Sowjanya Komatineni
d13c13f4cd arm64: tegra: Enable wake from deep sleep on RTC alarm
This patch updates device tree for RTC and PMC to allow system wake
from deep sleep on RTC alarm.

Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:08 +01:00
Thierry Reding
264064ab0b arm64: tegra: Add PMU on Tegra210
The NVIDIA Tegra210 contains an ARM PMU v3 that can be used to gather
statistics about the processors and their memory system. Add a device
tree node so that this functionality can be exposed.

Reported-by: William Cohen <giantklein@gmail.com>
Tested-by: William Cohen <giantklein@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:08 +01:00
Thierry Reding
24fc33633e arm64: tegra: Add blank lines for better readability
Separate the individual thermal zones by a blank line for improved
readability.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:08 +01:00
Thierry Reding
614d063f89 arm64: tegra: Enable DisplayPort on Jetson AGX Xavier
Enable both USB-C/DP ports on Jetson AGX Xavier and wire up the power
supplies for the SORs that drive these outputs.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:08 +01:00
Thierry Reding
c90b8f15df arm64: tegra: p2888: Rename regulators for consistency
Some of the PMIC regulators had names that don't match the schematics.
Rename them so that it is easier to cross-reference with the hardware
documentation.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:08 +01:00
Thierry Reding
3fdfaf8718 arm64: tegra: Enable DP support on Jetson TX2
If equipped with an E3320 display module, Jetson TX2 can support
DisplayPort.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:07 +01:00
Thierry Reding
d46d1eb30c arm64: tegra: Fix compatible for SOR1
It turns out that both SORs on Tegra186 are the same, so there's no need
to distinguish between them in the compatible string.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:07 +01:00
Thierry Reding
35cbf655eb arm64: tegra: Enable DP support on Jetson Nano
Add the AVDD_IO_EDP_1V05 and enable the SOR and DPAUX hardware blocks
that are used to drive DisplayPort on Jetson Nano.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:07 +01:00
Thierry Reding
ed93a666bb arm64: tegra: Add SOR0_OUT clock on Tegra210
This clock was not previously used because it is a fixed clock. However,
adding it here allows operating systems to deal with SOR0 the same way
as SOR1.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:07 +01:00
Vidya Sagar
b7450f161f arm64: tegra: Assume no CLKREQ presence by default
Although Tegra194 has support for CLKREQ sideband signal and P2972
has routing of the same till the slot, it is the case most of the time
that the connected device doesn't have CLKREQ support. Hence, it makes
sense to assume that there is no CLKREQ support by default and it can
be enabled on need basis when a card with CLKREQ support is connected.

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:07 +01:00
Thierry Reding
29ef1f4dac arm64: tegra: Enable SMMU for VIC on Tegra186
Enable address translation for VIC via the SMMU on Tegra186.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:07 +01:00
Nagarjuna Kristam
488a04d4bb arm64: tegra: Enable XUSB host controller on Jetson TX2
This enables the use of the USB ports found on the Jetson TX2 for input
or external storage, for example.

Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:06 +01:00
Nagarjuna Kristam
05705c7215 arm64: tegra: Enable SMMU for XUSB host on Tegra186
Enabling the SMMU for XUSB host allows buffers to be mapped through the
ARM SMMU, which helps protecting the system from rogue memory accesses
by the XUSB host.

Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:06 +01:00
Nagarjuna Kristam
ca2b8ee457 arm64: tegra: Enable XUSB pad controller on Jetson TX2
The XUSB pad controller is a prerequisite for enabling XUSB support.

Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:06 +01:00
Thierry Reding
2b6b3940e8 arm64: tegra: Add ethernet alias on Jetson AGX Xavier
The Tegra194 EQOS controller is used as primary Ethernet interface.
Set the ethernet0 alias to reflect that.

Generic bootloader code can use this to find the primary Ethernet device
and set the MAC address, for example.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:06 +01:00
Thierry Reding
19dc772a94 arm64: tegra: Fix compatible string for EQOS on Tegra194
The EQOS Ethernet controller found on Tegra194 is compatible with its
predecessor or Tegra186. However, it is an established practice to add
a compatible string for the most recent generation of the SoC as well,
just in case some incompatibilities or bugs are later discovered.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:06 +01:00
Thierry Reding
44ff822c58 arm64: tegra: Hook up edp interrupt on Tegra210 SOCTHERM
For some reason this was never hooked up. Do it now so that over-current
interrupts can be logged.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 20:30:06 +01:00