From nobody Fri Oct 3 16:48:24 2025 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) (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 1F197273808; Thu, 28 Aug 2025 05:44:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756359867; cv=none; b=EqHfIoLWz2ufQSBkykMTTxBLwVXxWyF4iaBJtAhxLv80+PdWfj/l8sxiCFnL9szTk43PbrGA3M0G0VpeZu2jh6UBN3o2KIotKp3MGQcXeYEVnvnsFw19Gq3d9l8LtX9mOC1N9hpSQLhjDyVRS8CUi+H3+9MmQEICYxROWDa8M3A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756359867; c=relaxed/simple; bh=96edCYZ/EaTjrgkJOXR/cEUQzco83yGGUYqlBhsOXFo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ciYLrX0IJbVwHD5+UwQWKfjfwmS7azfN1FECyfbf6b/tYt4uIHSwKrcmV2UapEoUWoOk3I39aiMyNUGj495YT5dq7QyZT+9ryk8iMCyjVryTGagcvHXprZg7U5FNXAf13T+3F36VyadcWoZMO/fMiH8EDlJGK9FIOuqrr384wTI= 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=MmXb3of8; arc=none smtp.client-ip=209.85.208.51 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="MmXb3of8" Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-61cd1046d42so686904a12.3; Wed, 27 Aug 2025 22:44:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756359864; x=1756964664; 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=K6o/Zimb3QVL23u1xpZEyW/FGO4vWjtp/1DqQ0zMljE=; b=MmXb3of8q+YlQ7ES5F6mpYyGXdePsvqEJENew0EkYYXSIwXtj9PiatNVgmKBHg6O1+ gV4Ev6y/HoILEdhtEytupOwQB7/EANGdq5RAL6LEnpYSVHiuCD7iT/v7DS+6v2Zo14ns KSpdtF6DidFPwLOPwf2eo2IOkFjlqFbNZrJqRc+AAJrhijRCud2Gc+Do4iypAeNWHaHC wA3gUuBu56jyYmI3nAN3geWXigqrcAVua62n9LUON3vr/9u6GPd+VoGbjgms4PFsliYR Nsr7wiWz5teORNblatz4/GvSKA79qK1HN0U4i43yKY59QhH7QXHfMnZc4smtfOEgILaE 6Xuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756359864; x=1756964664; 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=K6o/Zimb3QVL23u1xpZEyW/FGO4vWjtp/1DqQ0zMljE=; b=n8uxTrejZD65xHuMyECNdXSk79/ov9gTAJ0PCjvZCt8UAWpctrKBYcz8YSKQh6BaWZ ttayHCFAJupVui8ePW+jgjzYI2A4QRStoQdWctGJ9uyoiIfyD0koShHU4r4JwIQCPsgX n0VhfLnXinxu2sgH34Ms53R+xIbDFU6NTjlX5K5u4sH1uMMK+rV9hQNJTxPDhV5zpxxw GllPF6pR9zwfJeREj8/GYxKsthKVW1jw3o0uHYtVDyCM1umExYCQD3+cVMr9OsxpZiw3 wSi9V8WobWF865xrNDk87x7KUgHoFfz29Mr/G7YuQMK78BLywYnglnqfSFoFHOQwlt/x UJGw== X-Forwarded-Encrypted: i=1; AJvYcCUDWpGkaLzEjibU3M+S3pMaqGITY0ACzB6DfP3EGuye3iXUhm5/XamXy5EMa5bDLGIX3fKPhzVuyaGVTC0D@vger.kernel.org, AJvYcCX5K37xWs2U+rx87yevSEN4H2w7Ts4cUcS7P/wyl6vZzt+hScJ3vC0gBCuveAt7WjyYswF2tNXTrn8=@vger.kernel.org, AJvYcCXSRFhSikfNIAh9mLl4QuyyJ1a0VKE2U/pHCDA34oRLRh6WQX/FI4S6Zv46KopyvtjS/niDlDamgysDrsE=@vger.kernel.org X-Gm-Message-State: AOJu0YyryrcSAlujF1e+yz2QumHugzqnayukg57iNGLbtU2xlQlpMyF5 I7JwppEBjpF7tKmBe3KwCictWgaZd/ZPZDGqqlF4YbMIIsqarBnh9UoX X-Gm-Gg: ASbGncvAaI7QlVShtbgJo5IBza8WwBIBnooqzSX+USFa5F8p4RyKSxckVAOWug+DcjQ aH/aouR+FJwmjmJDSYG54A/II4Y8Hi4WGNEfEi6TRmZnOVcnvRlcyMIl5NCxfsvVbmRnEwpthOw Z6T+aywtgbRIVgHu/U0/BzDzCv3qh/+aYxXqqgCd/H5oC9b2tNMtrkas5aHKiXNvZGICPcuIXF4 izaUaMqQvW3O+2kn57VvIU1nv7gAzo8Wxb2Zv0fumpw4FJBs9pWmqiqC+A+lYF0BLUxx87v0nCJ GNL5eK96NtXvADB/nDguN2+4hGWy5ja6x2+C19ZDubB7ZI/OAPHgVWOpNlevHlXRYxErAh83ruv k8Bao8vLE9ndih028SEHNDd08 X-Google-Smtp-Source: AGHT+IExIqmyqwtJ8qbngtgtYqgIBUhSPtMOSfWiRKn7+rE5u91qLkEv0/hIPHClbNfEmHsfmqZZHQ== X-Received: by 2002:a05:6402:1e8e:b0:61c:24da:c76 with SMTP id 4fb4d7f45d1cf-61c24da1352mr16101470a12.9.1756359864320; Wed, 27 Aug 2025 22:44:24 -0700 (PDT) Received: from xeon.. ([188.163.112.70]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-61cbbdac051sm2102841a12.29.2025.08.27.22.44.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Aug 2025 22:44:23 -0700 (PDT) From: Svyatoslav Ryhel To: Thierry Reding , Thierry Reding , Jonathan Hunter , Prashant Gaikwad , Michael Turquette , Stephen Boyd , Philipp Zabel , Svyatoslav Ryhel , Mikko Perttunen , 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 v4 1/4] dt-bindings: reset: add Tegra114 car header Date: Thu, 28 Aug 2025 08:44:00 +0300 Message-ID: <20250828054403.7112-2-clamor95@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250828054403.7112-1-clamor95@gmail.com> References: <20250828054403.7112-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 --- include/dt-bindings/reset/tegra114-car.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 include/dt-bindings/reset/tegra114-car.h diff --git a/include/dt-bindings/reset/tegra114-car.h b/include/dt-bindings= /reset/tegra114-car.h new file mode 100644 index 000000000000..d7908d810ddf --- /dev/null +++ b/include/dt-bindings/reset/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_TEGRA114_CAR_H +#define _DT_BINDINGS_RESET_TEGRA114_CAR_H + +#define TEGRA114_RESET(x) (5 * 32 + (x)) +#define TEGRA114_RST_DFLL_DVCO TEGRA114_RESET(0) + +#endif /* _DT_BINDINGS_RESET_TEGRA114_CAR_H */ --=20 2.48.1 From nobody Fri Oct 3 16:48:24 2025 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) (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 5057D273D9E; Thu, 28 Aug 2025 05:44:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756359869; cv=none; b=ZahbTeVPjom3GQ0BY/gC7tUQQ5v42so4nBuR9v5Bzixslan3sP9XzW1+x6kS1aGs4HsOvRz+Z32BYiLwNENpWUtBFtYt20YezJmxfMWt0mwy5D4WswinT+Q36PnvJJzpcm871WfM39r/niAH+uzNiM/2SINUgTe4eUix3E1ZOxw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756359869; c=relaxed/simple; bh=GpRd2cpH6bm74iiJrIiNj/rI7kKtJ+ilaAS95vZnTNg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g0K6LPFa7oWoOno0gLHgOBe703sIG13RkzTc09++DYNfd29LHS30WWXJZLp7nRbcvfKHvtR2iKS6MQNqm+eoM55NR8MmWdFGlzU0xpOY62oY9B7a/imHbheAnWm/8hi5LePINQBSjwvji9SjVqJ91CujZe8UrBLjtJhUcRE8i5E= 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=TwgZw2jJ; arc=none smtp.client-ip=209.85.208.54 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="TwgZw2jJ" Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-61c26f3cf0dso924428a12.1; Wed, 27 Aug 2025 22:44:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756359865; x=1756964665; 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=W+qNC6Houx0KRgodlm7Y1i9Tpp4N5G2Y1//qJ64dYy0=; b=TwgZw2jJIYj7n7OEyrhashbboH6EC0zGc+8AgRvv3u2Yg9KuCgUzuzRLcS9qU+dwb2 XFnQwrA/Dc4tadwQsSlqHrXGZnAN2MAlV5HDE2M4NoekTSieaUEkoHvCeOAT9lG93oef p33sB3s8NZUOEUjWl38mg6ZIdH+lPNOsbQFB70PM5fhfGYoAr3qaTWBJ3jXaMZeXGn09 IglMSa5OyT5cOW5gVYpXv1cdTNOiUTBQU8/mhUuzciEriNpJevzEkgM1zZz3ZJUjLwL2 chTNYoRYh+l2TgRbRgO5BBycycJ+7tSFN8AAXyv0xo/xUtzNzjsqTsRBgicgeYL9gn8l eIhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756359865; x=1756964665; 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=W+qNC6Houx0KRgodlm7Y1i9Tpp4N5G2Y1//qJ64dYy0=; b=cHSJIR4vQ2leHyX6IpOvHrWrNb520VY8VS788hebHs9xlkT+oYBvrhMQ9GK25jjc7D Bz9AjiQ2OUb1RpyL/p2ex8EVxhiaZmNVsi9QfsHW9ArMYjhTwNG7+ocoh9p6qQdbliUy +tLTu+JRGo74Bpgr3FKR/ZR/IgqdbZ3v932dExKDVCdlGL8/jh47sUCGt+kqpC6/R+L1 5q17OhRqm4rSOU9qHYFAkXvv/Ns7xbxgD3EU2kuT2UqwXGI/v2dUGmM64QiVF1AriW0D IhclTXwsDZ11sL3nQyJsQUHAi4EuY7hTHf0EHvfsZbkifUyaChEy+rxpSMfQL3H/rf3w +Brg== X-Forwarded-Encrypted: i=1; AJvYcCUeS/AeC/IQHbjzRqcOZeF4TokQa3CaSkwjnj3MMzxcyiWSvwOljCb2NnjGVpEOirekYMfHJETZW0ewouTa@vger.kernel.org, AJvYcCV1UyWe6+lUmtAUEz+y9H8sgYZAWikIgwlTNv9kdfrDHqPZWfiUd57B8lkvYnAnhw0euDiWH8kIfio=@vger.kernel.org, AJvYcCVYA0l1kccLmVBAnTCwiM5tCAIfxwmIMs2Mpq1yiPnth4ubZGCKawSpcfJU1ILhNw6siBhHj6bN1BvMOXw=@vger.kernel.org X-Gm-Message-State: AOJu0Ywb/hA5jWFX0ymGu/GOJNukKt6D960SrQcY1UuUB7ObIE0Pisid qSRK6SrdxzXewxSFemvrIwivH+JTyVHR7nN5M+ukA4+oVE8IjHYMme3x X-Gm-Gg: ASbGncugTpwxTOLZ40twEAg4xMmrU+Cwvgz4Et4L6vi+ucL8lZRooMnwfjCrTsu9pNW zmOAiGvLTNYMToj5LAgyq1zCfraBvzympSHrFDAOiXT8CT+fXAWRgcui18EYtnchtNua89kAA5Q bPqL+AIAhrz7r2+l4ajaIMz5mEgcPpw+sf7na6l3zoBqzXD+bFSpV1L29+CuSmoHPwXGR8m8etc r866uA3ADSOHJqAFSKo5wtsiec3c1VN2nX9STC3gzRAJz7yGbF9PNolW9LF06Bzw7wvhpKDlOUK gKu++SMINQ06E81LMGYFz/NKHX44aP3Z9CtiPIBI1eWqrPnJrZp0gszPZ3mIVpLjs1y5h0ojHiI 8n3mO7Vzx6TPTCpPoiGl2Anhu X-Google-Smtp-Source: AGHT+IGGy9zZsTgJWfxlccngGFi62cdbcQfuehK7s3yXAK/qvKmMerp+GXrggcwKdHC4lHY74p4Bbw== X-Received: by 2002:a05:6402:52c4:b0:607:28c9:c3c9 with SMTP id 4fb4d7f45d1cf-61c1b453182mr19880869a12.6.1756359865506; Wed, 27 Aug 2025 22:44:25 -0700 (PDT) Received: from xeon.. ([188.163.112.70]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-61cbbdac051sm2102841a12.29.2025.08.27.22.44.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Aug 2025 22:44:25 -0700 (PDT) From: Svyatoslav Ryhel To: Thierry Reding , Thierry Reding , Jonathan Hunter , Prashant Gaikwad , Michael Turquette , Stephen Boyd , Philipp Zabel , Svyatoslav Ryhel , Mikko Perttunen , 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 v4 2/4] clk: tegra: add DFLL DVCO reset control for Tegra114 Date: Thu, 28 Aug 2025 08:44:01 +0300 Message-ID: <20250828054403.7112-3-clamor95@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250828054403.7112-1-clamor95@gmail.com> References: <20250828054403.7112-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..3eaa97c7d79e 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 16:48:24 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 B1D6F274B5E; Thu, 28 Aug 2025 05:44:28 +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=1756359870; cv=none; b=D0W8Ldd+Qi+j6lL93ghNuXixVVVTY4DZdwhr55m+b5RNbcWh8uRky+W12psQdJN0dEpVBX5ocqfuRXlENNUivxTJGaD9Zt6ZBpograDrmBwYJlUziW2l5lRCLGqmCK8SSUYp5mxqJVv4zWDh9MyrXLo5ySbm7b+cSkjHirO/Raw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756359870; c=relaxed/simple; bh=Y9X4/pFEZ/jqNHGzT4QzO8tSkZUPgemRkLLF2GhJ7yA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=S1a9oFapcQ94en9AwO6T6TACb6kqkJmzsznSnbrCJK02b747heq/YAK2L4CH/tRlbUKlfxRtOV4FZb+1GDgOfwTzWlUdU2KLpzi2nj/OhrPf1AOrwjA+gseI6LdfM6/VSah3QBqvA2cWEoR4YXZbtBALOvM/7GjEioswuPIFygw= 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=S1M2e97g; 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="S1M2e97g" Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-61cd3748c6dso842839a12.3; Wed, 27 Aug 2025 22:44:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756359867; x=1756964667; 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=S1M2e97gKha+cEldhWyQBUemzhPutxAsJFDzUSHXPI55DFlFIHJZ+rPiYiSJ61THbR 9nV9lj8SO9yCDdfuKzS6rtCM7m5ml2EKwvYvAqBK0HH7Y/bRUvh4tBDF7SD/4lGpFC0V qoY+Tn95Twon2QBeGM/gz8xPeOC0huwyBRCqUnow8DPFyTi5+9jPhIVDNBLAHbE/dFxQ cZhCKzCl4wmeuq8NFFRki3Y7/kJMtmMbEsjMWrCbFuTqcqYgQcxQMvZ+M7XvdNRRXXhn 49J5qniTVhF1cCEuwsGjyH2lVfzOOjd+xHOZfc+fAr4A9o1zmONO+cru6F/FnnlcjqtH uQPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756359867; x=1756964667; 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=ClBsWm2Jxvx8SjOHrA9jLi5TXP3/ggFdtS1H0GUgdxwQ5TmsquM63pfa0s7D2g6zpI k03cZg+wmggfW1ishbMRYSHPVimri4DlmYa4loVtOThXx4DZ5aiFA/asJBkWDGLlTyQ2 wupKIvKw6cvYI+9axWOXfa6QRrflKE0yeCkySliv4qdppdHH3IusjdOE8blNH9AM7huI H9U0vKlcmIcwivgBX1UcYfrbjsATBYJJIEnFpLR1+71xaaflxeIifWBj5ATAWmyaciTB VqJ5Ya9AFex5L2YlL4fzwev5s9Trlk75g1XnU3CbM6fzODNuPGRoQCGnNj26UWd0x9fh DRag== X-Forwarded-Encrypted: i=1; AJvYcCUBqjtrDqLQ7+je3NtRndT+Pw3XUvlIGyezkgzf7KIX//dDyHgoNWKDkbs0vZA6GQCRKIJ2L+EJEx0KCQnE@vger.kernel.org, AJvYcCUfoS/2GPKMs4FyeBSJz9HwxO+QlsM+I67SfLg2v1zP6/VHcM1X9rwb6EBwSs/3iDX/k+0lyUwEkAJF/2M=@vger.kernel.org, AJvYcCXhC1nl0e+a4wPZH3vPb29DD1IWJ3a0TZszeBnrPczOtwfoOFPzh/U8+BLCZFxDylSmWwj34z5h+7k=@vger.kernel.org X-Gm-Message-State: AOJu0Ywj74cNfFMyNng0J/L/Kfu1hzaAMXY7IEtK1XvaTalHmrRgEjl2 8/KKIjZwg6L3j1baF/ruAnImzC7brX5JhEcpyeniR44dI311UUH1dIkQ5oGmow== X-Gm-Gg: ASbGncsx6TxnZ7Jq/OcElsh8wtd1fyiro8OXiJ/OMcoI0p0rwxPVSltsvwbUsLf5UGH JW0d5fseyvNrCff3Ex/bJK8QtaExOfglItN99XeopW1PiKDGt5sBwXL9eKix8Z7TRpgdZkYl2so 8vjRQPbPnu2zkwP3dbdCfU95A/AOlxs59t3SvyQaY9XdjJXkHQyLHGf4q4evJcTo8WvJQFgb2ib ESjE4i+zxJijNLzeItKLNJkAnTUcYWJhpjpDThgWV1+z9GavYqj6H6ysTnC0p8aYHTn9MqU86rb /JPa3UvWRcOYhm3j39TLVO732X5PBGIDFB5XC03b7/t2gAkbSsIpwgqNeTqGYA/Nh1d+/qcaJ+i CHjxCW9nSglR/uGvBzalAIEjV X-Google-Smtp-Source: AGHT+IGt4WPx9nrcqzKoBcQ+iQWYmXkoofLqvlc4QUl7Ndlt3QnBbY54vYLJR83uNE6ACRdjAnpleA== X-Received: by 2002:a05:6402:2552:b0:61c:9852:bb9f with SMTP id 4fb4d7f45d1cf-61c9852be87mr5861737a12.1.1756359866708; Wed, 27 Aug 2025 22:44:26 -0700 (PDT) Received: from xeon.. ([188.163.112.70]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-61cbbdac051sm2102841a12.29.2025.08.27.22.44.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Aug 2025 22:44:26 -0700 (PDT) From: Svyatoslav Ryhel To: Thierry Reding , Thierry Reding , Jonathan Hunter , Prashant Gaikwad , Michael Turquette , Stephen Boyd , Philipp Zabel , Svyatoslav Ryhel , Mikko Perttunen , 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 v4 3/4] clk: tegra: dfll: add CVB tables for Tegra114 Date: Thu, 28 Aug 2025 08:44:02 +0300 Message-ID: <20250828054403.7112-4-clamor95@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250828054403.7112-1-clamor95@gmail.com> References: <20250828054403.7112-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 16:48:24 2025 Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) (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 81E0F275B08; Thu, 28 Aug 2025 05:44:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756359871; cv=none; b=k8KLbDla0kjAUJwxbhyXrkfE/tmS6xnUUsG3lbP2t+dox3rI6BcqXWgyeMdgn10ObUq9wER2Hhv4Q3gGTIWVFQ/AROglHF7dUfQPyUyNdmjPzkuJq4RJsFep640TDCsnukIpU7bqp32mMtvCFIOK+Y6PqI9zGZHKBCDMBN2riig= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756359871; c=relaxed/simple; bh=bKMv08pYzfZNh3XAkHhywuKCW3GIoKRCHRWx9yc8PQs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hCgROIyAKjYsh7sU/EUbOXF6Lcohn4xQcZVRlyGFTRE81g17zelt0z6x5HKzShhUCcSP7vZzlavZ/WxNrtRxMjx8n2g5WVSMTsIqS2QX78euyKU2CGBaHoKRQrf2pJ0fXi9EmzNd38yWJiWBHixmF8/3aONk3U032J8lYJvTyAU= 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=f/uH/6fh; arc=none smtp.client-ip=209.85.208.48 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="f/uH/6fh" Received: by mail-ed1-f48.google.com with SMTP id 4fb4d7f45d1cf-61c22dceb25so802369a12.2; Wed, 27 Aug 2025 22:44:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756359868; x=1756964668; 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=ezkjvVnoTmWZ8Z/hdWLthloMFZUE/Ig6WMH5vWf3Y5U=; b=f/uH/6fhrys7jCTzk8DxVmoksUaUsnN75FkhmeizsRZhcdG3EciF/VmWAMSE9XHxXv aIe27y8p/PTas22K0Ns6LB9rbHK9ooyMmATjzfSdsTh9vQVyDyrzi++65Rry/eETBXtv FttXc7ocNz1rBSc4Prp1JoPS8oZ6+zHThLRQx7HoCjHxXaLsoMd2Uroyr5N14r+FqcCM IK4kAHsQpa7QvI/9MGPQi5CiOLD6GfTFe3qYmvVb1ettjiwozso2K+9mCsauV2xLEdt8 4fEHKdqZ/nidWR7BWwL+PcGxvTIbz6t20/+cKgI42rH7ivdYjBf3b5e75q4vFm6YUZdo h+iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756359868; x=1756964668; 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=ezkjvVnoTmWZ8Z/hdWLthloMFZUE/Ig6WMH5vWf3Y5U=; b=dmgnD1MiP1heqCBZFUssFHcGZrNV/NgMfdrr13hn0zr0wJRXyfITilUPIJrAoRvUCe 2a7rcVTxRdi6CGmoWk6NCRL+mc0iINO+RWIIRn2QrJCvrw9CnLgIKD8pcik41AZZDWGo bV5WbUg2GfkUn51mNG4dJz8Nk8vF7n8uuRJEtJAISuE+G8xijzqVH6suF8D8eg1eQvxX 6wqADDM2gDQP0OMnt4B+K2YI446w/j3CO3Rw1owyVAFTHuKMZsNmLrh88cCi8CopMrfW hfKO/U2JxrZa4AsuuvOjX5ggHfOySIsOkji6hBmPGpebxqST+dpXKzGsKI60UKOaJttV /rCg== X-Forwarded-Encrypted: i=1; AJvYcCUmaNstFA6wsnZHP55+IuZ/biN+Aj3/WRP2BmgQKWj6+K94lbcdwLuhd1fAfiNMFOdw5sbWJoC7I7GiMDs=@vger.kernel.org, AJvYcCVQLEWku1fVv0ssba1oD6wd4A/aU3GKvRZfd+q4GMfzS5OqVKBcMbVi7A+yVNxzIuODO+jkedqc+QFwzeFF@vger.kernel.org, AJvYcCWjsszR3AREziwdkF4Dq7gzg9diu972NQG7mIFEVkvrxXlZ5AkGQNLO4R1HaHxok+DMPgLWITIbcw4=@vger.kernel.org X-Gm-Message-State: AOJu0YwsD4rNFxzKDcQve2l/DTI299GUE0AyO5riLrVDLFI4vVjpiKKS 46sPkTmFPsJ9Nug1noQQKVi/fHKjC5W8A6vxoiKLLzzsFMzaGPO1OyV58IoSmA== X-Gm-Gg: ASbGncu2GmRg8mA7mQZrPrwVjvZSpuuT8q3BOu3q8xlMShcrNy6HDBKSB0mYXRGtGJJ JMT85jah61dp552kKg4xa3ez9kTO2W0r7HO1Xt/S3MX9rq4sA5inUULy4jas01Z/fTmAchF9+XT F0YR83uzy1d/Cc/0KN0qtvUJgbqIy24TNpa8pVWsgPvYurf/j7KTKDl77e7G9xjdL/rvJCqEgjX QXeZL+IgtscggHFc3N1DRKNvla/h3pUmUnxpvDIz7WkSy8VZ12LCNzxUaI0M4wukEj5tIglnJFs ATzen4K0AlTJyqOHIc0UvbxDAYDp8iC9ra33i5ffFtSdZPxe+ewti/cEsIuSMfU9kG3JZrE5cdj x6vrFP2Mek1gZkGHIkAtTfIqk X-Google-Smtp-Source: AGHT+IEQgRWTZ73WBDH00nDeYpZe45RNhcdmiyrv9seYxVjrxJnZcWKrIDMUaL7cLf9soQ14OPaFzg== X-Received: by 2002:a05:6402:13d4:b0:61c:4436:a0eb with SMTP id 4fb4d7f45d1cf-61c4437049dmr15107600a12.26.1756359867769; Wed, 27 Aug 2025 22:44:27 -0700 (PDT) Received: from xeon.. ([188.163.112.70]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-61cbbdac051sm2102841a12.29.2025.08.27.22.44.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Aug 2025 22:44:27 -0700 (PDT) From: Svyatoslav Ryhel To: Thierry Reding , Thierry Reding , Jonathan Hunter , Prashant Gaikwad , Michael Turquette , Stephen Boyd , Philipp Zabel , Svyatoslav Ryhel , Mikko Perttunen , 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 v4 4/4] ARM: tegra: Add DFLL clock support for Tegra114 Date: Thu, 28 Aug 2025 08:44:03 +0300 Message-ID: <20250828054403.7112-5-clamor95@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250828054403.7112-1-clamor95@gmail.com> References: <20250828054403.7112-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..c429478eb122 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