Commit Graph

32 Commits

Author SHA1 Message Date
Vidya Sagar 37414bd6ec arm64: tegra: Fix Tegra194 PCIe EP compatible string
[ Upstream commit bf2942a8b7c38e8cc2d5157b4f0323d7f4e5ec71 ]

The initialization sequence performed by the generic platform driver
pcie-designware-plat.c for a DWC based implementation doesn't work for
Tegra194. Tegra194 has a different initialization sequence requirement
which can only be satisfied by the Tegra194 specific platform driver
pcie-tegra194.c. So, remove the generic compatible string "snps,dw-pcie-ep"
from Tegra194's endpoint controller nodes.

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-09-22 12:26:30 +02:00
Vidya Sagar 6b93d6c5a8 arm64: tegra: Fix DT binding for IO High Voltage entry
[ Upstream commit 6b26c1a034885923822f6c4d94f8644d32bc2481 ]

Fix the device-tree entry that represents I/O High Voltage property
by replacing 'nvidia,io-high-voltage' with 'nvidia,io-hv' as the former
entry is deprecated.

Fixes: dbb72e2c30 ("arm64: tegra: Add configuration for PCIe C5 sideband signals")
Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-12-30 11:51:12 +01:00
Dipen Patel abae897f28 arm64: tegra: Wrong AON HSP reg property size
[ Upstream commit 1741e18737948c140ccc4cc643e8126d95ee6e79 ]

The AON HSP node's "reg" property size 0xa0000 will overlap with other
resources. This patch fixes that wrong value with correct size 0x90000.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Dipen Patel <dipenp@nvidia.com>
Fixes: a38570c22e ("arm64: tegra: Add nodes for TCU on Tegra194")
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-12-02 08:49:53 +01:00
Sowjanya Komatineni ef8b5f3337 arm64: tegra: Add missing timeout clock to Tegra194 SDMMC nodes
commit c956c0cd4f6f4aac4f095621b1c4e1c5ee1df877 upstream.

commit 5425fb15d8 ("arm64: tegra: Add Tegra194 chip device tree")

Tegra194 uses separate SDMMC_LEGACY_TM clock for data timeout and
this clock is not enabled currently which is not recommended.

Tegra194 SDMMC advertises 12Mhz as timeout clock frequency in host
capability register.

So, this clock should be kept enabled by SDMMC driver.

Fixes: 5425fb15d8 ("arm64: tegra: Add Tegra194 chip device tree")
Cc: stable <stable@vger.kernel.org> # 5.4
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Link: https://lore.kernel.org/r/1598548861-32373-7-git-send-email-skomatineni@nvidia.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-09-05 11:22:50 +02:00
Vidya Sagar a7ba81f26d arm64: tegra: Fix flag for 64-bit resources in 'ranges' property
[ Upstream commit 3482a7afb261e2de9269a7f9ad0f4a3a82a83a53 ]

Fix flag in PCIe controllers device-tree nodes 'ranges' property to correctly
represent 64-bit resources.

Fixes: 2602c32f15 ("arm64: tegra: Add P2U and PCIe controller nodes to Tegra194 DT")
Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-06-24 17:50:31 +02:00
Jon Hunter d7b59cd020 arm64: tegra: Fix Tegra194 PCIe compatible string
[ Upstream commit f9f711efd441ad0d22874be49986d92121862335 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-04-23 10:36:30 +02:00
Vidya Sagar 5615f66bfd arm64: tegra: Add PCIe endpoint controllers nodes for Tegra194
[ Upstream commit 0c988b731e6430f0081991fdb4f63f7fc837df9a ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-04-23 10:36:30 +02:00
Vidya Sagar dbb72e2c30 arm64: tegra: Add configuration for PCIe C5 sideband signals
Add support to configure PCIe C5's sideband signals PERST# and CLKREQ#
as output and bi-directional signals respectively which unlike other
PCIe controllers sideband signals are not configured by default.

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
2019-09-20 14:24:34 -05:00
Vidya Sagar 2602c32f15 arm64: tegra: Add P2U and PCIe controller nodes to Tegra194 DT
Add P2U (PIPE to UPHY) and PCIe controller nodes to device tree.
The Tegra194 SoC contains six PCIe controllers and twenty P2U instances
grouped into two different PHY bricks namely High-Speed IO (HSIO-12 P2Us)
and NVIDIA High Speed (NVHS-8 P2Us) respectively.

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-21 16:04:53 +02:00
Sameer Pujar 5d2249dda0 arm64: tegra: Add ACONNECT, ADMA and AGIC nodes
Add device tree nodes for the ACONNECT, ADMA and AGIC devices on
Tegra186 and Tegra194.

Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Acked-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-21 16:04:36 +02:00
Thierry Reding b30be6734e arm64: tegra: Mark architected timer as always on
The architected timer on Tegra186 and Tegra194 is in an always on power
partition and its reference clock will always run, so mark the timer as
always on.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-14 17:56:53 +02:00
Arnd Bergmann 1228c051ba arm64: tegra: Device tree changes for v5.1-rc1
This contains a couple of fixes to existing device trees, enables CPU
 frequency scaling on various Tegra210 boards, enables the TCU as debug
 serial port on Jetson Xavier, adds various improvements for SDMMC on
 Tegra210, Tegra186 and Tegra194 boards and finally adds initial support
 for the NVIDIA Shield TV.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAlxdmX0THHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zob8+D/4oX6rlHS70H1CVhEF/2JejVBki5iX2
 YGsjtywFGVU072OjQrIXARq/7LlH/4ykF8m8rNCTCzL1SewxpAhzTuyHSAitREjX
 FMICa9bfv26J8n4n9SVOvuWmHc88rK3xaXgiKXIO/2viZsVDC7jeEfl/ztbSUWC7
 KHx3moU3mzM0AqIX0z+tYg93uxYpx/sUgygLsJIneaj7b1g5sMZCAdLWQnvXmZKf
 q5WTwbfUmhg2OrhnO6WXr6swmo7cXKO3zJcm/+b2adf01axMgCjA1RVFgO9yonqn
 s2402oVRv/y7jsM7HGptlS6NqcurMnhlKCEUsVucXugWwbbAj/oFirYiCWW6fkq/
 fgpOVbudjtF4jEiwxJ1KOVXlT34/Tt/Rksxr9uAht2L3KyDCT6mVKFVHq2jIFYVx
 bIXT9HB3/ZjoVQzQKwRqKR8P9923avMmGvkGrDVXvvXx10hm7CK+UYJxOuwf80dQ
 7ahfqSf34Pm3ezWpzr2TJxbd1DOFl57W2K/BjM3eUolwYXwIv8jANj87CqJj+llf
 gtzMZS1bEdmFiP8DVnW0oQRS7quqSw0jo6qYLPV/dUBMPLFN8kdoWC9AfpQAaOxY
 jJjpKBTkRcpc48TNAqcAuq53d1f+fsRptuIX2sLuSz7i3mQ80fJo+dET836Q0nYx
 YYgVNWlJ5FTYyg==
 =31KA
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-5.1-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/dt

arm64: tegra: Device tree changes for v5.1-rc1

This contains a couple of fixes to existing device trees, enables CPU
frequency scaling on various Tegra210 boards, enables the TCU as debug
serial port on Jetson Xavier, adds various improvements for SDMMC on
Tegra210, Tegra186 and Tegra194 boards and finally adds initial support
for the NVIDIA Shield TV.

* tag 'tegra-for-5.1-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: (25 commits)
  arm64: tegra: Update compatible for Tegra186 I2C
  arm64: tegra: Update compatible for Tegra210 I2C
  arm64: tegra: Support 200 MHz for SDMMC on Tegra194
  arm64: tegra: Add CQE Support for SDMMC4
  arm64: tegra: Add SDMMC auto-calibration settings
  arm64: tegra: Mark TCU as primary serial port on Tegra194 P2888
  arm64: tegra: Add nodes for TCU on Tegra194
  arm64: tegra: Enable DFLL clock on Smaug
  arm64: tegra: Add CPU power rail regulator on Smaug
  arm64: tegra: Enable DFLL clock on Jetson TX1
  arm64: tegra: Add pinmux for PWM-based DFLL support on P2597
  arm64: tegra: Add CPU clocks on Tegra210
  arm64: tegra: Add DFLL clock on Tegra210
  arm64: tegra: p2771-0000: Use TEGRA186_ prefix for GPIO names
  arm64: tegra: p3310: Use TEGRA186_ prefix for GPIO names
  arm64: tegra: p2597: Sort nodes by unit-address
  arm64: tegra: p2972: Sort nodes properly
  arm64: tegra: Add regulators for Tegra210 Darcy
  arm64: tegra: Add pinmux for Darcy board
  arm64: tegra: Add gpio-keys nodes for Darcy
  ...

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 15:52:12 +01:00
Sowjanya Komatineni 351648d0cc arm64: tegra: Support 200 MHz for SDMMC on Tegra194
Change the SDMMC clock source to support a maximum frequency of 200 MHz
on Tegra194.

Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-02-07 19:03:57 +01:00
Sowjanya Komatineni dfd3cb6feb arm64: tegra: Add CQE Support for SDMMC4
Add CQE Support for Tegra186 and Tegra194 SDMMC4 controller

Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-02-07 19:03:57 +01:00
Sowjanya Komatineni 4e0f122991 arm64: tegra: Add SDMMC auto-calibration settings
Add SDMMC initial pad offsets used by auto calibration process.

Add SDMMC fixed drive strengths for Tegra210, Tegra186 and
Tegra194 which are used when calibration timeouts.

Fixed drive strengths are based on Pre SI Analysis of the pads.

Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-02-07 19:03:57 +01:00
Mikko Perttunen a38570c22e arm64: tegra: Add nodes for TCU on Tegra194
Add nodes required for communication through the Tegra Combined UART.
This includes the AON HSP instance, addition of shared interrupts
for the TOP0 HSP instance, and finally the TCU node itself. Also
mark the HSP instances as compatible to tegra194-hsp, as the hardware
is not identical but is compatible to tegra186-hsp.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Acked-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-02-07 19:03:57 +01:00
Rob Herring 31af04cd60 arm64: dts: Remove inconsistent use of 'arm,armv8' compatible string
The 'arm,armv8' compatible string is only for software models. It adds
little value otherwise and is inconsistently used as a fallback on some
platforms. Remove it from those platforms.

This fixes warnings generated by the DT schema.

Reported-by: Michal Simek <michal.simek@xilinx.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Acked-by: Antoine Tenart <antoine.tenart@bootlin.com>
Acked-by: Nishanth Menon <nm@ti.com>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Acked-by: Chanho Min <chanho.min@lge.com>
Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
Acked-by: Tero Kristo <t-kristo@ti.com>
Acked-by: Wei Xu <xuwei5@hisilicon.com>
Acked-by: Liviu Dudau <liviu.dudau@arm.com>
Acked-by: Matthias Brugger <matthias.bgg@gmail.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Acked-by: Scott Branden <scott.branden@broadcom.com>
Acked-by: Kevin Hilman <khilman@baylibre.com>
Acked-by: Chunyan Zhang <zhang.lyra@gmail.com>
Acked-by: Robert Richter <rrichter@cavium.com>
Acked-by: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
Acked-by: Dinh Nguyen <dinguyen@kernel.org>
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 17:34:36 +01:00
Thierry Reding 611a1c69f8 arm64: tegra: Set reg property for display-hub on Tegra194
Technically the display-hub driver could access registers via the
specified region, though it practice it will do so via the display
controllers' register regions.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-12-07 12:57:26 +01:00
Thierry Reding badb80bed0 arm64: tegra: Add CEC controller on Tegra194
The CEC controller found on Tegra194 can be used to control consumer
devices using the HDMI CEC pin.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-12-06 19:05:59 +01:00
Sameer Pujar 4878cc0c9f arm64: tegra: Add HDA controller on Tegra194
The HDA controller found on Tegra194 can be used for audio playback over
HDMI.

Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-12-06 19:04:26 +01:00
Thierry Reding 4d286331bd arm64: tegra: Add AON GPIO controller on Tegra194
The AON GPIO controller is in an always-on power partition and typically
provides pins for functions that need to always work, such as the power
key for example.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-12-03 16:31:35 +01:00
Thierry Reding 37e5a31df5 arm64: tegra: Add RTC support on Tegra194
The RTC on Tegra194 is very similar to the RTC on earlier generations.
One notable exception is that the source clock is now the 32 kHz clock
instead of a dedicated RTC clock and the RTC alarm is a wake event and
can be used to wake the system from sleep.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-12-03 16:31:34 +01:00
Thierry Reding 38ecf1e5f4 arm64: tegra: Enable PMC wake events on Tegra194
Wake events are a feature that allows the interrupt and GPIO controllers
to be powered off as part of system sleep. The PMC which is always on is
monitoring these wake events and can power up subsequent controllers as
necessary to process them.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-12-03 16:31:34 +01:00
Thierry Reding 686ba00900 arm64: tegra: Add thermal zones on Tegra194
The NVIDIA Tegra194 SoC defines six thermal zones. Define all of them in
device tree.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-12-03 16:31:32 +01:00
Thierry Reding 8d424ec221 arm64: tegra: Add VIC support on Tegra194
Tegra194 has a version of VIC that is very similar to that on Tegra186.
Add the device tree node for it that is enabled by default.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-12-03 16:31:32 +01:00
Thierry Reding 3db6d3ba08 arm64: tegra: Add display support on Tegra194
Tegra194 contains a display architecture very similar to that found on
the Tegra186. One notable exception is that DSI is no longer a supported
output. Instead there are four display controllers and four SORs (with a
DPAUX associated to each of them) that can drive HDMI or DP.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-12-03 16:31:27 +01:00
Thierry Reding 6a574ec70c arm64: tegra: Add PWM controllers on Tegra194
Tegra194 has eight single-channel PWM controllers, one of them in the
AON partition.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-11-28 16:44:04 +01:00
Thierry Reding d9fd22447b arm64: tegra: I2C on Tegra194 is not compatible with Tegra114
Tegra194 contains a version of the I2C controller that is no longer
compatible with the version found in Tegra114.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-09-26 15:50:59 +02:00
Mikko Perttunen 7780a03495 arm64: tegra: Add CPU nodes to Tegra194 device tree
Add CPU and PSCI nodes to device tree. The Tegra194 SoC contains
eight NVIDIA Carmel CPUs.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-07-02 15:57:39 +02:00
Mikko Perttunen f89b58ce71 arm64: tegra: Add ethernet controller on Tegra194
The Tegra194 contains the same ethernet controller as the Tegra186.
Add the device tree node for it, and correspondingly the PHY node
on the board device tree.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-07-02 15:56:07 +02:00
Mikko Perttunen f69ce393ec arm64: tegra: Add GPIO controller on Tegra194
Add the device tree node for the GPIO controller on Tegra194.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-07-02 15:55:34 +02:00
Mikko Perttunen 5425fb15d8 arm64: tegra: Add Tegra194 chip device tree
Add the chip-level device tree, including binding headers, for the
NVIDIA Tegra194 "Xavier" system-on-chip. Only a small subset of devices
are initially available, enough to boot to UART console.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2018-03-08 14:31:13 +01:00