From: Sam Day <[email protected]> On older SoCs (such as MSM8960/MSM8930), PS_HOLD is exposed through the TLMM aperture. To prepare for that use-case, this driver is updated to accept arbitrary offsets from regbase.
Signed-off-by: Sam Day <[email protected]> --- drivers/sysreset/sysreset_qcom-pshold.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/sysreset/sysreset_qcom-pshold.c b/drivers/sysreset/sysreset_qcom-pshold.c index 45290478536..f8be1f2f593 100644 --- a/drivers/sysreset/sysreset_qcom-pshold.c +++ b/drivers/sysreset/sysreset_qcom-pshold.c @@ -10,6 +10,7 @@ */ #include <dm.h> +#include <errno.h> #include <sysreset.h> #include <asm/io.h> #include <linux/delay.h> @@ -35,9 +36,15 @@ static struct sysreset_ops qcom_pshold_ops = { static int qcom_pshold_probe(struct udevice *dev) { struct qcom_pshold_priv *priv = dev_get_priv(dev); + ulong offset = dev_get_driver_data(dev); priv->base = dev_read_addr(dev); - return priv->base == FDT_ADDR_T_NONE ? -EINVAL : 0; + if (priv->base == FDT_ADDR_T_NONE) + return -EINVAL; + + priv->base += offset; + + return 0; } static const struct udevice_id qcom_pshold_ids[] = { -- 2.54.0

