From nobody Mon Feb 9 09:09:33 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D7AEE224AEB; Wed, 22 Oct 2025 03:13:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761102806; cv=none; b=QBOdJkcuOUfx2jb9tnH1O04/rryv/tzJOVwXtLqh9V02IwfxUyWeL1Rqm0h/d2B8A6wbawDikVzSlMQgJkIqAWMUfLH3QtEFbny5cbdLMwnkxaC4WtjYWa0Dym1FjXVw0qs+lTexVygwVErj2Uw28B2wScRyV54Vo4+QjYXCgHY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761102806; c=relaxed/simple; bh=hV14NGi5CrH131Wx4M4fOh7wVGQBwgsL+TxbUFT+uBo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kEoHSDZnyDK7Q/YSMYB1jVG2Dji7y9zFROP2PQKlgFNzZwr9m22l46NVzXbxpwnfiycNTEHgYibltJMoyuYXOhdUNr5TEN2s6SawU/8TEgUXNLOMLGk8/8SRsWJ4u2xcDZi1HQWTZUnfcgNkmXVV5Zrd8VKhHtxpDGv/bRRD3G4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=I0PfVexC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="I0PfVexC" Received: by smtp.kernel.org (Postfix) with ESMTPS id 6D7E0C116B1; Wed, 22 Oct 2025 03:13:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761102806; bh=hV14NGi5CrH131Wx4M4fOh7wVGQBwgsL+TxbUFT+uBo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=I0PfVexC3Y3w2bnDPas0lRIvzdO9eCqArTkWldCHrdvUGQ2gBPvDS1j2smBUUoG9n 0JljAjQNVeYTqgcaVkHhbGPcktNlqKvGbicEk5EBU5thqeNuLptp0qvEzdiG77yeLS d05BQjPqpHODGUPJOyb8BrXTahvA2xMYuCWcLo6hal1iKI/vx4PaYMKrd/RBlp9lAf qbBdmbvHc78/mZO8eLg48mcBqR4GbcdIfNa0JIn7dsVMbV+o6gShbPhylNb61k8bg8 xrsMuGXEbayicYkyeWFWdla3D8qROeJNMolrUuz3HbqLt0mKVAUX7j86YyN+wnHGK2 d6GhWtQY/zH3w== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6113FCCF9E0; Wed, 22 Oct 2025 03:13:26 +0000 (UTC) From: Aaron Kling via B4 Relay Date: Tue, 21 Oct 2025 22:13:24 -0500 Subject: [PATCH v5 3/3] arm64: tegra: Add OPP tables on Tegra210 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251021-t210-actmon-p4-v5-3-4a4dbc49fbc8@gmail.com> References: <20251021-t210-actmon-p4-v5-0-4a4dbc49fbc8@gmail.com> In-Reply-To: <20251021-t210-actmon-p4-v5-0-4a4dbc49fbc8@gmail.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , Jonathan Hunter Cc: devicetree@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, Aaron Kling X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761102805; l=4992; i=webgeek1234@gmail.com; s=20250217; h=from:subject:message-id; bh=c3UF+J0NFIjfjdyZNjJHy/D9Hy0JzM3QHoSqUqe7xkk=; b=uQO5bNcyCdCavLybiq9vOT5rJz9pIaej9q9CBYjzcrp/mBA6Wo30kMcc5VK6quaqoL9qIHqGw hmw5635KvnUBk2yMXbL8sBBjeGln6ERuQJpnCHuBnm/eYQvYzQP7hxV X-Developer-Key: i=webgeek1234@gmail.com; a=ed25519; pk=TQwd6q26txw7bkK7B8qtI/kcAohZc7bHHGSD7domdrU= X-Endpoint-Received: by B4 Relay for webgeek1234@gmail.com/20250217 with auth_id=342 X-Original-From: Aaron Kling Reply-To: webgeek1234@gmail.com From: Aaron Kling This adds OPP tables for actmon and emc, enabling dynamic frequency scaling for ram. Signed-off-by: Aaron Kling --- .../boot/dts/nvidia/tegra210-peripherals-opp.dtsi | 135 +++++++++++++++++= ++++ arch/arm64/boot/dts/nvidia/tegra210.dtsi | 7 ++ 2 files changed, 142 insertions(+) diff --git a/arch/arm64/boot/dts/nvidia/tegra210-peripherals-opp.dtsi b/arc= h/arm64/boot/dts/nvidia/tegra210-peripherals-opp.dtsi new file mode 100644 index 0000000000000000000000000000000000000000..bf2527d737932a1f41aa83d61f4= 4d87ba52b0519 --- /dev/null +++ b/arch/arm64/boot/dts/nvidia/tegra210-peripherals-opp.dtsi @@ -0,0 +1,135 @@ +// SPDX-License-Identifier: GPL-2.0 + +/ { + /* EMC DVFS OPP table */ + emc_icc_dvfs_opp_table: opp-table-dvfs0 { + compatible =3D "operating-points-v2"; + + opp-40800000-800 { + opp-microvolt =3D <800000 800000 1150000>; + opp-hz =3D /bits/ 64 <40800000>; + opp-supported-hw =3D <0x0003>; + }; + + opp-68000000-800 { + opp-microvolt =3D <800000 800000 1150000>; + opp-hz =3D /bits/ 64 <68000000>; + opp-supported-hw =3D <0x0003>; + }; + + opp-102000000-800 { + opp-microvolt =3D <800000 800000 1150000>; + opp-hz =3D /bits/ 64 <102000000>; + opp-supported-hw =3D <0x0003>; + }; + + opp-204000000-800 { + opp-microvolt =3D <800000 800000 1150000>; + opp-hz =3D /bits/ 64 <204000000>; + opp-supported-hw =3D <0x0007>; + opp-suspend; + }; + + opp-408000000-812 { + opp-microvolt =3D <812000 812000 1150000>; + opp-hz =3D /bits/ 64 <408000000>; + opp-supported-hw =3D <0x0003>; + }; + + opp-665600000-825 { + opp-microvolt =3D <825000 825000 1150000>; + opp-hz =3D /bits/ 64 <665600000>; + opp-supported-hw =3D <0x0003>; + }; + + opp-800000000-825 { + opp-microvolt =3D <825000 825000 1150000>; + opp-hz =3D /bits/ 64 <800000000>; + opp-supported-hw =3D <0x0003>; + }; + + opp-1065600000-837 { + opp-microvolt =3D <837000 837000 1150000>; + opp-hz =3D /bits/ 64 <1065600000>; + opp-supported-hw =3D <0x0003>; + }; + + opp-1331200000-850 { + opp-microvolt =3D <850000 850000 1150000>; + opp-hz =3D /bits/ 64 <1331200000>; + opp-supported-hw =3D <0x0003>; + }; + + opp-1600000000-887 { + opp-microvolt =3D <887000 887000 1150000>; + opp-hz =3D /bits/ 64 <1600000000>; + opp-supported-hw =3D <0x0007>; + }; + }; + + /* EMC bandwidth OPP table */ + emc_bw_dfs_opp_table: opp-table-dvfs1 { + compatible =3D "operating-points-v2"; + + opp-40800000 { + opp-hz =3D /bits/ 64 <40800000>; + opp-supported-hw =3D <0x0003>; + opp-peak-kBps =3D <652800>; + }; + + opp-68000000 { + opp-hz =3D /bits/ 64 <68000000>; + opp-supported-hw =3D <0x0003>; + opp-peak-kBps =3D <1088000>; + }; + + opp-102000000 { + opp-hz =3D /bits/ 64 <102000000>; + opp-supported-hw =3D <0x0003>; + opp-peak-kBps =3D <1632000>; + }; + + opp-204000000 { + opp-hz =3D /bits/ 64 <204000000>; + opp-supported-hw =3D <0x0007>; + opp-peak-kBps =3D <3264000>; + opp-suspend; + }; + + opp-408000000 { + opp-hz =3D /bits/ 64 <408000000>; + opp-supported-hw =3D <0x0003>; + opp-peak-kBps =3D <6528000>; + }; + + opp-665600000 { + opp-hz =3D /bits/ 64 <665600000>; + opp-supported-hw =3D <0x0003>; + opp-peak-kBps =3D <10649600>; + }; + + opp-800000000 { + opp-hz =3D /bits/ 64 <800000000>; + opp-supported-hw =3D <0x001F>; + opp-peak-kBps =3D <12800000>; + }; + + opp-1065600000 { + opp-hz =3D /bits/ 64 <1065600000>; + opp-supported-hw =3D <0x0003>; + opp-peak-kBps =3D <17049600>; + }; + + opp-1331200000 { + opp-hz =3D /bits/ 64 <1331200000>; + opp-supported-hw =3D <0x0003>; + opp-peak-kBps =3D <21299200>; + }; + + opp-1600000000 { + opp-hz =3D /bits/ 64 <1600000000>; + opp-supported-hw =3D <0x0007>; + opp-peak-kBps =3D <25600000>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/nvidia/tegra210.dtsi b/arch/arm64/boot/dts= /nvidia/tegra210.dtsi index 2fcc7a28690f7100d49e8b93c4fb77de7947b002..f2961c9e12db1cf91254b753897= 79955f2a0956d 100644 --- a/arch/arm64/boot/dts/nvidia/tegra210.dtsi +++ b/arch/arm64/boot/dts/nvidia/tegra210.dtsi @@ -9,6 +9,8 @@ #include #include =20 +#include "tegra210-peripherals-opp.dtsi" + / { compatible =3D "nvidia,tegra210"; interrupt-parent =3D <&lic>; @@ -516,6 +518,9 @@ actmon@6000c800 { clock-names =3D "actmon", "emc"; resets =3D <&tegra_car 119>; reset-names =3D "actmon"; + operating-points-v2 =3D <&emc_bw_dfs_opp_table>; + interconnects =3D <&mc TEGRA210_MC_MPCORER &emc>; + interconnect-names =3D "cpu-read"; #cooling-cells =3D <2>; }; =20 @@ -1024,6 +1029,8 @@ emc: external-memory-controller@7001b000 { clock-names =3D "emc"; interrupts =3D ; nvidia,memory-controller =3D <&mc>; + operating-points-v2 =3D <&emc_icc_dvfs_opp_table>; + #interconnect-cells =3D <0>; #cooling-cells =3D <2>; }; --=20 2.51.0