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: v3: - added generic support in the OPP for "opp-microwatt" - renamed _of_has_opp_microwatt_property() and return bool from it - simplified _of_has_opp_microwatt_property() just checking 1st opp's power - squashed the return ret; into return em_dev_register_perf_domain(); - added EM documentation update patch v2 [2] Regards, Lukasz Luba [1] https://lore.kernel.org/linux-pm/20220207073036.14901-2-lukasz.luba@xxxxxxx/ [2] https://lore.kernel.org/linux-pm/20220222140746.12293-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 | 15 +++ Documentation/power/energy-model.rst | 10 ++ drivers/opp/core.c | 20 ++++ drivers/opp/of.c | 105 +++++++++++++++++- include/linux/pm_opp.h | 12 +- 5 files changed, 159 insertions(+), 3 deletions(-) -- 2.17.1