Hello, This patchset adds support for devices with multiple clocks. None of the clocks is considered primary in this case and all are handled equally. The drivers, for multiple clock case, are expected to call dev_pm_opp_set_opp() to set the specific OPP. Though how they find the target OPP is left for the users to handle. For some, we may have another unique OPP property, like level, which can be used to find the OPP. While in case of others, we may want to implement freq-based OPP finder APIs for multiple clock rates. I have decided not to implement them in advance, and add them only someone wants to use them. This is rebased over a lot of other OPP changes and is pushed here: git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm.git opp/linux-next V1->V2: - Fix broken git bisect for: OPP: Reuse _opp_compare_key() in _opp_add_static_v2() - Include binding changes written by Krzysztof earlier. - Check config_clks before calling it, it isn't always set. - Add config_clks for Tegra30's devfreq to handle its corner case. - _opp_compare_key() supports multi-clk case now, earlier it skipped freq comparison for such a case. - New patch to compare all bandwidth values as well in _opp_compare_key(). - New patch to remove *_noclk() interface. - Various other minor fixes. -- Viresh Krzysztof Kozlowski (1): dt-bindings: opp: accept array of frequencies Viresh Kumar (12): OPP: Use consistent names for OPP table instances OPP: Remove rate_not_available parameter to _opp_add() OPP: Reuse _opp_compare_key() in _opp_add_static_v2() OPP: Make dev_pm_opp_set_opp() independent of frequency OPP: Allow multiple clocks for a device OPP: Compare bandwidths for all paths in _opp_compare_key() OPP: Add key specific assert() method to key finding helpers OPP: Assert clk_count == 1 for single clk helpers OPP: Provide a simple implementation to configure multiple clocks OPP: Allow config_clks helper for single clk case PM / devfreq: tegra30: Register config_clks helper OPP: Remove dev{m}_pm_opp_of_add_table_noclk() .../devicetree/bindings/opp/opp-v2-base.yaml | 10 + drivers/devfreq/tegra30-devfreq.c | 22 +- drivers/opp/core.c | 404 +++++++++++++----- drivers/opp/cpu.c | 12 +- drivers/opp/debugfs.c | 27 +- drivers/opp/of.c | 139 +++--- drivers/opp/opp.h | 24 +- include/linux/pm_opp.h | 29 +- 8 files changed, 466 insertions(+), 201 deletions(-) -- 2.31.1.272.g89b43f80a514