From nobody Fri Oct 3 14:34:22 2025 Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3E6802C0F78; Fri, 29 Aug 2025 12:23:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756470181; cv=none; b=OiD4CAG7R26Mv/QKXrfHTX1pJ10VbgpKyu8Ar+MvJS5j91myBkgyNwxZ2/Kl8DI/b1C/AAjfl8n+GId46uvLIA5kL+qAiEyQumP1MwgJx4V7ajdwRrF/6D7z7lIj4fdzvR4OywMGtkJEOoh9BWRP7hiCCwWncUlNM5vgGWk4KEI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756470181; c=relaxed/simple; bh=Qsf8LdCBOg6qlEG4F76h0hnKc6twkDYa3SH3IHz2iJI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YYdm2ri8RFTq1VG8pj3KU+BvNO895DlI09C6Rwv3Z5s6RDIo23g4jTMGJT4WxVLIPkKBP7JY1Yk8Su4I08hCftizKvdEtgtmh9piGI7PfngRDba28W1tKkB67Hz34XCJv0hmykEEQludGyoH1fn+BMUgMUqO5njnXtVX53QxJEQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=E9OJ/Q4C; arc=none smtp.client-ip=209.85.208.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="E9OJ/Q4C" Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-619487c8865so5807799a12.1; Fri, 29 Aug 2025 05:22:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756470178; x=1757074978; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ceON3CwjJmrpeVph4t9zEUTzpK3YszuqGPGiBiVrPPM=; b=E9OJ/Q4CtF10Bpceijc6GgZzSvsiUIqtWqbUEiWgoTHhFRGpAdakC/G1mXTmk/NDW6 GsLzWFT14M3OEx8f+cG9dPM+gAPmWKzmT9qFGAMNhRaInDrhkrq1OcBGquO03/w82QTl uEpcx32t+3zukG1AXy8VOBE4MiqZs8NAMNOW72ZCYVBZ3RTyJltzMpDRAVzJL6f9h0S1 WwgXbUIsTVq3sf3Jhy1Nt7Ay+E2Q1ez1pOmP3QBXGuYDpI0RT9U6eMI2KXo1VIzfx0Ap a9tKDxG03bakzhrIMjKq4mqpyhLTWpZErwQOFeenfYVPJR6l5qsDuSyZHMjAzW8qv5Tv KaSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756470178; x=1757074978; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ceON3CwjJmrpeVph4t9zEUTzpK3YszuqGPGiBiVrPPM=; b=ti82+JbEieCSsy/j3kScBcRJUyQumPJ2HSfwLgkUNSKvVoTmkdrYfl221ZbskvH2KO Z6NVGtpXaE+zbgGfHi8d/krqzVmMvNkBjERweZC8eD8XBpBbuh7p2Ll/6KCH1zDUYRWG XsrMdB0Iq+lSGSBASuicsCbUqtkdkHC0k6GL/5tTgb/+XFqgM5eSmJ0Uu8h6/GYGMEbI TQrLZ9XYazI6zfxvRkVvq2HUzZ5LhhSycv+Akw67b3p6M3QAo8civ4c5szdRFoVGg3Vf PrKcuqqC3QeGtuV6G/EBvHFGEPJXA1BGkgp9Pyzji37IOkQAIs4sXErveeHnC4YQlAXe eUng== X-Forwarded-Encrypted: i=1; AJvYcCWQriWgjdTD35eX2rZnlZsI4Df310qSFfPAtqzO97gSUGBBmCVEnrjeKpR5Pyqj6sTAuppJh9m4jTjZBodz@vger.kernel.org, AJvYcCWwLUspR84WWJSEc+gwpGdbfdCYrEL+Hxytq5+4NTAHHjbTG/fTCyzXZE7w9wKpw5EiLiBQCcwR6TQ=@vger.kernel.org, AJvYcCXX7uWyACXhoGQvJMcdtxkL9x8NUL8QO2kF0Pa3xFaPLYrHMOjQDgwSc1cFDSWAIg4akUhZAU6ZPaxvFpM=@vger.kernel.org X-Gm-Message-State: AOJu0YzC7KPYgTJkRXI/0qe8BT5EuHpnPkINpsvxHNxloRdD923cgkq5 4ud9rSbDQKBxhpTAZ/mVwOQZQlvn/CK3sqvCw1uaEKSra6UBuNvIBC2b X-Gm-Gg: ASbGncufXhYypwjQua/5Y7Be0VO6YqfOMgt1GMj3EVH4r4EehRRlzWwKjM2V9j2tAd7 a/nY71jUB+UJwR8RJLowg95+GxLxVxGS6FvLixnPg5K9/hC5HV5gZYe2olUFHTZF8g74ldZ7Hiu HKjQ2D8ywCjehdqoNjf2q+fhnfTPT5gvSmMmrOjMB8QNBnk0/mpD7LuyT0pZfyxHW0aRcwFP4bA BDe8RuAB5vJGzyM7+koyiGN79gzckDxDs6RKyqcl6vp+GQwbz7q0u1KBHKq41n0hhyEg05huZju P0KeppdrIQ8OLP3jEhZ110SwPWC2nYj9fn+LvRQZjlv1T9cLmsvNEAV31dDWkW9ELZbKXlVgqFp ISEGBsNTEQVHiz+HP5hGldAS3bJkFzvYCABY= X-Google-Smtp-Source: AGHT+IE4zj9HMkqBC+WULHAKvF5+kgyoF9TjB3Y5fjg26i90RF+JsJFl7CS3FbiB7el0t0bUluqmIQ== X-Received: by 2002:a17:906:3199:b0:afe:d1a9:e815 with SMTP id a640c23a62f3a-afed1a9ec9fmr592729066b.26.1756470178245; Fri, 29 Aug 2025 05:22:58 -0700 (PDT) Received: from xeon.. ([188.163.112.70]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd7047sm188662166b.51.2025.08.29.05.22.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 05:22:57 -0700 (PDT) From: Svyatoslav Ryhel To: Thierry Reding , Thierry Reding , Mikko Perttunen , Jonathan Hunter , Prashant Gaikwad , Michael Turquette , Stephen Boyd , Philipp Zabel , Svyatoslav Ryhel , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: devicetree@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org Subject: [PATCH v5 1/4] dt-bindings: reset: add Tegra114 car header Date: Fri, 29 Aug 2025 15:22:31 +0300 Message-ID: <20250829122235.119745-2-clamor95@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250829122235.119745-1-clamor95@gmail.com> References: <20250829122235.119745-1-clamor95@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 =3D 160. Signed-off-by: Svyatoslav Ryhel Reviewed-by: Mikko Perttunen Acked-by: Krzysztof Kozlowski --- 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-b= indings/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 */ --=20 2.48.1 From nobody Fri Oct 3 14:34:22 2025 Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 65D0F314B98; Fri, 29 Aug 2025 12:23:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756470183; cv=none; b=S6mlmBZty5OSg0LncyhkxkmIU2QyL9V34Uc+hseKIWp2uJLAw50e0+9eZa8WbBnn9V+Zz+2cdtKKSl0UHTmAQIGa5WSJDip25arznGa+FETNMczHU0gpY1akJeh+1Ee7nmKuecTV6rCe/JiQqqezB+rGQY7Hr81E6Qmemntjkmo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756470183; c=relaxed/simple; bh=knsSMG7mo7/KAkkmud1SDqCz0Z22r1P4AiV/ONgJohc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QxMzCi1SPmiNbihaG6q3N5vhBuxdnh+fN4UDTfFL25zz7pwpw6Noh7FmoTgmeDq7rDx5skK82ZF3no9uMeHhn+Ab2qx3gnJEduonKA3RICs/nDe4O8EPJFCjVdtGV34w2Ur6lz6ReWVakrC9o8zncWg9MNpIDbvgQ47ovZvWezI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=A4SvWtbA; arc=none smtp.client-ip=209.85.218.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="A4SvWtbA" Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-afcb731caaaso303262766b.0; Fri, 29 Aug 2025 05:23:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756470180; x=1757074980; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gGpYtw2lXW//8PFOqj/viqbsXc94HfKiF9iNRmUCeCM=; b=A4SvWtbAYwjZuW9zwPdirw8nvvw31hNCWbmayg5NT3/vzITAgEu+4rRTULdh7wEggj vCy8J4F2lOC7uA6+XyZSulukOM2VS38V2qTth6hMEhIdsUIJy0mm4Sv0Ag49MBnKsQH7 nHQxJpXhLxADGx+NS/MonVwN/rDY4CH03UJjCdMqvZsx/Kb/+tsIaoXIoZcLgoBrCUmg ZNh9ZweAfT1n62Gyu3IExMG1ssi0KMHE4OXCcELfyslywYQmXb9rjePZe7rIQ6lnwPp1 0ebkRSKk5z7N3jb51ZrP/wkTRC67cB9Qb78tZJ6/ZOFMRMe50wXKcQTLR227TuKmXQOT z2lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756470180; x=1757074980; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gGpYtw2lXW//8PFOqj/viqbsXc94HfKiF9iNRmUCeCM=; b=NY2Ug991QWHihinRo9X4QzPrvbvYlY3WHFKVXfoiszOENiDwbzU+ZN/deDWQP7OSG0 rjqKYDJm78RumQrzLyovYczJKVeXPZ6At8RhUysFos07WT6jpt2hcF85xCJIVICCosza dkfRXwgSK96YHCgdkMSvFRvXbAB4BrQxmE/jV1hpOuy5xIihisD2FnxLIaSie4oCyDFH dDKPnkRjy51eyMDhfQuDdH0cQTm5WFGs3jDcxQOtRvjziy0n2ozaQ+Ii7fngYGdo4qvj GoQKT9NScAwrXXbOcSSN4fjXzAFWla/HtuCUE4TmZf1GvLDYU2j3nbKaBvLHKjal+h6M ZQfA== X-Forwarded-Encrypted: i=1; AJvYcCUJT8yWuObc/G10uE/z/BuOX5Le6qWQEZSbmKD6PKsKKvpj6sKi/Uwnd2rLnu234AMbJtdW8Y+8Tlg=@vger.kernel.org, AJvYcCUKd3uAXa6eq0IzhefKwL0y+l4UDdw0ZNemnYNUEzgvpvhJSLAu3r6LbFYYuoizJQ/x3pnaE/UMqptLBU2t@vger.kernel.org, AJvYcCVySOUFLL2Ax4Ap6CQDUgO1dM0BbqaORPZ0LUTLxxZkPIEjUePS/ocO8vmyX1Pzl9bgsz8G48MCKnhbt0I=@vger.kernel.org X-Gm-Message-State: AOJu0Yxe9adhk63KRpqRnxE4bDOOCf++IVqZDHSFvOU8wFaxcM/VMiwA /bD77dyyjZfPzJDlZo5kHrj8qS9yEXkNQGfChQZddAVKIjVkH+HTJsjy X-Gm-Gg: ASbGncu3uR5VJWK5aOp7EJP3Iw/uUWkGj0v+dRNtuZMn4h1yk9mHpfl+v0mXGlHTRcQ b/s3MqyZSufZiJUzjRSBXnezq9ueru84HO+EHFRPmF0GK7gEPaCeKGxDb/Lcu+WWGZwqWuyXa9v 6mwiQLE4qfXasxe17hYwP52eXS6fsOQ0nAExvLMxVVLm9BMBV2djkPGprWoYN82sAQzAWzgx4cp yA7rD4gFmBvqOyg1Ml/tg7roJBwRm85rY3b4SH/F3B75h9XHaAC5ZtkXAcaaf4IcKEncj0dYSnn tYSQ7M3tYsJOu00g3I1SScSPiWx1YpD53c4ETBDcEEU5yW9/kzgFJ01niPf6bqEG2xzI4NFotor u/QfvpN65BkRv14jZXCPQUoU7 X-Google-Smtp-Source: AGHT+IG/85LPj0RxiOsyeRWmpcjD0QZYafof3Jq7J8suPat9E8e38oKNAkWyt/LnVbgKU3hH6qehFw== X-Received: by 2002:a17:906:b213:b0:afe:f8ca:ec44 with SMTP id a640c23a62f3a-afef8cafa5fmr312588366b.4.1756470179518; Fri, 29 Aug 2025 05:22:59 -0700 (PDT) Received: from xeon.. ([188.163.112.70]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd7047sm188662166b.51.2025.08.29.05.22.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 05:22:59 -0700 (PDT) From: Svyatoslav Ryhel To: Thierry Reding , Thierry Reding , Mikko Perttunen , Jonathan Hunter , Prashant Gaikwad , Michael Turquette , Stephen Boyd , Philipp Zabel , Svyatoslav Ryhel , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: devicetree@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org Subject: [PATCH v5 2/4] clk: tegra: add DFLL DVCO reset control for Tegra114 Date: Fri, 29 Aug 2025 15:22:32 +0300 Message-ID: <20250829122235.119745-3-clamor95@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250829122235.119745-1-clamor95@gmail.com> References: <20250829122235.119745-1-clamor95@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The DVCO present in the DFLL IP block has a separate reset line, exposed via the CAR IP block. This reset line is asserted upon SoC reset. Unless something (such as the DFLL driver) deasserts this line, the DVCO will not oscillate, although reads and writes to the DFLL IP block will complete. Based on a3c83ff2 ("clk: tegra: Add DFLL DVCO reset control for Tegra124") Signed-off-by: Svyatoslav Ryhel Reviewed-by: Mikko Perttunen --- drivers/clk/tegra/clk-tegra114.c | 30 ++++++++++++++++++++++++++---- drivers/clk/tegra/clk.h | 2 -- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/drivers/clk/tegra/clk-tegra114.c b/drivers/clk/tegra/clk-tegra= 114.c index 186b0b81c1ec..8bde72aa5e68 100644 --- a/drivers/clk/tegra/clk-tegra114.c +++ b/drivers/clk/tegra/clk-tegra114.c @@ -11,6 +11,7 @@ #include #include #include +#include =20 #include "clk.h" #include "clk-id.h" @@ -1274,7 +1275,7 @@ EXPORT_SYMBOL(tegra114_clock_tune_cpu_trimmers_init); * * Assert the reset line of the DFLL's DVCO. No return value. */ -void tegra114_clock_assert_dfll_dvco_reset(void) +static void tegra114_clock_assert_dfll_dvco_reset(void) { u32 v; =20 @@ -1283,7 +1284,6 @@ void tegra114_clock_assert_dfll_dvco_reset(void) writel_relaxed(v, clk_base + RST_DFLL_DVCO); tegra114_car_barrier(); } -EXPORT_SYMBOL(tegra114_clock_assert_dfll_dvco_reset); =20 /** * tegra114_clock_deassert_dfll_dvco_reset - deassert the DFLL's DVCO reset @@ -1291,7 +1291,7 @@ EXPORT_SYMBOL(tegra114_clock_assert_dfll_dvco_reset); * Deassert the reset line of the DFLL's DVCO, allowing the DVCO to * operate. No return value. */ -void tegra114_clock_deassert_dfll_dvco_reset(void) +static void tegra114_clock_deassert_dfll_dvco_reset(void) { u32 v; =20 @@ -1300,7 +1300,26 @@ void tegra114_clock_deassert_dfll_dvco_reset(void) writel_relaxed(v, clk_base + RST_DFLL_DVCO); tegra114_car_barrier(); } -EXPORT_SYMBOL(tegra114_clock_deassert_dfll_dvco_reset); + +static int tegra114_reset_assert(unsigned long id) +{ + if (id =3D=3D TEGRA114_RST_DFLL_DVCO) + tegra114_clock_assert_dfll_dvco_reset(); + else + return -EINVAL; + + return 0; +} + +static int tegra114_reset_deassert(unsigned long id) +{ + if (id =3D=3D TEGRA114_RST_DFLL_DVCO) + tegra114_clock_deassert_dfll_dvco_reset(); + else + return -EINVAL; + + return 0; +} =20 static void __init tegra114_clock_init(struct device_node *np) { @@ -1346,6 +1365,9 @@ static void __init tegra114_clock_init(struct device_= node *np) tegra_super_clk_gen4_init(clk_base, pmc_base, tegra114_clks, &pll_x_params); =20 + tegra_init_special_resets(1, tegra114_reset_assert, + tegra114_reset_deassert); + tegra_add_of_provider(np, of_clk_src_onecell_get); tegra_register_devclks(devclks, ARRAY_SIZE(devclks)); =20 diff --git a/drivers/clk/tegra/clk.h b/drivers/clk/tegra/clk.h index 5d80d8b79b8e..58e860b18e5e 100644 --- a/drivers/clk/tegra/clk.h +++ b/drivers/clk/tegra/clk.h @@ -898,8 +898,6 @@ static inline bool tegra124_clk_emc_driver_available(st= ruct clk_hw *emc_hw) void tegra114_clock_tune_cpu_trimmers_high(void); void tegra114_clock_tune_cpu_trimmers_low(void); void tegra114_clock_tune_cpu_trimmers_init(void); -void tegra114_clock_assert_dfll_dvco_reset(void); -void tegra114_clock_deassert_dfll_dvco_reset(void); =20 typedef void (*tegra_clk_apply_init_table_func)(void); extern tegra_clk_apply_init_table_func tegra_clk_apply_init_table; --=20 2.48.1 From nobody Fri Oct 3 14:34:22 2025 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9FA4B3164AE; Fri, 29 Aug 2025 12:23:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756470184; cv=none; b=JZzH9oknmZ9vKkjS8TMVKLdxCMtuhttPfuK+bkYpScFdPqbEmmX/8VvHKdpprO3UF/+LbXXgilyXnCWlPD3G12IBJLZV7K1qRJ08xWuhrWjqsry89WMUEZza0Gr3+pn5Q8rI2WRHuzKD1p8fnm62/oaTBGDAJxWx92YgHFxdDoo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756470184; c=relaxed/simple; bh=Y9X4/pFEZ/jqNHGzT4QzO8tSkZUPgemRkLLF2GhJ7yA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NEF7GnH1iJCMxDnqmXAtIMUdGReqhLy7wB75Bhfs2Z307JMh4FhFFI2JNGkyBN9o5L86O1R5SjBcqlkptoFyZ+aezDDs4ac+GdVcQoE3zzQSyfRcBIip1FzPpUqyBsdbLFPJe3zj3M+Iiwd2pvw4HPuPmKdUBVKCKBuhZhNdA7c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=LBJSbOMj; arc=none smtp.client-ip=209.85.218.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LBJSbOMj" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-afcb7a3b3a9so301730066b.2; Fri, 29 Aug 2025 05:23:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756470181; x=1757074981; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NFa04zWUwS/vePGbar2eG0NQLNdNc6lautBIfeJ2nEg=; b=LBJSbOMjCgCFmpBm0q0l8rFHfosEldJFvvaL+82Wxf6s18BD+69YNoa9Q0A1m0q7Wf q47WlXZ0Mu0BSa8S+Jt8hSDpxQlDHuFcDEp6NkPhkYUPMAjm3hnxUPd1a/H3dpBwQjsK /h+2AvdIAbDyKlOvY7aP/m7AvThneseczTGuf7nPuqu9iiZfx39nYtug475Fvv+9QOE0 fzos5TTSkwvmp9toOTjjZ9tCCzqIlcC9uFwMvntzUEYnmKSqoTRluk2/pdWFLzOHCY9S ySfQCQu1UNlQ7h8R2xhf0qaNzXrWar9tWv9PNrNy/3DvHzuJq8aYcMONE+xEAxjzgBiC 0nhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756470181; x=1757074981; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NFa04zWUwS/vePGbar2eG0NQLNdNc6lautBIfeJ2nEg=; b=kGnwepUqM/o6UowFKzL2H6KRnmjsHzJPlfAM+4/P943KFhFYUZkFeC9hkLnPo0TpNr HUZhFPhWoAC5BFnoNSHn/x77yzBWWQAOTUUX7cuFQDxVoLfUcqoNHww9QCMrhRQlBT/Y aFf+7SQoUe+uj0A9NLwjDXkjsOjQzRQUE1T2ep5FHPRhL8D9RPrCW8sjL3YIeL8KLmFa 8HkwL21+B0QPW6lsqaOaO3VI1zR4m5I7RfmccUTfFiHeUC5/vU4W2/GozPx1LdH6B9Ty z/E/wLYf7nPoTLW7HaM52r1i9wORGSrAXmt/4c/Xji33IcDFyFzVirtWt38jsuUntW/m 35VQ== X-Forwarded-Encrypted: i=1; AJvYcCUB/4TY/SQOjL2ncsJ2334sOgsESoaG22FfMqBq1R1lprrd+6LH4CDcyS2CL705OhO3Zo/NE6uFPeg=@vger.kernel.org, AJvYcCWaQDzoMv4oI0t/etbDhCf230GVi+gyqb9quidR3Tu3tQQB6weY9L7deWfI1pj8AubKmKOOtg8oSmqLktU=@vger.kernel.org, AJvYcCX9qXwJwjYwczbrrwLoc8Kqddjg0lqXIJjHzlH66477WUI8ikmNgsJqxIHcydfU/fnCj4mlqpWiw2Io/aWk@vger.kernel.org X-Gm-Message-State: AOJu0Yzkblj4NYfUQlLEvY7LXDIJXBlI0s/oUpij9Ypj5yupCp6WIWM8 RBQ9M+DNbe/r3MsDToxj2Twph/zlJN2Acxfy4/UVVBdw17fKatx6RNmS X-Gm-Gg: ASbGnctJxJcGy6rUjQXqrBCleoZaHvy758XUbTcHvYatKOMJVHEHGlTfj979RPz6Be4 R1jBDDfdD25o02aouMZDC/HqtmIG5YCvyRkI/UW0aGpx7EJIll+MqO4I/TphE7crb05mgr22fvx WLdPqREObK48s62L7PpXD6j1SdMtG5SQEGdqM2gZKiw1ic4ZWKOt6BOFbr09i3tEdcGGLQ4ZPqo VrHvu2zDLyn07lA02tYluYGOHnjJdO+04AvUs+KEGEZrw9pStxGCtVPAy0wLd+WgZ486yQsNEpr 6DQORJykztkYNLdLE5WMBVF9F3xVSk/uZ3PTnSQixmB9Moaox3BRwxuv2uXVodaQ5yOzL2UFwMo JY/9vSFwfg29IxQ== X-Google-Smtp-Source: AGHT+IERejgz6McPc+w/ZcbKO/FrHTTeG2xQWmNxk1LXaXUqwT/PBJsTcfEC/KyzTqPZ978oUnqf+Q== X-Received: by 2002:a17:906:d103:b0:afe:7027:56f9 with SMTP id a640c23a62f3a-afe70275e3amr1631768766b.17.1756470180705; Fri, 29 Aug 2025 05:23:00 -0700 (PDT) Received: from xeon.. ([188.163.112.70]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd7047sm188662166b.51.2025.08.29.05.22.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 05:23:00 -0700 (PDT) From: Svyatoslav Ryhel To: Thierry Reding , Thierry Reding , Mikko Perttunen , Jonathan Hunter , Prashant Gaikwad , Michael Turquette , Stephen Boyd , Philipp Zabel , Svyatoslav Ryhel , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: devicetree@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org Subject: [PATCH v5 3/4] clk: tegra: dfll: add CVB tables for Tegra114 Date: Fri, 29 Aug 2025 15:22:33 +0300 Message-ID: <20250829122235.119745-4-clamor95@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250829122235.119745-1-clamor95@gmail.com> References: <20250829122235.119745-1-clamor95@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Extend the Tegra124 DFLL driver to include configuration settings required for Tegra114 compatibility. Signed-off-by: Svyatoslav Ryhel Reviewed-by: Mikko Perttunen --- drivers/clk/tegra/Kconfig | 2 +- drivers/clk/tegra/clk-tegra124-dfll-fcpu.c | 158 +++++++++++++++++---- 2 files changed, 132 insertions(+), 28 deletions(-) diff --git a/drivers/clk/tegra/Kconfig b/drivers/clk/tegra/Kconfig index 90df619dc087..62147a069606 100644 --- a/drivers/clk/tegra/Kconfig +++ b/drivers/clk/tegra/Kconfig @@ -4,7 +4,7 @@ config CLK_TEGRA_BPMP depends on TEGRA_BPMP =20 config TEGRA_CLK_DFLL - depends on ARCH_TEGRA_124_SOC || ARCH_TEGRA_210_SOC + depends on ARCH_TEGRA_114_SOC || ARCH_TEGRA_124_SOC || ARCH_TEGRA_210_SOC select PM_OPP def_bool y =20 diff --git a/drivers/clk/tegra/clk-tegra124-dfll-fcpu.c b/drivers/clk/tegra= /clk-tegra124-dfll-fcpu.c index 0251618b82c8..1405217fed5d 100644 --- a/drivers/clk/tegra/clk-tegra124-dfll-fcpu.c +++ b/drivers/clk/tegra/clk-tegra124-dfll-fcpu.c @@ -28,6 +28,99 @@ struct dfll_fcpu_data { unsigned int cpu_cvb_tables_size; }; =20 +/* Maximum CPU frequency, indexed by CPU speedo id */ +static const unsigned long tegra114_cpu_max_freq_table[] =3D { + [0] =3D 2040000000UL, + [1] =3D 1810500000UL, + [2] =3D 1912500000UL, + [3] =3D 1810500000UL, +}; + +#define T114_CPU_CVB_TABLE \ + .min_millivolts =3D 1000, \ + .max_millivolts =3D 1320, \ + .speedo_scale =3D 100, \ + .voltage_scale =3D 1000, \ + .entries =3D { \ + { 306000000UL, { 2190643, -141851, 3576 } }, \ + { 408000000UL, { 2250968, -144331, 3576 } }, \ + { 510000000UL, { 2313333, -146811, 3576 } }, \ + { 612000000UL, { 2377738, -149291, 3576 } }, \ + { 714000000UL, { 2444183, -151771, 3576 } }, \ + { 816000000UL, { 2512669, -154251, 3576 } }, \ + { 918000000UL, { 2583194, -156731, 3576 } }, \ + { 1020000000UL, { 2655759, -159211, 3576 } }, \ + { 1122000000UL, { 2730365, -161691, 3576 } }, \ + { 1224000000UL, { 2807010, -164171, 3576 } }, \ + { 1326000000UL, { 2885696, -166651, 3576 } }, \ + { 1428000000UL, { 2966422, -169131, 3576 } }, \ + { 1530000000UL, { 3049183, -171601, 3576 } }, \ + { 1606500000UL, { 3112179, -173451, 3576 } }, \ + { 1708500000UL, { 3198504, -175931, 3576 } }, \ + { 1810500000UL, { 3304747, -179126, 3576 } }, \ + { 1912500000UL, { 3395401, -181606, 3576 } }, \ + { 0UL, { 0, 0, 0 } }, \ + }, \ + .cpu_dfll_data =3D { \ + .tune0_low =3D 0x00b0039d, \ + .tune0_high =3D 0x00b0009d, \ + .tune1 =3D 0x0000001f, \ + .tune_high_min_millivolts =3D 1050, \ + } + +static const struct cvb_table tegra114_cpu_cvb_tables[] =3D { + { + .speedo_id =3D 0, + .process_id =3D -1, + .min_millivolts =3D 1000, + .max_millivolts =3D 1250, + .speedo_scale =3D 100, + .voltage_scale =3D 100, + .entries =3D { + { 306000000UL, { 107330, -1569, 0 } }, + { 408000000UL, { 111250, -1666, 0 } }, + { 510000000UL, { 110000, -1460, 0 } }, + { 612000000UL, { 117290, -1745, 0 } }, + { 714000000UL, { 122700, -1910, 0 } }, + { 816000000UL, { 125620, -1945, 0 } }, + { 918000000UL, { 130560, -2076, 0 } }, + { 1020000000UL, { 137280, -2303, 0 } }, + { 1122000000UL, { 146440, -2660, 0 } }, + { 1224000000UL, { 152190, -2825, 0 } }, + { 1326000000UL, { 157520, -2953, 0 } }, + { 1428000000UL, { 166100, -3261, 0 } }, + { 1530000000UL, { 176410, -3647, 0 } }, + { 1632000000UL, { 189620, -4186, 0 } }, + { 1734000000UL, { 203190, -4725, 0 } }, + { 1836000000UL, { 222670, -5573, 0 } }, + { 1938000000UL, { 256210, -7165, 0 } }, + { 2040000000UL, { 250050, -6544, 0 } }, + { 0UL, { 0, 0, 0 } }, + }, + .cpu_dfll_data =3D { + .tune0_low =3D 0x00b0019d, + .tune0_high =3D 0x00b0019d, + .tune1 =3D 0x0000001f, + .tune_high_min_millivolts =3D 1000, + } + }, + { + .speedo_id =3D 1, + .process_id =3D -1, + T114_CPU_CVB_TABLE + }, + { + .speedo_id =3D 2, + .process_id =3D -1, + T114_CPU_CVB_TABLE + }, + { + .speedo_id =3D 3, + .process_id =3D -1, + T114_CPU_CVB_TABLE + }, +}; + /* Maximum CPU frequency, indexed by CPU speedo id */ static const unsigned long tegra124_cpu_max_freq_table[] =3D { [0] =3D 2014500000UL, @@ -93,7 +186,7 @@ static const unsigned long tegra210_cpu_max_freq_table[]= =3D { [10] =3D 1504500000UL, }; =20 -#define CPU_CVB_TABLE \ +#define T210_CPU_CVB_TABLE \ .speedo_scale =3D 100, \ .voltage_scale =3D 1000, \ .entries =3D { \ @@ -120,7 +213,7 @@ static const unsigned long tegra210_cpu_max_freq_table[= ] =3D { { 0UL, { 0, 0, 0 } }, \ } =20 -#define CPU_CVB_TABLE_XA \ +#define T210_CPU_CVB_TABLE_XA \ .speedo_scale =3D 100, \ .voltage_scale =3D 1000, \ .entries =3D { \ @@ -143,7 +236,7 @@ static const unsigned long tegra210_cpu_max_freq_table[= ] =3D { { 0UL, { 0, 0, 0 } }, \ } =20 -#define CPU_CVB_TABLE_EUCM1 \ +#define T210_CPU_CVB_TABLE_EUCM1 \ .speedo_scale =3D 100, \ .voltage_scale =3D 1000, \ .entries =3D { \ @@ -166,7 +259,7 @@ static const unsigned long tegra210_cpu_max_freq_table[= ] =3D { { 0UL, { 0, 0, 0 } }, \ } =20 -#define CPU_CVB_TABLE_EUCM2 \ +#define T210_CPU_CVB_TABLE_EUCM2 \ .speedo_scale =3D 100, \ .voltage_scale =3D 1000, \ .entries =3D { \ @@ -188,7 +281,7 @@ static const unsigned long tegra210_cpu_max_freq_table[= ] =3D { { 0UL, { 0, 0, 0 } }, \ } =20 -#define CPU_CVB_TABLE_EUCM2_JOINT_RAIL \ +#define T210_CPU_CVB_TABLE_EUCM2_JOINT_RAIL \ .speedo_scale =3D 100, \ .voltage_scale =3D 1000, \ .entries =3D { \ @@ -209,7 +302,7 @@ static const unsigned long tegra210_cpu_max_freq_table[= ] =3D { { 0UL, { 0, 0, 0 } }, \ } =20 -#define CPU_CVB_TABLE_ODN \ +#define T210_CPU_CVB_TABLE_ODN \ .speedo_scale =3D 100, \ .voltage_scale =3D 1000, \ .entries =3D { \ @@ -238,7 +331,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 0, .min_millivolts =3D 840, .max_millivolts =3D 1120, - CPU_CVB_TABLE_EUCM2_JOINT_RAIL, + T210_CPU_CVB_TABLE_EUCM2_JOINT_RAIL, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -251,7 +344,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 1, .min_millivolts =3D 840, .max_millivolts =3D 1120, - CPU_CVB_TABLE_EUCM2_JOINT_RAIL, + T210_CPU_CVB_TABLE_EUCM2_JOINT_RAIL, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -264,7 +357,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 0, .min_millivolts =3D 900, .max_millivolts =3D 1162, - CPU_CVB_TABLE_EUCM2, + T210_CPU_CVB_TABLE_EUCM2, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -276,7 +369,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 1, .min_millivolts =3D 900, .max_millivolts =3D 1162, - CPU_CVB_TABLE_EUCM2, + T210_CPU_CVB_TABLE_EUCM2, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -288,7 +381,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 0, .min_millivolts =3D 900, .max_millivolts =3D 1195, - CPU_CVB_TABLE_EUCM2, + T210_CPU_CVB_TABLE_EUCM2, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -300,7 +393,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 1, .min_millivolts =3D 900, .max_millivolts =3D 1195, - CPU_CVB_TABLE_EUCM2, + T210_CPU_CVB_TABLE_EUCM2, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -312,7 +405,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 0, .min_millivolts =3D 841, .max_millivolts =3D 1227, - CPU_CVB_TABLE_EUCM1, + T210_CPU_CVB_TABLE_EUCM1, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -325,7 +418,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 1, .min_millivolts =3D 841, .max_millivolts =3D 1227, - CPU_CVB_TABLE_EUCM1, + T210_CPU_CVB_TABLE_EUCM1, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -338,7 +431,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 0, .min_millivolts =3D 870, .max_millivolts =3D 1150, - CPU_CVB_TABLE, + T210_CPU_CVB_TABLE, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune1 =3D 0x20091d9, @@ -349,7 +442,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 1, .min_millivolts =3D 870, .max_millivolts =3D 1150, - CPU_CVB_TABLE, + T210_CPU_CVB_TABLE, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune1 =3D 0x25501d0, @@ -360,7 +453,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 0, .min_millivolts =3D 818, .max_millivolts =3D 1227, - CPU_CVB_TABLE, + T210_CPU_CVB_TABLE, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -373,7 +466,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 1, .min_millivolts =3D 818, .max_millivolts =3D 1227, - CPU_CVB_TABLE, + T210_CPU_CVB_TABLE, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -386,7 +479,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D -1, .min_millivolts =3D 918, .max_millivolts =3D 1113, - CPU_CVB_TABLE_XA, + T210_CPU_CVB_TABLE_XA, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune1 =3D 0x17711BD, @@ -397,7 +490,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 0, .min_millivolts =3D 825, .max_millivolts =3D 1227, - CPU_CVB_TABLE_ODN, + T210_CPU_CVB_TABLE_ODN, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -410,7 +503,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 1, .min_millivolts =3D 825, .max_millivolts =3D 1227, - CPU_CVB_TABLE_ODN, + T210_CPU_CVB_TABLE_ODN, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -423,7 +516,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 0, .min_millivolts =3D 870, .max_millivolts =3D 1227, - CPU_CVB_TABLE, + T210_CPU_CVB_TABLE, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune1 =3D 0x20091d9, @@ -434,7 +527,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 1, .min_millivolts =3D 870, .max_millivolts =3D 1227, - CPU_CVB_TABLE, + T210_CPU_CVB_TABLE, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune1 =3D 0x25501d0, @@ -445,7 +538,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 0, .min_millivolts =3D 837, .max_millivolts =3D 1227, - CPU_CVB_TABLE, + T210_CPU_CVB_TABLE, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -458,7 +551,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 1, .min_millivolts =3D 837, .max_millivolts =3D 1227, - CPU_CVB_TABLE, + T210_CPU_CVB_TABLE, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -471,7 +564,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 0, .min_millivolts =3D 850, .max_millivolts =3D 1170, - CPU_CVB_TABLE, + T210_CPU_CVB_TABLE, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -484,7 +577,7 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { .process_id =3D 1, .min_millivolts =3D 850, .max_millivolts =3D 1170, - CPU_CVB_TABLE, + T210_CPU_CVB_TABLE, .cpu_dfll_data =3D { .tune0_low =3D 0xffead0ff, .tune0_high =3D 0xffead0ff, @@ -494,6 +587,13 @@ static struct cvb_table tegra210_cpu_cvb_tables[] =3D { }, }; =20 +static const struct dfll_fcpu_data tegra114_dfll_fcpu_data =3D { + .cpu_max_freq_table =3D tegra114_cpu_max_freq_table, + .cpu_max_freq_table_size =3D ARRAY_SIZE(tegra114_cpu_max_freq_table), + .cpu_cvb_tables =3D tegra114_cpu_cvb_tables, + .cpu_cvb_tables_size =3D ARRAY_SIZE(tegra114_cpu_cvb_tables) +}; + static const struct dfll_fcpu_data tegra124_dfll_fcpu_data =3D { .cpu_max_freq_table =3D tegra124_cpu_max_freq_table, .cpu_max_freq_table_size =3D ARRAY_SIZE(tegra124_cpu_max_freq_table), @@ -509,6 +609,10 @@ static const struct dfll_fcpu_data tegra210_dfll_fcpu_= data =3D { }; =20 static const struct of_device_id tegra124_dfll_fcpu_of_match[] =3D { + { + .compatible =3D "nvidia,tegra114-dfll", + .data =3D &tegra114_dfll_fcpu_data, + }, { .compatible =3D "nvidia,tegra124-dfll", .data =3D &tegra124_dfll_fcpu_data, --=20 2.48.1 From nobody Fri Oct 3 14:34:22 2025 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A96FA317715; Fri, 29 Aug 2025 12:23:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756470185; cv=none; b=TLf08DU2wNNvIpq1lH9DwxIMaUYzhuayI9vr4YIZ4Q/FbXufiexfsj2DyMdS/WG/sNlGT3i2TEg0I39CLlccE+I7BXyg2Z/D5GIhbriJ4pEyg52HsSVpkYR7INbqnZeiXxlkbbi2GgmkIhONEU3Wx7nY5RklrBtYzVF7xyFktUs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756470185; c=relaxed/simple; bh=MXUu9QPmMd3rT7yOj7o+ms6cmx2K03QYdIn0E/ZLtF0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OwNrE/giFPdLBUxMepXyXRf2mooG8eapBnNrZgaFBbCZ7RRh3VEwsLha2vDbeMU0KqGZolU7+xFX+R21yClwjL53r4M2AbLzlM99zVNeQwNDkzYGKlkUymNezK+RX0f0fbjsdInt32mVZd5ryL3AKXTqnGxSqXtlt9/W+9c1qyQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=H5WpQMN7; arc=none smtp.client-ip=209.85.218.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="H5WpQMN7" Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-afe9358fe77so257325566b.1; Fri, 29 Aug 2025 05:23:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756470182; x=1757074982; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QV/43b5wZcr7oH1WYrVSWi9FWU3xmsqmK7c9FuV3Om4=; b=H5WpQMN7V8d4tzjyimoWHoqELUiaBaEjES+VoiPogF/yRdSBjPtgmDZWNGGxXbJhj5 Ti72+CPKskT2fmQMePMG+J4FYhij5sWJPiFURaJ1AvXCFclOVSn7HDEPqpHqFimKBzJd uWeFldfBLjk/1RYAR5f5yD7PxHjk61ZBRPfgyYFzCLzV06JYkpjNbugMeDqfp8rDvIEH 9m7a/uUR6wK7kwL2GPYqyz/GLPIpWF3tdBWYQZlsDzwV/OEW9TeWEUfxK0NbnSruDPrl jdiG7yqw9jlS7jFYDM7XsSvI/GxW2hrF4/1C8P0aMPwr/PYRX4J/Wioqwaxz1evsPYmY ACeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756470182; x=1757074982; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QV/43b5wZcr7oH1WYrVSWi9FWU3xmsqmK7c9FuV3Om4=; b=GPaOkied5dZ9ju8LZUmZQPNdXZ10RRfwrlqBjD8CSMHE5WoDMVygWE6oqfSiRP4gL4 oA2nE7ZjXIDwga9VSaCuy8WC4mNn0l6oKjhhW0IHIROUqUWyHQ2RPJW14IBcCpvhx5u/ wk/w8pTl1Tnrx/R8KRLm7U9GiGPUEY8blwNJV28zVlnpIiq/CjnRVhzcN/PmP8gf7qha bXbfvNlrjzirBGZ+gU0TlP3yU7A6t1p+dhx8LHRaZG9GIIDOB0jn6KGiaLPlmR0/lcDg PLwafaOPn56ypP4BGj11fis6hIq0IoEymM1e9FOsEkLujodi7Tft+mRYQlKJL2vRpiHl gQFA== X-Forwarded-Encrypted: i=1; AJvYcCXDCiALGy6vNYO4aGBSPOnminD0O1diZEZd4KGxR4w8SdVIileJ7/KO5n+y6Z0UTPUU4EMVmmrcCJExSVQz@vger.kernel.org, AJvYcCXEYWuCZnZOLKtulOfxq0x/di3YwC4LNzxXxBrS5BfD2peEhDLPvmbVngB8hhH1SVJm4VeZrFTnBec=@vger.kernel.org, AJvYcCXdw78i9dqWmwYxBQKZM8G8D/oPVghB4nNycVotoHjj59rrnHagZa7JOGb+qci9snOrc6hxhvU8zLGHOp8=@vger.kernel.org X-Gm-Message-State: AOJu0YwIMqYUVgtjAoYW7sGYXYOthjC+0heoE5RHeiEV6ZziOvkRw+Ya 5MLZuT11318wjSPLliEzSVIV6T5FZaZJqBLz5Sdkknzl9RCT9J3QWuJA X-Gm-Gg: ASbGncuKylG5OuNCOc7AyCpsP4IEwimMUdyFtKNf1P8QQPaQfrQSdZcVJq5SNQIKIKz Rd/DikTAQYO5jotGMaF9whMgGuBYUEU9A6x4N47gxk7VzD1+4zZmexbIj+E/mJuABhp0FmzQtd7 Iaa5qZTVaFQqlJRh6Fz1LaImXUlWmNYCPwJUh87EGX67nCiIzXo/jR2QQ7oH5cduC8O/9saTVZ7 YrBlDuiJzr3xYW2xMBKHuJwakd2ensFTC9XwnzZkcUpgpdk2wYYPQdJ9ntBzlhO6Z6khxdGk5B9 r8qNSaI0N6xYSokOyWiI8Hsi9rsvXDUOINUE+L7EuIgZeBeXHcO8aeUPMUPQDtKXgzMpKvApxcW AUc64cbYZCyjtCaj+yhZtBTPo X-Google-Smtp-Source: AGHT+IGvpJb6E7O7Cx1ORoFMxIhbdRAYFHmg2T22N2yoFC3HZ0zze+lDuibNTZqMBpYt2X2E/gXPrQ== X-Received: by 2002:a17:907:2d2c:b0:ad8:a935:b905 with SMTP id a640c23a62f3a-afe29031d11mr2364154966b.22.1756470181806; Fri, 29 Aug 2025 05:23:01 -0700 (PDT) Received: from xeon.. ([188.163.112.70]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd7047sm188662166b.51.2025.08.29.05.23.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 05:23:01 -0700 (PDT) From: Svyatoslav Ryhel To: Thierry Reding , Thierry Reding , Mikko Perttunen , Jonathan Hunter , Prashant Gaikwad , Michael Turquette , Stephen Boyd , Philipp Zabel , Svyatoslav Ryhel , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: devicetree@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org Subject: [PATCH v5 4/4] ARM: tegra: Add DFLL clock support for Tegra114 Date: Fri, 29 Aug 2025 15:22:34 +0300 Message-ID: <20250829122235.119745-5-clamor95@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250829122235.119745-1-clamor95@gmail.com> References: <20250829122235.119745-1-clamor95@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add DFLL clock node to common Tegra114 device tree along with clocks property to cpu node. Signed-off-by: Svyatoslav Ryhel Reviewed-by: Mikko Perttunen --- arch/arm/boot/dts/nvidia/tegra114.dtsi | 33 ++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/arch/arm/boot/dts/nvidia/tegra114.dtsi b/arch/arm/boot/dts/nvi= dia/tegra114.dtsi index 4caf2073c556..a2a50f959927 100644 --- a/arch/arm/boot/dts/nvidia/tegra114.dtsi +++ b/arch/arm/boot/dts/nvidia/tegra114.dtsi @@ -4,6 +4,7 @@ #include #include #include +#include #include =20 / { @@ -693,6 +694,29 @@ mipi: mipi@700e3000 { #nvidia,mipi-calibrate-cells =3D <1>; }; =20 + dfll: clock@70110000 { + compatible =3D "nvidia,tegra114-dfll"; + reg =3D <0x70110000 0x100>, /* DFLL control */ + <0x70110000 0x100>, /* I2C output control */ + <0x70110100 0x100>, /* Integrated I2C controller */ + <0x70110200 0x100>; /* Look-up table RAM */ + interrupts =3D ; + clocks =3D <&tegra_car TEGRA114_CLK_DFLL_SOC>, + <&tegra_car TEGRA114_CLK_DFLL_REF>, + <&tegra_car TEGRA114_CLK_I2C5>; + clock-names =3D "soc", "ref", "i2c"; + resets =3D <&tegra_car TEGRA114_RST_DFLL_DVCO>; + reset-names =3D "dvco"; + #clock-cells =3D <0>; + clock-output-names =3D "dfllCPU_out"; + nvidia,droop-ctrl =3D <0x00000f00>; + nvidia,force-mode =3D <1>; + nvidia,cf =3D <10>; + nvidia,ci =3D <0>; + nvidia,cg =3D <2>; + status =3D "disabled"; + }; + mmc@78000000 { compatible =3D "nvidia,tegra114-sdhci"; reg =3D <0x78000000 0x200>; @@ -824,6 +848,15 @@ cpu0: cpu@0 { device_type =3D "cpu"; compatible =3D "arm,cortex-a15"; reg =3D <0>; + + clocks =3D <&tegra_car TEGRA114_CLK_CCLK_G>, + <&tegra_car TEGRA114_CLK_CCLK_LP>, + <&tegra_car TEGRA114_CLK_PLL_X>, + <&tegra_car TEGRA114_CLK_PLL_P>, + <&dfll>; + clock-names =3D "cpu_g", "cpu_lp", "pll_x", "pll_p", "dfll"; + /* FIXME: what's the actual transition time? */ + clock-latency =3D <300000>; }; =20 cpu1: cpu@1 { --=20 2.48.1