mirror of
https://xff.cz/git/u-boot/
synced 2025-09-24 03:52:08 +02:00
sandbox: spmi: Add ranges property for address translation
At present address translation does not work since there is no ranges property in the spmi nodes. Add empty ranges properties and a little more logging so that this shows the error: /tmp/b/sandbox/u-boot -d /tmp/b/sandbox/arch/sandbox/dts/test.dtb \ -c "ut dm spmi_access_peripheral" -L7 -v ... pm8916_gpio_probe() bad address: returning err=-22 Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
@@ -713,11 +713,13 @@
|
|||||||
compatible = "sandbox,spmi";
|
compatible = "sandbox,spmi";
|
||||||
#address-cells = <0x1>;
|
#address-cells = <0x1>;
|
||||||
#size-cells = <0x1>;
|
#size-cells = <0x1>;
|
||||||
|
ranges;
|
||||||
pm8916@0 {
|
pm8916@0 {
|
||||||
compatible = "qcom,spmi-pmic";
|
compatible = "qcom,spmi-pmic";
|
||||||
reg = <0x0 0x1>;
|
reg = <0x0 0x1>;
|
||||||
#address-cells = <0x1>;
|
#address-cells = <0x1>;
|
||||||
#size-cells = <0x1>;
|
#size-cells = <0x1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
spmi_gpios: gpios@c000 {
|
spmi_gpios: gpios@c000 {
|
||||||
compatible = "qcom,pm8916-gpio";
|
compatible = "qcom,pm8916-gpio";
|
||||||
|
@@ -172,16 +172,16 @@ static int pm8916_gpio_probe(struct udevice *dev)
|
|||||||
|
|
||||||
priv->pid = dev_read_addr(dev);
|
priv->pid = dev_read_addr(dev);
|
||||||
if (priv->pid == FDT_ADDR_T_NONE)
|
if (priv->pid == FDT_ADDR_T_NONE)
|
||||||
return -EINVAL;
|
return log_msg_ret("bad address", -EINVAL);
|
||||||
|
|
||||||
/* Do a sanity check */
|
/* Do a sanity check */
|
||||||
reg = pmic_reg_read(dev->parent, priv->pid + REG_TYPE);
|
reg = pmic_reg_read(dev->parent, priv->pid + REG_TYPE);
|
||||||
if (reg != 0x10)
|
if (reg != 0x10)
|
||||||
return -ENODEV;
|
return log_msg_ret("bad type", -ENXIO);
|
||||||
|
|
||||||
reg = pmic_reg_read(dev->parent, priv->pid + REG_SUBTYPE);
|
reg = pmic_reg_read(dev->parent, priv->pid + REG_SUBTYPE);
|
||||||
if (reg != 0x5 && reg != 0x1)
|
if (reg != 0x5 && reg != 0x1)
|
||||||
return -ENODEV;
|
return log_msg_ret("bad subtype", -ENXIO);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -257,16 +257,16 @@ static int pm8941_pwrkey_probe(struct udevice *dev)
|
|||||||
|
|
||||||
priv->pid = devfdt_get_addr(dev);
|
priv->pid = devfdt_get_addr(dev);
|
||||||
if (priv->pid == FDT_ADDR_T_NONE)
|
if (priv->pid == FDT_ADDR_T_NONE)
|
||||||
return -EINVAL;
|
return log_msg_ret("bad address", -EINVAL);
|
||||||
|
|
||||||
/* Do a sanity check */
|
/* Do a sanity check */
|
||||||
reg = pmic_reg_read(dev->parent, priv->pid + REG_TYPE);
|
reg = pmic_reg_read(dev->parent, priv->pid + REG_TYPE);
|
||||||
if (reg != 0x1)
|
if (reg != 0x1)
|
||||||
return -ENODEV;
|
return log_msg_ret("bad type", -ENXIO);
|
||||||
|
|
||||||
reg = pmic_reg_read(dev->parent, priv->pid + REG_SUBTYPE);
|
reg = pmic_reg_read(dev->parent, priv->pid + REG_SUBTYPE);
|
||||||
if (reg != 0x1)
|
if (reg != 0x1)
|
||||||
return -ENODEV;
|
return log_msg_ret("bad subtype", -ENXIO);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user