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