Received: by 2002:ac0:aa62:0:0:0:0:0 with SMTP id w31-v6csp1527697ima; Sun, 21 Oct 2018 14:01:26 -0700 (PDT) X-Google-Smtp-Source: ACcGV60LzqwvrZAB90HE+z3B6GaeWkX1lf9jMp+xhuks2mzRjHSbzcMHYmBBp3RE5n8JwPLzBndz X-Received: by 2002:a63:9507:: with SMTP id p7-v6mr40720590pgd.449.1540155686753; Sun, 21 Oct 2018 14:01:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1540155686; cv=none; d=google.com; s=arc-20160816; b=j1DiNDaSj3TsW3+ryO1DOqxaAFLOcS2w2qQCKsXc45LUX935BOjXXKdoNY2nb5ZxW1 bUOEybEq/87jDzlreGxdzKhBhU27d0dErhdLn069Tq6W8a/zjU1q+E8me1PT2Y02OFFG q2Cub3IRRb5lRYN+MD0juBtaONZBfkeJ3jskj6OBwkgjCXGr4TRU4CeBsj8oyeyvt0vN X6mJ2RFSlP6BBTrv6sCaGoNxe5s/YJNDyXB13QF9eojrYB6fx6ao/6OA1AzGCcf/du/s yX/7oz00GPGGlhZ6DWw/FIyseO+anAcb0AOKZ4sucAuWBhX9DgAje7fK4/8r433prs+1 pgRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=Pv/G0di8Mwsay4RuOefTK+BnGNoln+BN6sXYOrGqT98=; b=YjbYMNSBhasQrXX7DP0igneAqSTcT8m8xSFhJ07dvwiDfRJZ51TbUdc9ktHgJJpyG+ 6Y7sEG9YjCzgZ9TPDW2bDSlKCNAppbpN6Fw3nPRS9D+qp3mL8DhVtr2bjYqad/6MUh03 C0IO776fl1UtpzphmnS6NtBu4NtQxe6le6Qkzj+sJqd7S+EbucMx+aEdZ+veIYCq8zTe 1A2InhwkofnLM9vTR2IvwlRp14h0s9dDWoO1+CmR/Ycy/2P/TfXeUDraAMK6M06SODTo dq6N20NhxknCzObYLnXFrP6aDjc/RmlMCsQRi6B4/jZbtq51g/SwmiHva15L83mpoKIK P+4A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Rw2tQjTl; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n4-v6si31792392pga.568.2018.10.21.14.01.12; Sun, 21 Oct 2018 14:01:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Rw2tQjTl; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728247AbeJVFNn (ORCPT + 99 others); Mon, 22 Oct 2018 01:13:43 -0400 Received: from mail-lj1-f194.google.com ([209.85.208.194]:39813 "EHLO mail-lj1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727256AbeJVFNn (ORCPT ); Mon, 22 Oct 2018 01:13:43 -0400 Received: by mail-lj1-f194.google.com with SMTP id p1-v6so35104947ljg.6; Sun, 21 Oct 2018 13:58:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=Pv/G0di8Mwsay4RuOefTK+BnGNoln+BN6sXYOrGqT98=; b=Rw2tQjTl7SxbT+mz+a2GObz1Of3KasyMGvlDBDKIY3BMHdl10nqMuQ4C+pCDqsBvhy c+tj/lxrZKJ9lzDBKmZgUFayKf4QWe5gm760P8sebP1efRIfKZJckJBVkGFkH/yMxck2 d7gMTtGLPB7e1YNPqgcDVilPg1Qfj5ESZfYQF6YbEf8ttmWw24XvAB+z62xVM6Jegtpo 4qeh8mdfxgqu3tz90Agb4G/86nrQgs5MY7NkSKZkHEVepR07odiABc3j/aAJsMgu6uxB cAH9CMUEK1sr3Nzd/j6Yv5Ti84tA7X0oukDzwTCBb1FFshosOkg6dJUh17jlC2lTU5yt uWtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=Pv/G0di8Mwsay4RuOefTK+BnGNoln+BN6sXYOrGqT98=; b=HI5dY3B2vJgWlwDBXz4v1GwSejDT7Hj49n0q/jMGmgsJ0c47dO8Edi/KXUI4pjzqr8 wa6hiyJ8+/hL8N/qEfF24CZDVPmzMYOC3Gu8KHXhPgR7s4TZF45OeQ1L8rPGdsSFf2Wq N44unHlPrXPR5QhM8vYFlHicU9k0FvKwbrdmcfPYSOb0W29dCMvWj96cmt9zr+ChnHOk J60Iu+VNXF+KEQfTXNg1fmXdu8fcBL4d82nqqq2OhNEqWgnFNUTGZ/V9131hC+wbXret gkFVySlaLKl5EazDJM3WmpHMi3ftG5XEbVFGImUvSnPCMAjtEvVk5JoMHl5ToekxyVk3 2DCw== X-Gm-Message-State: ABuFfoiX5VjXCPho1UA9NKs/oRxA9te5pJhgFZGSJvkfqzC6Cumr2vEU ZVsb4yak6mt5aItnv9w/Lzo= X-Received: by 2002:a2e:9993:: with SMTP id w19-v6mr16033971lji.165.1540155483817; Sun, 21 Oct 2018 13:58:03 -0700 (PDT) Received: from localhost.localdomain (109-252-91-118.nat.spd-mgts.ru. [109.252.91.118]) by smtp.gmail.com with ESMTPSA id p63-v6sm6515919lfg.46.2018.10.21.13.58.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 21 Oct 2018 13:58:03 -0700 (PDT) From: Dmitry Osipenko To: "Rafael J. Wysocki" , Viresh Kumar , Rob Herring , Thierry Reding , Jonathan Hunter , Nishanth Menon , Stephen Boyd , Marcel Ziswiler Cc: linux-tegra@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH v2 00/17] CPUFREQ OPP's, DVFS and Tegra30 support by tegra20-cpufreq driver Date: Sun, 21 Oct 2018 23:54:44 +0300 Message-Id: <20181021205501.23943-1-digetx@gmail.com> X-Mailer: git-send-email 2.19.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, This series adds support for CPU frequency/voltage scaling on Tegra20/30, it adds device tree support that allow to specify clock rate/voltages per board and to implement thermal throttling. The tegra20-cpufreq driver has been re-worked to support that all. Note that this series depends on in-progress clock [0] and regulator [1] patches. Changelog: v2: - Implemented DVFS support. Currently only CPU rail changes voltage, while CORE/RTC locked to maximum. The CORE can be unlocked once all of peripheral drivers will gain support for DVFS. See "TODO" comment in the driver. On Tegra20 CPU temperature is lower by 5-6 C during idling with DVFS. On Tegra30 CPU temperature is lower by 1-2 C, and it drops by 6-7 C if CORE rail scaling is unlocked. - Device-tree binding has been reworked to support voltage regulators and HW versioning. Now CPU OPP's are specified per HW version and include voltage entry. OPP values are taken from downstream kernel [2][3]. The "backup" clock has been renamed to "intermediate". [0] https://lkml.org/lkml/2018/8/30/960 [1] https://lkml.org/lkml/2018/10/5/682 [2] https://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=blob;f=arch/arm/mach-tegra/tegra2_dvfs.c;hb=l4t/l4t-r16-r2 [3] https://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=blob;f=arch/arm/mach-tegra/tegra3_dvfs.c;hb=l4t/l4t-r16-r2 Dmitry Osipenko (17): OPP: Allow to request stub voltage regulators soc/tegra: fuse: Export tegra_get_chip_id() dt-bindings: cpufreq: Add binding for NVIDIA Tegra20/30 cpufreq: tegra20: Support OPP, thermal cooling, DVFS and Tegra30 ARM: tegra: Create tegra20-cpufreq device on Tegra30 ARM: dts: tegra20: Add CPU Operating Performance Points ARM: dts: tegra30: Add CPU Operating Performance Points ARM: dts: tegra20: colibri: Setup voltage regulators for DVFS ARM: dts: tegra20: harmony: Setup voltage regulators for DVFS ARM: dts: tegra20: paz00: Setup voltage regulators for DVFS ARM: dts: tegra20: seaboard: Setup voltage regulators for DVFS ARM: dts: tegra20: tamonten: Setup voltage regulators for DVFS ARM: dts: tegra20: ventana: Setup voltage regulators for DVFS ARM: dts: tegra30: apalis: Setup voltage regulators for DVFS ARM: dts: tegra30: beaver: Setup voltage regulators for DVFS ARM: dts: tegra30: cardhu: Setup voltage regulators for DVFS ARM: dts: tegra30: colibri: Setup voltage regulators for DVFS .../cpufreq/nvidia,tegra20-cpufreq.txt | 96 ++ arch/arm/boot/dts/tegra20-colibri.dtsi | 31 +- arch/arm/boot/dts/tegra20-harmony.dts | 31 +- arch/arm/boot/dts/tegra20-paz00.dts | 31 +- arch/arm/boot/dts/tegra20-seaboard.dts | 27 +- arch/arm/boot/dts/tegra20-tamonten.dtsi | 31 +- arch/arm/boot/dts/tegra20-ventana.dts | 31 +- arch/arm/boot/dts/tegra20.dtsi | 277 ++++++ arch/arm/boot/dts/tegra30-apalis.dtsi | 19 +- arch/arm/boot/dts/tegra30-beaver.dts | 19 +- arch/arm/boot/dts/tegra30-cardhu.dtsi | 19 +- arch/arm/boot/dts/tegra30-colibri.dtsi | 19 +- arch/arm/boot/dts/tegra30.dtsi | 688 +++++++++++++++ arch/arm/mach-tegra/tegra.c | 4 + drivers/cpufreq/Kconfig.arm | 2 + drivers/cpufreq/cpufreq-dt-platdev.c | 2 + drivers/cpufreq/cpufreq-dt.c | 2 +- drivers/cpufreq/tegra20-cpufreq.c | 832 +++++++++++++++--- drivers/cpufreq/ti-cpufreq.c | 3 +- drivers/opp/core.c | 9 +- drivers/soc/tegra/fuse/tegra-apbmisc.c | 1 + include/linux/pm_opp.h | 4 +- 22 files changed, 2006 insertions(+), 172 deletions(-) create mode 100644 Documentation/devicetree/bindings/cpufreq/nvidia,tegra20-cpufreq.txt -- 2.19.0