[PATCH 0/3] Qualcomm: rpmh and regulator fixes

Casey Connolly casey.connolly at linaro.org
Mon Apr 13 13:06:13 CEST 2026


The RPMh API is frustratingly complicated and lacks public
documentation. With the Linux drivers being the only available sources
but are highly asynchronous and thus hard to translate to U-Boot.

The main issue seems to relate to sending multiple commands in a single
TCS request, currently this is only done by the interconnect driver and
while this may not be the underlying cause it seems to be safer to avoid
this for now.

Adjust the bcm-voter driver to avoid sending multiple commands per
write, and additionally adjust how we send RPMh requests as well as
improve the cleanup we do prior to booting the OS.

Lastly, add a missing piece to the rpmh regulator driver to ensure
that when a supply gets enabled we also propagate a vote to its parent
supply. This seems to have been missed from the original port (perhaps
because the Linux regulator core handles this automatically?) but it is
necessary for some peripherals on some boards to work (e.g. to ensure
that the spms supplier for an LDO gets enabled).

---
Casey Connolly (3):
      soc/qcom: rpmh: properly fix synchronous requests
      soc/qcom: rpmh: only allow rpmh writes of a single command
      power: regulator: qcom-rpmh: propagate votes to parent supplies

 drivers/interconnect/qcom/bcm-voter.c         | 16 +++---
 drivers/power/regulator/qcom-rpmh-regulator.c | 35 +++++++++++++-
 drivers/soc/qcom/rpmh-rsc.c                   | 70 ++++++++++++++++++++-------
 drivers/soc/qcom/rpmh.c                       |  6 +++
 4 files changed, 102 insertions(+), 25 deletions(-)
---
base-commit: c704af3c8b0f37929bce8c2a4bba27d6e89919c7

// Casey (she/they)



More information about the U-Boot mailing list