linux-2.6-block.git
3 years agoMerge branch for-5.17/arm/defconfig into for-next
Thierry Reding [Fri, 17 Dec 2021 15:57:22 +0000 (16:57 +0100)]
Merge branch for-5.17/arm/defconfig into for-next

3 years agoMerge branch for-5.17/arm/dt into for-next
Thierry Reding [Fri, 17 Dec 2021 15:57:21 +0000 (16:57 +0100)]
Merge branch for-5.17/arm/dt into for-next

3 years agoMerge branch for-5.17/arm64/dt into for-next
Thierry Reding [Fri, 17 Dec 2021 15:57:21 +0000 (16:57 +0100)]
Merge branch for-5.17/arm64/dt into for-next

3 years agoMerge branch for-5.17/memory into for-next
Thierry Reding [Fri, 17 Dec 2021 15:57:21 +0000 (16:57 +0100)]
Merge branch for-5.17/memory into for-next

3 years agoMerge branch for-5.17/dt-bindings into for-next
Thierry Reding [Fri, 17 Dec 2021 15:57:21 +0000 (16:57 +0100)]
Merge branch for-5.17/dt-bindings into for-next

3 years agoMerge branch for-5.17/drivers into for-next
Thierry Reding [Fri, 17 Dec 2021 15:57:21 +0000 (16:57 +0100)]
Merge branch for-5.17/drivers into for-next

3 years agoMerge branch for-5.17/soc into for-next
Thierry Reding [Fri, 17 Dec 2021 15:57:21 +0000 (16:57 +0100)]
Merge branch for-5.17/soc into for-next

3 years agoMerge branch for-5.17/clk into for-next
Thierry Reding [Fri, 17 Dec 2021 15:57:21 +0000 (16:57 +0100)]
Merge branch for-5.17/clk into for-next

3 years agoarm64: tegra: Add host1x hotflush reset on Tegra210
Thierry Reding [Fri, 17 Dec 2021 13:53:08 +0000 (14:53 +0100)]
arm64: tegra: Add host1x hotflush reset on Tegra210

Add the host1x memory client hotflush reset on Tegra210.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agomedia: dt: bindings: tegra-vde: Document OPP and power domain
Dmitry Osipenko [Tue, 30 Nov 2021 23:23:33 +0000 (02:23 +0300)]
media: dt: bindings: tegra-vde: Document OPP and power domain

Document new OPP table and power domain properties of the video decoder
hardware.

Reviewed-by: Rob Herring <robh@kernel.org>
Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agomedia: dt: bindings: tegra-vde: Convert to schema
Dmitry Osipenko [Tue, 30 Nov 2021 23:23:32 +0000 (02:23 +0300)]
media: dt: bindings: tegra-vde: Convert to schema

Convert NVIDIA Tegra video decoder binding to schema.

Reviewed-by: Rob Herring <robh@kernel.org>
Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: host1x: Document Memory Client resets of Host1x, GR2D and GR3D
Dmitry Osipenko [Tue, 30 Nov 2021 23:23:14 +0000 (02:23 +0300)]
dt-bindings: host1x: Document Memory Client resets of Host1x, GR2D and GR3D

Memory Client should be blocked before hardware reset is asserted in order
to prevent memory corruption and hanging of memory controller.

Document Memory Client resets of Host1x, GR2D and GR3D hardware units.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: host1x: Document OPP and power domain properties
Dmitry Osipenko [Tue, 30 Nov 2021 23:23:13 +0000 (02:23 +0300)]
dt-bindings: host1x: Document OPP and power domain properties

Document new DVFS OPP table and power domain properties of the Host1x bus
and devices sitting on the bus.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: clock: tegra-car: Document new clock sub-nodes
Dmitry Osipenko [Tue, 30 Nov 2021 23:23:11 +0000 (02:23 +0300)]
dt-bindings: clock: tegra-car: Document new clock sub-nodes

Document sub-nodes which describe Tegra SoC clocks that require a higher
voltage of the core power domain in order to operate properly on a higher
clock rates.  Each node contains a phandle to OPP table and power domain.

The root PLLs and system clocks don't have any specific device dedicated
to them, clock controller is in charge of managing power for them.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: ARM: tegra: Document Pegatron Chagall
David Heidelberg [Sat, 11 Dec 2021 21:13:46 +0000 (00:13 +0300)]
dt-bindings: ARM: tegra: Document Pegatron Chagall

Document Pegatron Chagall, which is Tegra30-based tablet device.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: ARM: tegra: Document ASUS Transformers
Svyatoslav Ryhel [Sat, 11 Dec 2021 21:13:45 +0000 (00:13 +0300)]
dt-bindings: ARM: tegra: Document ASUS Transformers

Document Tegra20/30/114-based ASUS Transformer Series tablet devices.
This group includes EeePad TF101, Prime TF201, Pad TF300T, TF300TG
Infinity TF700T, TF701T.

Signed-off-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Anton Bambura <jenneron@protonmail.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: usb: tegra-xudc: Document interconnects and iommus properties
Thierry Reding [Mon, 6 Dec 2021 15:55:59 +0000 (16:55 +0100)]
dt-bindings: usb: tegra-xudc: Document interconnects and iommus properties

Add the interconnects, interconnect-names and iommus properties to the
device tree bindings for the Tegra XUDC controller. These are used to
describe the device's paths to and from memory.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: serial: Document Tegra234 TCU
Thierry Reding [Fri, 19 Nov 2021 14:38:39 +0000 (15:38 +0100)]
dt-bindings: serial: Document Tegra234 TCU

Add the compatible string for the TCU found on the Tegra234 SoC.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: serial: tegra-tcu: Convert to json-schema
Thierry Reding [Fri, 19 Nov 2021 14:38:38 +0000 (15:38 +0100)]
dt-bindings: serial: tegra-tcu: Convert to json-schema

Convert the Tegra TCU device tree bindings to json-schema.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: thermal: tegra186-bpmp: Convert to json-schema
Thierry Reding [Fri, 19 Nov 2021 14:38:37 +0000 (15:38 +0100)]
dt-bindings: thermal: tegra186-bpmp: Convert to json-schema

Convert the Tegra186 (and later) BPMP thermal device tree bindings from
the free-form text format to json-schema.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: firmware: tegra: Convert to json-schema
Thierry Reding [Fri, 19 Nov 2021 14:38:35 +0000 (15:38 +0100)]
dt-bindings: firmware: tegra: Convert to json-schema

Convert the NVIDIA Tegra186 (and later) BPMP bindings from the free-form
text format to json-schema.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: tegra: pmc: Convert to json-schema
Thierry Reding [Fri, 19 Nov 2021 14:38:34 +0000 (15:38 +0100)]
dt-bindings: tegra: pmc: Convert to json-schema

Convert the NVIDIA Tegra186 (and later) PMC bindings from the free-form
text format to json-schema.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: serial: 8250: Document Tegra234 UART
Thierry Reding [Fri, 19 Nov 2021 14:38:33 +0000 (15:38 +0100)]
dt-bindings: serial: 8250: Document Tegra234 UART

Add the compatible string for the UART found on the Tegra234 SoC.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: mmc: tegra: Document Tegra234 SDHCI
Thierry Reding [Fri, 19 Nov 2021 14:38:32 +0000 (15:38 +0100)]
dt-bindings: mmc: tegra: Document Tegra234 SDHCI

Add the compatible string for the SDHCI block found on the Tegra234 SoC.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: fuse: tegra: Document Tegra234 FUSE
Thierry Reding [Fri, 19 Nov 2021 14:38:31 +0000 (15:38 +0100)]
dt-bindings: fuse: tegra: Document Tegra234 FUSE

Add the compatible string for the FUSE block found on the Tegra234 SoC.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: fuse: tegra: Convert to json-schema
Thierry Reding [Fri, 19 Nov 2021 14:38:30 +0000 (15:38 +0100)]
dt-bindings: fuse: tegra: Convert to json-schema

Convert the NVIDIA Tegra FUSE bindings from the free-form text format to
json-schema.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: rtc: tegra: Document Tegra234 RTC
Thierry Reding [Fri, 19 Nov 2021 14:38:29 +0000 (15:38 +0100)]
dt-bindings: rtc: tegra: Document Tegra234 RTC

Add the compatible string for the RTC block found on the Tegra234 SoC.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: rtc: tegra: Convert to json-schema
Thierry Reding [Fri, 19 Nov 2021 14:38:28 +0000 (15:38 +0100)]
dt-bindings: rtc: tegra: Convert to json-schema

Convert the NVIDIA Tegra RTC bindings from the free-form text format to
json-schema.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: mailbox: tegra: Document Tegra234 HSP
Thierry Reding [Fri, 19 Nov 2021 14:38:27 +0000 (15:38 +0100)]
dt-bindings: mailbox: tegra: Document Tegra234 HSP

Add the compatible string for the HSP block found on the Tegra234 SoC.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: mailbox: tegra: Convert to json-schema
Thierry Reding [Fri, 19 Nov 2021 14:38:26 +0000 (15:38 +0100)]
dt-bindings: mailbox: tegra: Convert to json-schema

Convert the NVIDIA Tegra HSP bindings from the free-form text format to
json-schema.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: mmc: tegra: Convert to json-schema
Thierry Reding [Fri, 19 Nov 2021 14:38:25 +0000 (15:38 +0100)]
dt-bindings: mmc: tegra: Convert to json-schema

Convert the NVIDIA Tegra SDHCI bindings from the free-form text format
to json-schema.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoARM: tegra: Add host1x hotflush reset on Tegra124
Thierry Reding [Fri, 17 Dec 2021 13:52:37 +0000 (14:52 +0100)]
ARM: tegra: Add host1x hotflush reset on Tegra124

Add the host1x memory client hotflush reset on Tegra124.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoARM: tegra: Add memory client hotflush resets on Tegra114
Thierry Reding [Fri, 17 Dec 2021 13:51:51 +0000 (14:51 +0100)]
ARM: tegra: Add memory client hotflush resets on Tegra114

Add the host1x, gr2d and gr3d memory client hotflush resets on Tegra114.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoARM: tegra: Add back gpio-ranges properties
Stefan Agner [Thu, 26 Jul 2018 15:40:25 +0000 (17:40 +0200)]
ARM: tegra: Add back gpio-ranges properties

The properties have been commented out to prevent a regression a while
ago. The first regression should be resolved by commit 44af7927316e
("spi: Map SPI OF client IRQ at probe time").

The second regression is probably addressed by commit 494fd7b7ad10
("PM / core: fix deferred probe breaking suspend resume order") and/or
maybe others. Readd the gpio-ranges properties to see whether
regressions still get reported.

This reverts commit 4f1d841475e1 ("ARM: tegra: Comment out gpio-ranges
properties").

Signed-off-by: Stefan Agner <stefan@agner.ch>
Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
Tested-by: Dmitry Osipenko <digetx@gmail.com>
[treding@nvidia.com: drop redundant gpio-ranges from Ouya DTS file]
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoARM: tegra: paz00: Enable S/PDIF and HDMI audio
Dmitry Osipenko [Sat, 4 Dec 2021 14:37:25 +0000 (17:37 +0300)]
ARM: tegra: paz00: Enable S/PDIF and HDMI audio

Enable S/PDIF controller to enable HDMI audio support on Toshiba AC100.
Use nvidia,fixed-parent-rate property that prevents audio rate conflict
between S/PDIF and I2S.

Tested-by: Agneli <poczt@protonmail.ch>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoARM: tegra: acer-a500: Enable S/PDIF and HDMI audio
Dmitry Osipenko [Sat, 4 Dec 2021 14:37:24 +0000 (17:37 +0300)]
ARM: tegra: acer-a500: Enable S/PDIF and HDMI audio

Enable S/PDIF controller to enable HDMI audio support on Acer A500.
Use nvidia,fixed-parent-rate property that prevents audio rate conflict
between S/PDIF and I2S.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoARM: tegra: Add HDMI audio graph to Tegra20 device-tree
Dmitry Osipenko [Sat, 4 Dec 2021 14:37:23 +0000 (17:37 +0300)]
ARM: tegra: Add HDMI audio graph to Tegra20 device-tree

Add HDMI audio graph to Tegra20 device-tree to enable HDMI audio on
Tegra20 devices.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoARM: tegra: Add S/PDIF node to Tegra20 device-tree
Dmitry Osipenko [Sat, 4 Dec 2021 14:37:22 +0000 (17:37 +0300)]
ARM: tegra: Add S/PDIF node to Tegra20 device-tree

Add S/PDIF node to Tegra20 device-tree. It's needed for enabling HDMI
audio support.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoARM: tegra20/30: Disable unused host1x hardware
Dmitry Osipenko [Tue, 30 Nov 2021 23:23:47 +0000 (02:23 +0300)]
ARM: tegra20/30: Disable unused host1x hardware

MPE, VI, EPP and ISP were never used and we don't have drivers for them.
Since these modules are enabled by default in a device-tree, a device is
created for them, blocking voltage scaling because there is no driver to
bind, and thus, state of PMC driver is never synced. Disable them.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoARM: tegra: Add Memory Client resets to Tegra30 GR2D, GR3D and Host1x
Dmitry Osipenko [Tue, 30 Nov 2021 23:23:46 +0000 (02:23 +0300)]
ARM: tegra: Add Memory Client resets to Tegra30 GR2D, GR3D and Host1x

Memory access must be blocked before hardware reset is asserted and before
power is gated, otherwise a serious hardware fault is inevitable. Add
reset for memory clients to the GR2D, GR3D and Host1x nodes.

Tested-by: Peter Geis <pgwipeout@gmail.com> # Ouya T30
Tested-by: Matt Merhar <mattmerhar@protonmail.com> # Ouya T30
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoARM: tegra: Add Memory Client resets to Tegra20 GR2D, GR3D and Host1x
Dmitry Osipenko [Tue, 30 Nov 2021 23:23:45 +0000 (02:23 +0300)]
ARM: tegra: Add Memory Client resets to Tegra20 GR2D, GR3D and Host1x

Memory access must be blocked before hardware reset is asserted and before
power is gated, otherwise a serious hardware fault is inevitable. Add
reset for memory clients to the GR2D, GR3D and Host1x nodes.

Tested-by: Paul Fertser <fercerpav@gmail.com> # PAZ00 T20
Tested-by: Nicolas Chauvet <kwizart@gmail.com> # PAZ00 T20
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoARM: tegra: Add OPP tables and power domains to Tegra30 device-trees
Dmitry Osipenko [Tue, 30 Nov 2021 23:23:44 +0000 (02:23 +0300)]
ARM: tegra: Add OPP tables and power domains to Tegra30 device-trees

Add OPP tables and power domains to all peripheral devices which
support power management on Tegra30 SoC.

Tested-by: Peter Geis <pgwipeout@gmail.com> # Ouya T30
Tested-by: Matt Merhar <mattmerhar@protonmail.com> # Ouya T30
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Hook up MMC and BPMP to memory controller
Thierry Reding [Mon, 13 Dec 2021 16:21:51 +0000 (17:21 +0100)]
arm64: tegra: Hook up MMC and BPMP to memory controller

Use the interconnects property to hook up the MMC and BPMP to the memory
controller. This is needed to set the correct bus-level DMA mask, which
is a prerequisite for adding IOMMU support.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Add memory controller on Tegra234
Thierry Reding [Mon, 13 Dec 2021 16:21:50 +0000 (17:21 +0100)]
arm64: tegra: Add memory controller on Tegra234

This adds the memory controller and the embedded external memory
controller found on the Tegra234 SoC.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Add EMC general interrupt on Tegra194
Thierry Reding [Mon, 13 Dec 2021 16:21:49 +0000 (17:21 +0100)]
arm64: tegra: Add EMC general interrupt on Tegra194

Add the missing EMC general interrupt for the external memory controller
on Tegra194.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Update SDMMC4 speeds for Tegra194
Prathamesh Shete [Thu, 16 Dec 2021 09:46:10 +0000 (15:16 +0530)]
arm64: tegra: Update SDMMC4 speeds for Tegra194

Add required device-tree properties to populate all speed
modes supported by SDMMC4 instance of Tegra194 SDHCI controller.

Signed-off-by: Prathamesh Shete <pshete@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Add dma-coherent for Tegra194 VIC
Jon Hunter [Mon, 25 Oct 2021 11:08:42 +0000 (12:08 +0100)]
arm64: tegra: Add dma-coherent for Tegra194 VIC

DMA operations for the Tegra194 Video Image Compositor (VIC) are
coherent and so populate the 'dma-coherent' property.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Rename Ethernet PHY nodes
Thierry Reding [Wed, 8 Dec 2021 15:29:11 +0000 (16:29 +0100)]
arm64: tegra: Rename Ethernet PHY nodes

Name the Ethernet PHY device tree nodes as expected by the DT schema.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Remove unused only-1-8-v properties
Thierry Reding [Tue, 7 Dec 2021 14:06:19 +0000 (15:06 +0100)]
arm64: tegra: Remove unused only-1-8-v properties

The only-1-8-v property is not support by an DT schema, so drop it.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Sort Tegra210 XUSB clocks correctly
Thierry Reding [Tue, 7 Dec 2021 14:05:32 +0000 (15:05 +0100)]
arm64: tegra: Sort Tegra210 XUSB clocks correctly

Make the order of the clocks and clock-names properties match the order
in the device tree bindings. This isn't strictly necessary from a point
of view of the operating system because matching will be done based on
the clock-names, but it makes it easier to validate the device trees
against the DT schema.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Add missing TSEC properties on Tegra210
Thierry Reding [Tue, 7 Dec 2021 14:01:37 +0000 (15:01 +0100)]
arm64: tegra: Add missing TSEC properties on Tegra210

Add missing interrupts, clocks, clock-names, reset and reset-names
properties for the TSEC blocks found on Tegra210.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: jetson-nano: Remove extra PLL power supplies for PCIe and XUSB
Thierry Reding [Fri, 22 Mar 2019 13:56:11 +0000 (14:56 +0100)]
arm64: tegra: jetson-nano: Remove extra PLL power supplies for PCIe and XUSB

The XUSB pad controller handles the various PLL power supplies, so
remove any references to them from the PCIe and XUSB controller device
tree nodes.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: smaug: Remove extra PLL power supplies for XUSB
Thierry Reding [Fri, 22 Mar 2019 13:43:03 +0000 (14:43 +0100)]
arm64: tegra: smaug: Remove extra PLL power supplies for XUSB

The XUSB pad controller handles the various PLL power supplies, so
remove any references to them from the XUSB controller device tree
node.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: jetson-tx1: Remove extra PLL power supplies for PCIe and XUSB
Thierry Reding [Fri, 22 Mar 2019 13:41:53 +0000 (14:41 +0100)]
arm64: tegra: jetson-tx1: Remove extra PLL power supplies for PCIe and XUSB

The XUSB pad controller handles the various PLL power supplies, so
remove any references to them from the PCIe and XUSB controller device
tree nodes.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Rename GPIO hog nodes to match schema
Thierry Reding [Tue, 7 Dec 2021 13:54:48 +0000 (14:54 +0100)]
arm64: tegra: Rename GPIO hog nodes to match schema

GPIO hog nodes must have a "hog-" prefix or "-hog" suffix according to
the DT schema. Rename all such nodes to allow validation to pass.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Remove unsupported regulator properties
Thierry Reding [Tue, 7 Dec 2021 13:53:28 +0000 (14:53 +0100)]
arm64: tegra: Remove unsupported regulator properties

Remove the unsupported "regulator-disable-ramp-delay" properties which
ended up in various DTS files for some reason.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Rename TCU node to "serial"
Thierry Reding [Tue, 7 Dec 2021 13:51:54 +0000 (14:51 +0100)]
arm64: tegra: Rename TCU node to "serial"

The TCU is basically a serial port (albeit a fancy one), so it should be
named "serial".

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Remove undocumented Tegra194 PCIe "core_m" clock
Thierry Reding [Tue, 7 Dec 2021 13:50:44 +0000 (14:50 +0100)]
arm64: tegra: Remove undocumented Tegra194 PCIe "core_m" clock

The "core_m" clock is not documented in the Tegra194 PCIe device tree
bindings, so remove it.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Drop unused properties for Tegra194 PCIe
Thierry Reding [Tue, 7 Dec 2021 13:47:47 +0000 (14:47 +0100)]
arm64: tegra: Drop unused properties for Tegra194 PCIe

The num-viewport property is never used and can be dropped, whereas the
"iommus" property is not needed since we use "iommu-map-mask" and
"iommu-map" already.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Fix Tegra194 HSP compatible string
Thierry Reding [Tue, 7 Dec 2021 13:43:20 +0000 (14:43 +0100)]
arm64: tegra: Fix Tegra194 HSP compatible string

The HSP instances on Tegra194 are not fully compatible with the version
found on Tegra186, so drop the fallback compatible string from the list.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Drop unsupported nvidia,lpdr property
Thierry Reding [Tue, 7 Dec 2021 13:40:59 +0000 (14:40 +0100)]
arm64: tegra: Drop unsupported nvidia,lpdr property

The Tegra194 pinmux DT bindings do not define the nvidia,lpdr property,
so drop them from the device trees that have listed them.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Use JEDEC vendor prefix for SPI NOR flash chips
Thierry Reding [Tue, 7 Dec 2021 13:39:20 +0000 (14:39 +0100)]
arm64: tegra: Use JEDEC vendor prefix for SPI NOR flash chips

The standard "jedec," vendor prefix should be used for SPI NOR flash
chips. This allows the right DT schema to be picked for validation.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Drop unit-address for audio card graph endpoints
Thierry Reding [Tue, 7 Dec 2021 13:36:35 +0000 (14:36 +0100)]
arm64: tegra: Drop unit-address for audio card graph endpoints

Audio graph endpoints don't have a "reg" property, so they shouldn't
have a unit-address either.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Adjust length of CCPLEX cluster MMIO region
Thierry Reding [Tue, 7 Dec 2021 13:28:29 +0000 (14:28 +0100)]
arm64: tegra: Adjust length of CCPLEX cluster MMIO region

The Tegra186 CCPLEX cluster register region is 4 MiB is length, not 4
MiB - 1. This was likely presumed to be the "limit" rather than length.
Fix it up.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Fix Tegra186 compatible string list
Thierry Reding [Tue, 7 Dec 2021 13:27:11 +0000 (14:27 +0100)]
arm64: tegra: Fix Tegra186 compatible string list

The I2C controller found on Tegra186 is not fully compatible with the
Tegra210 version, so drop the fallback compatible string from the list.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Rename power-monitor input nodes
Thierry Reding [Tue, 7 Dec 2021 13:25:50 +0000 (14:25 +0100)]
arm64: tegra: Rename power-monitor input nodes

Child nodes of the TI INA3221 power monitor device tree node should be
called input@* according to the DT schema.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Rename thermal zones nodes
Thierry Reding [Tue, 7 Dec 2021 13:24:20 +0000 (14:24 +0100)]
arm64: tegra: Rename thermal zones nodes

The DT schema requires that nodes representing thermal zones include a
"-thermal" suffix in their name.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Sort Tegra132 XUSB clocks correctly
Thierry Reding [Tue, 7 Dec 2021 13:21:18 +0000 (14:21 +0100)]
arm64: tegra: Sort Tegra132 XUSB clocks correctly

Make the order of the clocks and clock-names properties match the order
in the device tree bindings. This isn't strictly necessary from a point
of view of the operating system because matching will be done based on
the clock-names, but it makes it easier to validate the device trees
against the DT schema.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Drop unused AHCI clocks on Tegra132
Thierry Reding [Tue, 7 Dec 2021 13:20:25 +0000 (14:20 +0100)]
arm64: tegra: Drop unused AHCI clocks on Tegra132

The CML1 and PLL_E clocks are never explicitly used by the AHCI
controller found on Tegra132, so drop them from the corresponding device
tree node.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Fix Tegra132 I2C compatible string list
Thierry Reding [Tue, 7 Dec 2021 13:19:26 +0000 (14:19 +0100)]
arm64: tegra: Fix Tegra132 I2C compatible string list

The I2C controller found on Tegra124 is not fully compatible with the
Tegra114 version, so drop the fallback compatible string from the list.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Add OPP tables on Tegra132
Thierry Reding [Tue, 7 Dec 2021 13:17:07 +0000 (14:17 +0100)]
arm64: tegra: Add OPP tables on Tegra132

Add peripheral OPP tables on Tegra132 and wire them up to ACTMON and the
EMC. While at it, add the missing "#interconnect-cells" properties to
the memory controller and external memory controller nodes. Also set the
"#reset-cells" property for the memory controller because it exports the
hotflush reset controls.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Fix compatible string for Tegra132 timer
Thierry Reding [Tue, 7 Dec 2021 13:13:37 +0000 (14:13 +0100)]
arm64: tegra: Fix compatible string for Tegra132 timer

The TKE (time-keeping engine) found on Tegra132 is not backwards
compatible with the version found on Tegra20, so update the compatible
string list accordingly.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Remove unsupported properties on Norrin
Thierry Reding [Tue, 7 Dec 2021 13:11:53 +0000 (14:11 +0100)]
arm64: tegra: Remove unsupported properties on Norrin

The Tegra PMC device tree bindings don't support the "#wake-cells" and
"nvidia,reset-gpio" properties, so remove them.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Fix unit-addresses on Norrin
Thierry Reding [Tue, 7 Dec 2021 13:10:00 +0000 (14:10 +0100)]
arm64: tegra: Fix unit-addresses on Norrin

The AS3722 pinmux device tree node doesn't have a "reg" property and
therefore must not have a unit-address, so drop it.

While at it, add missing unit-addresses for the charger and smart
battery IC's on the ChromeOS embedded controller's I2C tunnel bus.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Add native timer support on Tegra186
Thierry Reding [Thu, 19 Mar 2020 15:45:38 +0000 (16:45 +0100)]
arm64: tegra: Add native timer support on Tegra186

The native timers IP block found on NVIDIA Tegra SoCs implements a
watchdog timer that can be used to recover from system hangs. Add the
device tree node on Tegra186.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Rename top-level regulators
Thierry Reding [Mon, 6 Dec 2021 17:02:18 +0000 (18:02 +0100)]
arm64: tegra: Rename top-level regulators

Regulators defined at the top level in device tree are no longer part of
a simple bus and therefore don't have a reg property. Nodes without a
reg property shouldn't have a unit-address either, so drop the unit
address from the node names. To ensure nodes aren't duplicated (in which
case they would end up merged in the final DTB), append the name of the
regulator to the node name.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Rename top-level clocks
Thierry Reding [Mon, 6 Dec 2021 16:58:55 +0000 (17:58 +0100)]
arm64: tegra: Rename top-level clocks

Clocks defined at the top level in device tree are no longer part of a
simple bus and therefore don't have a reg property. Nodes without a reg
property shouldn't have a unit-address either, so drop the unit address
from the node names. To ensure nodes aren't duplicated (in which case
they would end up merged in the final DTB), append the name of the clock
to the node name.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Add ISO SMMU controller for Tegra194
Jon Hunter [Wed, 1 Dec 2021 15:57:16 +0000 (15:57 +0000)]
arm64: tegra: Add ISO SMMU controller for Tegra194

The display controllers are attached to a separate ARM SMMU instance
that is dedicated to servicing isochronous memory clients. Add this ISO
instance of the ARM SMMU to device tree.

Please note that the display controllers are not hooked up to this SMMU
yet, because we are still missing a means to transition framebuffers
used by the bootloader to the kernel.

This based upon an initial patch by Thierry Reding <treding@nvidia.com>.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Add NVENC and NVJPG nodes for Tegra186 and Tegra194
Jon Hunter [Wed, 17 Nov 2021 09:56:08 +0000 (09:56 +0000)]
arm64: tegra: Add NVENC and NVJPG nodes for Tegra186 and Tegra194

Populate the device-tree nodes for NVENC and NVJPG Host1x engines on
Tegra186 and Tegra194.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Add support to enumerate SD in UHS mode
Prathamesh Shete [Tue, 16 Nov 2021 12:02:36 +0000 (17:32 +0530)]
arm64: tegra: Add support to enumerate SD in UHS mode

Add support to enumerate SD in UHS mode on Tegra194. Add required
device-tree properties in SDMMC1 and SDMMC3 instances to enable dynamic
pad voltage switching and enumerate SD card in UHS-I modes.

Signed-off-by: Prathamesh Shete <pshete@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Add NVIDIA Jetson AGX Orin Developer Kit support
Mikko Perttunen [Fri, 12 Nov 2021 12:35:42 +0000 (13:35 +0100)]
arm64: tegra: Add NVIDIA Jetson AGX Orin Developer Kit support

The Jetson AGX Orin Developer Kit is a continuation of the Jetson
Developer Kit line using the new NVIDIA Tegra234 (Orin) SoC.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Describe Tegra234 CPU hierarchy
Thierry Reding [Fri, 12 Nov 2021 13:19:04 +0000 (14:19 +0100)]
arm64: tegra: Describe Tegra234 CPU hierarchy

The NVIDIA Tegra234 SoC has 3 clusters of 4 Cortex-A78AE CPU cores each,
for a total of 12 CPUs. Each CPU has 64 KiB instruction and data caches
with each cluster having an additional 256 KiB unified L2 cache and a 2
MiB L3 cache.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Add main and AON GPIO controllers on Tegra234
Thierry Reding [Fri, 10 Dec 2021 16:02:05 +0000 (17:02 +0100)]
arm64: tegra: Add main and AON GPIO controllers on Tegra234

These two controllers expose general purpose I/O pins that can be used
to control or monitor a variety of signals.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Add Tegra234 TCU device
Mikko Perttunen [Fri, 12 Nov 2021 12:35:41 +0000 (13:35 +0100)]
arm64: tegra: Add Tegra234 TCU device

Add a device for TCU (Tegra Combined UART) used for serial console.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Fill in properties for Tegra234 eMMC
Mikko Perttunen [Fri, 12 Nov 2021 12:35:40 +0000 (13:35 +0100)]
arm64: tegra: Fill in properties for Tegra234 eMMC

Add missing properties to the eMMC controller, as required to use it on
actual hardware.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Update Tegra234 BPMP channel addresses
Mikko Perttunen [Fri, 12 Nov 2021 12:35:39 +0000 (13:35 +0100)]
arm64: tegra: Update Tegra234 BPMP channel addresses

On final Tegra234 systems, shared memory for communication with BPMP is
located at offset 0x70000 in SYSRAM.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Add clock for Tegra234 RTC
Mikko Perttunen [Fri, 12 Nov 2021 12:35:38 +0000 (13:35 +0100)]
arm64: tegra: Add clock for Tegra234 RTC

The RTC device requires a clock. Add it.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoarm64: tegra: Fixup SYSRAM references
Thierry Reding [Fri, 12 Nov 2021 12:35:37 +0000 (13:35 +0100)]
arm64: tegra: Fixup SYSRAM references

The json-schema bindings for SRAM expect the nodes to be called "sram"
rather than "sysram" or "shmem". Furthermore, place the brackets around
the SYSRAM references such that a two-element array is created rather
than a two-element array nested in a single-element array. This is not
relevant for device tree itself, but allows the nodes to be properly
validated against json-schema bindings.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoMerge tag 'tegra-for-5.17-dt-bindings-memory' into for-5.17/arm64/dt
Thierry Reding [Thu, 16 Dec 2021 15:50:49 +0000 (16:50 +0100)]
Merge tag 'tegra-for-5.17-dt-bindings-memory' into for-5.17/arm64/dt

dt-bindings: memory: Add Tegra234 support

This stable tag contains the addition of the EMC clock ID and an initial
list of memory client IDs for Tegra234 and will be shared between the
memory and ARM SoC trees.

3 years agomemory: tegra: Add Tegra234 support
Thierry Reding [Mon, 13 Dec 2021 16:21:48 +0000 (17:21 +0100)]
memory: tegra: Add Tegra234 support

The memory controller and external memory controller found on Tegra234
is similar to the version found on earlier SoCs but supports a number of
new memory clients.

Add initial memory client definitions for the Tegra234 so that the SMMU
stream ID override registers can be properly programmed at boot time.

Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoMerge tag 'tegra-for-5.17-dt-bindings-memory' into for-5.17/memory
Thierry Reding [Thu, 16 Dec 2021 15:47:19 +0000 (16:47 +0100)]
Merge tag 'tegra-for-5.17-dt-bindings-memory' into for-5.17/memory

dt-bindings: memory: Add Tegra234 support

This stable tag contains the addition of the EMC clock ID and an initial
list of memory client IDs for Tegra234 and will be shared between the
memory and ARM SoC trees.

3 years agodt-bindings: misc: Convert Tegra MISC to json-schema
Thierry Reding [Fri, 19 Nov 2021 14:38:24 +0000 (15:38 +0100)]
dt-bindings: misc: Convert Tegra MISC to json-schema

Convert the device tree bindings for the MISC register block found on
NVIDIA Tegra SoCs from plain text to json-schema format.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: memory: tegra: Add Tegra234 support
Thierry Reding [Mon, 13 Dec 2021 16:21:47 +0000 (17:21 +0100)]
dt-bindings: memory: tegra: Add Tegra234 support

Document the variant of the memory controller and external memory
controllers found on Tegra234 and add some memory client and SMMU
stream ID definitions for use in device tree files.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: Add YAML bindings for NVENC and NVJPG
Jon Hunter [Wed, 17 Nov 2021 09:56:07 +0000 (09:56 +0000)]
dt-bindings: Add YAML bindings for NVENC and NVJPG

Add YAML device tree bindings for the Tegra NVENC and NVJPG Host1x
engines.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: memory: tegra: Update for Tegra194
Thierry Reding [Mon, 13 Dec 2021 16:21:46 +0000 (17:21 +0100)]
dt-bindings: memory: tegra: Update for Tegra194

The #interconnect-cells properties are required to hook up memory
clients to the MC/EMC in interconnects properties. Add a description for
these properties.

For the nested EMC controller, the list of required properties was
missing. Add it so that the validation can be more strict.

Also, allow multiple reg entries required by Tegra194 and later.

While at it, also remove the dummy BPMP node from the example because it
is incomplete and fails validation. It's also not necessary for this
file and the BPMP DT schema already has a full example.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: sram: Document NVIDIA Tegra SYSRAM
Thierry Reding [Fri, 12 Nov 2021 12:35:35 +0000 (13:35 +0100)]
dt-bindings: sram: Document NVIDIA Tegra SYSRAM

Tegra SoCs have extra on-chip RAM that can be used for inter-processor
communication. Tegra186 and later make use of it to establish a two-way
channel between the CCPLEX and BPMP. Add missing compatible strings for
Tegra186 and Tegra194 as well as a new compatible string for Tegra234.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: Update headers for Tegra234
Mikko Perttunen [Fri, 12 Nov 2021 12:35:34 +0000 (13:35 +0100)]
dt-bindings: Update headers for Tegra234

Add a few more clocks that will be used in follow-up patches to enable
more functionality on Tegra234.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: tegra: Document Jetson AGX Orin (and devkit)
Thierry Reding [Fri, 12 Nov 2021 12:35:33 +0000 (13:35 +0100)]
dt-bindings: tegra: Document Jetson AGX Orin (and devkit)

Add the compatible strings for the Jetson AGX Orin and the
corresponding developer kit.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agodt-bindings: tegra: Describe recent developer kits consistently
Thierry Reding [Fri, 12 Nov 2021 12:35:32 +0000 (13:35 +0100)]
dt-bindings: tegra: Describe recent developer kits consistently

Add descriptions to entries that were missing one and don't try to
combine multiple entries into one to avoid confusion.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
3 years agoARM: config: multi v7: Enable NVIDIA Tegra20 APB DMA driver
Dmitry Osipenko [Sat, 4 Dec 2021 14:37:21 +0000 (17:37 +0300)]
ARM: config: multi v7: Enable NVIDIA Tegra20 APB DMA driver

All Tegra20/30/114 serial and audio drivers depend on the Tegra20 APB DMA
driver, enable this DMA driver.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>