[PATCH v5 1/4] dt-bindings: reset: add Tegra114 car header

Svyatoslav Ryhel posted 4 patches 1 month ago
[PATCH v5 1/4] dt-bindings: reset: add Tegra114 car header
Posted by Svyatoslav Ryhel 1 month ago
The way that resets are handled on these Tegra devices is that there is a
set of peripheral clocks & resets which are paired up. This is because they
are laid out in banks within the CAR (clock and reset) controller. In most
cases we're referring to those resets, so you'll often see a clock ID used
in conjection with the same reset ID for a given IP block.

In addition to those peripheral resets, there are a number of extra resets
that don't have a corresponding clock and which are exposed in registers
outside of the peripheral banks, but still part of the CAR. To support
those "special" registers, the TEGRA*_RESET() is used to denote resets
outside of the regular peripheral resets. Essentially it defines the offset
within the CAR at which special resets start. In the above case, Tegra114
has 5 banks with 32 peripheral resets each. The first special reset,
TEGRA114_RESET(0), therefore gets ID 5 * 32 + 0 = 160.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
---
 include/dt-bindings/reset/nvidia,tegra114-car.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)
 create mode 100644 include/dt-bindings/reset/nvidia,tegra114-car.h

diff --git a/include/dt-bindings/reset/nvidia,tegra114-car.h b/include/dt-bindings/reset/nvidia,tegra114-car.h
new file mode 100644
index 000000000000..9b8c320402db
--- /dev/null
+++ b/include/dt-bindings/reset/nvidia,tegra114-car.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+/*
+ * This header provides Tegra114-specific constants for binding
+ * nvidia,tegra114-car.
+ */
+
+#ifndef _DT_BINDINGS_RESET_NVIDIA_TEGRA114_CAR_H
+#define _DT_BINDINGS_RESET_NVIDIA_TEGRA114_CAR_H
+
+#define TEGRA114_RESET(x)		(5 * 32 + (x))
+#define TEGRA114_RST_DFLL_DVCO		TEGRA114_RESET(0)
+
+#endif	/* _DT_BINDINGS_RESET_NVIDIA_TEGRA114_CAR_H */
-- 
2.48.1
Re: [PATCH v5 1/4] dt-bindings: reset: add Tegra114 car header
Posted by Krzysztof Kozlowski 1 month ago
On Fri, Aug 29, 2025 at 03:22:31PM +0300, Svyatoslav Ryhel wrote:
> The way that resets are handled on these Tegra devices is that there is a
> set of peripheral clocks & resets which are paired up. This is because they
> are laid out in banks within the CAR (clock and reset) controller. In most
> cases we're referring to those resets, so you'll often see a clock ID used
> in conjection with the same reset ID for a given IP block.
> 
> In addition to those peripheral resets, there are a number of extra resets
> that don't have a corresponding clock and which are exposed in registers
> outside of the peripheral banks, but still part of the CAR. To support
> those "special" registers, the TEGRA*_RESET() is used to denote resets
> outside of the regular peripheral resets. Essentially it defines the offset
> within the CAR at which special resets start. In the above case, Tegra114
> has 5 banks with 32 peripheral resets each. The first special reset,
> TEGRA114_RESET(0), therefore gets ID 5 * 32 + 0 = 160.
> 
> Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
> Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
> ---
>  include/dt-bindings/reset/nvidia,tegra114-car.h | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>  create mode 100644 include/dt-bindings/reset/nvidia,tegra114-car.h

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof