From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leonard Crestez Subject: [RFCv4 0/7] interconnect: Add imx support via devfreq Date: Fri, 23 Aug 2019 17:36:53 +0300 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Georgi Djakov , Rob Herring , =?UTF-8?q?Artur=20=C5=9Awigo=C5=84?= , Chanwoo Choi Cc: Mark Rutland , Dong Aisheng , linux-arm-kernel@lists.infradead.org, Saravana Kannan , linux-pm@vger.kernel.org, Stephen Boyd , Viresh Kumar , Michael Turquette , Krzysztof Kozlowski , Kyungmin Park , MyungJoo Ham , Alexandre Bailon , kernel@pengutronix.de, Fabio Estevam , Shawn Guo , devicetree@vger.kernel.org, linux-imx@nxp.com List-Id: devicetree@vger.kernel.org This series add imx support for interconnect via devfreq: the ICC framework is used to aggregate requests from devices and then those are converted to DEV_PM_QOS_MIN_FREQUENCY requests for devfreq. The devfreq parts are posted separately, this series only intersects in devicetree: https://patchwork.kernel.org/cover/11104113/ Since there is no single devicetree node that can represent the "interconnect" new API is added to allow individual devfreq nodes to act as parsing proxies all mapping to a single soc-level icc provider. This is still RFC because this The rest of the changes are small and deal with review comments. Changes since RFCv3: * Remove the virtual "icc" node and add devfreq nodes as proxy providers * Fix build on 32-bit arm (reported by kbuilt test robot) * Remove ARCH_MXC_ARM64 (never existed in upstream) * Remove _numlinks, calculate instead * Replace __BUSFREQ_H header guard * Improve commit message and comment spelling * Fix checkpatch issues Link to RFCv3: https://patchwork.kernel.org/cover/11078671/ Changes since RFCv2 and initial work by Alexandre Bailon: * Relying on devfreq and dev_pm_qos instead of CLK * No more "platform opp" stuff * No more special suspend handling: use suspend-opp on devfreq instead. * Replace all mentions of "busfreq" with "interconnect" Link to v2: https://patchwork.kernel.org/patch/11056789/ Leonard Crestez (7): PM / devfreq: Add devfreq_get_devfreq_by_node interconnect: Add of_icc_add_proxy dt-bindings: devfreq: imx: Describe interconnect properties interconnect: Add imx core driver interconnect: imx: Add platform driver for imx8mm soc: imx8mm: Register interconnect platform device arm64: dts: imx8mm: Add interconnect properties .../devicetree/bindings/devfreq/imx-ddrc.yaml | 5 + .../devicetree/bindings/devfreq/imx.yaml | 5 + arch/arm64/boot/dts/freescale/imx8mm.dtsi | 5 + drivers/devfreq/devfreq.c | 42 ++- drivers/interconnect/Kconfig | 1 + drivers/interconnect/Makefile | 1 + drivers/interconnect/core.c | 88 +++++- drivers/interconnect/imx/Kconfig | 9 + drivers/interconnect/imx/Makefile | 2 + drivers/interconnect/imx/imx.c | 279 ++++++++++++++++++ drivers/interconnect/imx/imx.h | 60 ++++ drivers/interconnect/imx/imx8mm.c | 105 +++++++ drivers/soc/imx/soc-imx8.c | 4 + include/dt-bindings/interconnect/imx8mm.h | 49 +++ include/linux/devfreq.h | 1 + include/linux/interconnect-provider.h | 7 + 16 files changed, 645 insertions(+), 18 deletions(-) create mode 100644 drivers/interconnect/imx/Kconfig create mode 100644 drivers/interconnect/imx/Makefile create mode 100644 drivers/interconnect/imx/imx.c create mode 100644 drivers/interconnect/imx/imx.h create mode 100644 drivers/interconnect/imx/imx8mm.c create mode 100644 include/dt-bindings/interconnect/imx8mm.h -- 2.17.1