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: v4: - changed calculation of power, summing add all supliers power for an opp - added opp debugfs for u_watt - added patternProperties in dt-bindings for this new opp-microwatt - changed the EM opp registration flow and used one EM api registration call - changed name of _get_opp_power() to _get_dt_power() - removed 'advanced' word from the new paragraph and content in EM doc changes v3 [2] Regards, Lukasz Luba [1] https://lore.kernel.org/linux-pm/20220207073036.14901-2-lukasz.luba@xxxxxxx/ [2] https://lore.kernel.org/linux-pm/20220224081131.27282-1-lukasz.luba@xxxxxxx/ Lukasz Luba (4): dt-bindings: opp: Add "opp-microwatt" entry in the OPP OPP: Add "opp-microwatt" supporting code OPP: Add support of "opp-microwatt" for advanced 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 | 104 +++++++++++++++++- include/linux/pm_opp.h | 12 +- 6 files changed, 174 insertions(+), 3 deletions(-) -- 2.17.1