Hi all, This patch set solves a few issues: 1. It allows to register EM from DT, when the voltage information is not available. (Some background of the issues present on Chromebook devices can be checked at [1].) 2. It allows to register 'advanced' EM from the DT, which is more accurate and reflects total power (dynamic + static). Implementation details: Existing machinery in the OPP framework now handles "opp-microwatt", similarly to "opp-microamp". It also has helper exported function to get power from OPP. For the EM, it adds a new callback in OPP framework to use this new API and read power while having an opp pointer. It's agreed to work with OPP-v2. Comments, suggestions are very welcome. changelog: v5: - added dual-macro to conditionally setup needed callback and compile on !EM kernel gently - removed 'advanced' word from OPP patch header description v4 [2] Regards, Lukasz Luba [1] https://lore.kernel.org/linux-pm/20220207073036.14901-2-lukasz.luba@xxxxxxx/ [2] https://lore.kernel.org/linux-pm/20220301093524.8870-1-lukasz.luba@xxxxxxx/ Lukasz Luba (5): dt-bindings: opp: Add "opp-microwatt" entry in the OPP OPP: Add "opp-microwatt" supporting code PM: EM: add macro to set .active_power() callback conditionally OPP: Add support of "opp-microwatt" for EM registration Documentation: EM: Describe new registration method using DT .../devicetree/bindings/opp/opp-v2-base.yaml | 23 ++++ Documentation/power/energy-model.rst | 10 ++ drivers/opp/core.c | 25 ++++ drivers/opp/debugfs.c | 3 + drivers/opp/of.c | 108 +++++++++++++++++- include/linux/energy_model.h | 2 + include/linux/pm_opp.h | 12 +- 7 files changed, 179 insertions(+), 4 deletions(-) -- 2.17.1