From patchwork Tue Aug 20 15:45:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leonard Crestez X-Patchwork-Id: 11104113 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id ABFA81864 for ; Tue, 20 Aug 2019 15:45:26 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 83DF12332A for ; Tue, 20 Aug 2019 15:45:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="KdDqraud" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 83DF12332A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=FUgxlaRz4LCF97JltD3fqvS6Kaj/RL4bJGfV/4mkimM=; b=KdD qraudXp55ZEr1AUc9WLAJ5PXt1+Pl4/VPa1cgkuwYK4yz6bx3Mhw16+WufeoOQxMrKhfiPhD4luhO XunGmFrjvmR3kZxWNut0chP/iLREhWReUiT6o3vMsJoOpq6xPA5vpD/4yYcoDPhpv7q5E83Wyq8lo 0Qt6vChIs6xxoRZC1gxu6143xhf+gsTsjhoisLqLZtKU9kRQmUzsYgh4aWnX8l54rzEUrlUde94TL 3gHhYyp4xdodi2MwagHHFHkiwKVCO4Mq4XOjCNuxYpJiI+ueVle3PwtQ0wSRUnnt+mOHhZG9gcqHn ndFrof/jckXOFnxWdWNJjwhW12FFjVQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1i06K5-00071e-Cd; Tue, 20 Aug 2019 15:45:25 +0000 Received: from inva021.nxp.com ([92.121.34.21]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1i06K2-00070k-7q for linux-arm-kernel@lists.infradead.org; Tue, 20 Aug 2019 15:45:23 +0000 Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id B22CC2001DA; Tue, 20 Aug 2019 17:45:20 +0200 (CEST) Received: from inva024.eu-rdc02.nxp.com (inva024.eu-rdc02.nxp.com [134.27.226.22]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 9A2692001B7; Tue, 20 Aug 2019 17:45:20 +0200 (CEST) Received: from fsr-ub1864-112.ea.freescale.net (fsr-ub1864-112.ea.freescale.net [10.171.82.98]) by inva024.eu-rdc02.nxp.com (Postfix) with ESMTP id 96E0E20612; Tue, 20 Aug 2019 17:45:19 +0200 (CEST) From: Leonard Crestez To: Stephen Boyd , Shawn Guo , MyungJoo Ham , Chanwoo Choi , Rob Herring Subject: [PATCH v2 0/7] PM / devfreq: Add initial imx support Date: Tue, 20 Aug 2019 18:45:05 +0300 Message-Id: X-Mailer: git-send-email 2.17.1 X-Virus-Scanned: ClamAV using ClamSMTP X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190820_084522_563125_51E41F2A X-CRM114-Status: GOOD ( 11.59 ) X-Spam-Score: -2.3 (--) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-2.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [92.121.34.21 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , =?utf-8?b?QXJ0dXIgxZp3aWdvxYQ=?= , Abel Vesa , Saravana Kannan , Anson Huang , linux-arm-kernel@lists.infradead.org, Viresh Kumar , Michael Turquette , linux-pm@vger.kernel.org, linux-imx@nxp.com, Krzysztof Kozlowski , linux-clk@vger.kernel.org, Kyungmin Park , Alexandre Bailon , kernel@pengutronix.de, Dong Aisheng , Fabio Estevam , Georgi Djakov , devicetree@vger.kernel.org, Jacky Bai MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org This adds devfreq support for imx8mm, covering dynamic scaling of internal NOC and DDR Controller Scaling for simple busses (NIC/NOC) is done through the clk framework while DRAM scaling is performed in firmware with an "imx-ddrc" wrapper for devfreq. Changes since v1: * bindings: Stop using "contains" for "compatible" * bindings: Set "additionalProperties: false" and document missing stuff. * Remove (c) from NXP copyright notice * Fix various checkpatch issues * Remove unused dram_alt_root clk from imx-ddrc Link to v1: https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=158773 Changes since RFC v3: * Implement passive support and set NOC's parent to DDRC * Drop scaling AHB/AXI for now (NOC/DDRC use most power anyway) * Stop relying on clk_min_rate * Split into two devreq drivers (and bindings) because the ddrc is really a distinct piece of hardware. * Perform DRAM frequency inside devfreq instead of clk, mostly due to objections to earlier RFCs for imx8m-dram-clk. * Fetch info about dram clk parents from firmware instead of hardcoding in driver. This can more easily support additional rates. * Link: https://patchwork.kernel.org/cover/11056779/ * Link: https://patchwork.kernel.org/patch/11049429/ Scaling buses can cause problems for devices with realtime bandwith requirements such as display, the intention is to use the interconnect framework to make DEV_PM_QOS_MIN_FREQUENCY to devfreq. There are separate patches for that: * https://patchwork.kernel.org/cover/11104055/ * https://patchwork.kernel.org/cover/11078671/ Leonard Crestez (7): clk: imx8m: Set CLK_GET_RATE_NOCACHE on dram_alt/apb dt-bindings: devfreq: Add bindings for generic imx buses PM / devfreq: Add generic imx bus driver dt-bindings: devfreq: Add bindings for imx ddr controller PM / devfreq: Add dynamic scaling for imx ddr controller PM / devfreq: imx-ddrc: Measure bandwidth with perf arm64: dts: imx8mm: Add devfreq nodes .../devicetree/bindings/devfreq/imx-ddrc.yaml | 60 ++ .../devicetree/bindings/devfreq/imx.yaml | 68 +++ arch/arm64/boot/dts/freescale/imx8mm.dtsi | 53 +- drivers/clk/imx/clk-imx8mm.c | 6 +- drivers/clk/imx/clk-imx8mn.c | 6 +- drivers/clk/imx/clk-imx8mq.c | 7 +- drivers/devfreq/Kconfig | 12 + drivers/devfreq/Makefile | 1 + drivers/devfreq/imx-ddrc.c | 514 ++++++++++++++++++ drivers/devfreq/imx-devfreq.c | 148 +++++ 10 files changed, 867 insertions(+), 8 deletions(-) create mode 100644 Documentation/devicetree/bindings/devfreq/imx-ddrc.yaml create mode 100644 Documentation/devicetree/bindings/devfreq/imx.yaml create mode 100644 drivers/devfreq/imx-ddrc.c create mode 100644 drivers/devfreq/imx-devfreq.c