diff options
Diffstat (limited to 'drivers/power/pmic/pmic_qcom.c')
| -rw-r--r-- | drivers/power/pmic/pmic_qcom.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/power/pmic/pmic_qcom.c b/drivers/power/pmic/pmic_qcom.c index ad8daf43f06..f2ac6494811 100644 --- a/drivers/power/pmic/pmic_qcom.c +++ b/drivers/power/pmic/pmic_qcom.c @@ -66,12 +66,19 @@ static const struct udevice_id pmic_qcom_ids[] = { static int pmic_qcom_probe(struct udevice *dev) { struct pmic_qcom_priv *priv = dev_get_priv(dev); - - priv->usid = dev_read_addr(dev); - - if (priv->usid == FDT_ADDR_T_NONE) + int ret; + + /* + * dev_read_addr() can't be used here because the reg property actually + * contains two discrete values, not a single 64-bit address. + * The address is the first value. + */ + ret = ofnode_read_u32_index(dev_ofnode(dev), "reg", 0, &priv->usid); + if (ret < 0) return -EINVAL; + debug("usid: %d\n", priv->usid); + return 0; } |
