Message ID | 20190925145750.200592-16-sjg@chromium.org |
---|---|
State | Accepted |
Commit | a605b0f76791b0ec0d7f1703b07ad876c12be1b3 |
Delegated to: | Bin Meng |
Headers | show |
Series | x86: Add initial support for apollolake | expand |
On Wed, Sep 25, 2019 at 10:58 PM Simon Glass <sjg@chromium.org> wrote: > > 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> > --- > > arch/sandbox/dts/test.dts | 2 ++ > drivers/gpio/pm8916_gpio.c | 12 ++++++------ > 2 files changed, 8 insertions(+), 6 deletions(-) > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com>
On Sat, Oct 5, 2019 at 9:58 AM Bin Meng <bmeng.cn@gmail.com> wrote: > > On Wed, Sep 25, 2019 at 10:58 PM Simon Glass <sjg@chromium.org> wrote: > > > > 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> > > --- > > > > arch/sandbox/dts/test.dts | 2 ++ > > drivers/gpio/pm8916_gpio.c | 12 ++++++------ > > 2 files changed, 8 insertions(+), 6 deletions(-) > > > > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > Tested-by: Bin Meng <bmeng.cn@gmail.com> applied to u-boot-x86/next, thanks!
diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts index 208551d7c19..f664b65b72d 100644 --- a/arch/sandbox/dts/test.dts +++ b/arch/sandbox/dts/test.dts @@ -717,11 +717,13 @@ compatible = "sandbox,spmi"; #address-cells = <0x1>; #size-cells = <0x1>; + ranges; pm8916@0 { compatible = "qcom,spmi-pmic"; reg = <0x0 0x1>; #address-cells = <0x1>; #size-cells = <0x1>; + ranges; spmi_gpios: gpios@c000 { compatible = "qcom,pm8916-gpio"; diff --git a/drivers/gpio/pm8916_gpio.c b/drivers/gpio/pm8916_gpio.c index bbe214d5eea..74a773c099b 100644 --- a/drivers/gpio/pm8916_gpio.c +++ b/drivers/gpio/pm8916_gpio.c @@ -172,16 +172,16 @@ static int pm8916_gpio_probe(struct udevice *dev) priv->pid = dev_read_addr(dev); if (priv->pid == FDT_ADDR_T_NONE) - return -EINVAL; + return log_msg_ret("bad address", -EINVAL); /* Do a sanity check */ reg = pmic_reg_read(dev->parent, priv->pid + REG_TYPE); if (reg != 0x10) - return -ENODEV; + return log_msg_ret("bad type", -ENXIO); reg = pmic_reg_read(dev->parent, priv->pid + REG_SUBTYPE); if (reg != 0x5 && reg != 0x1) - return -ENODEV; + return log_msg_ret("bad subtype", -ENXIO); return 0; } @@ -257,16 +257,16 @@ static int pm8941_pwrkey_probe(struct udevice *dev) priv->pid = devfdt_get_addr(dev); if (priv->pid == FDT_ADDR_T_NONE) - return -EINVAL; + return log_msg_ret("bad address", -EINVAL); /* Do a sanity check */ reg = pmic_reg_read(dev->parent, priv->pid + REG_TYPE); if (reg != 0x1) - return -ENODEV; + return log_msg_ret("bad type", -ENXIO); reg = pmic_reg_read(dev->parent, priv->pid + REG_SUBTYPE); if (reg != 0x1) - return -ENODEV; + return log_msg_ret("bad subtype", -ENXIO); return 0; }
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> --- arch/sandbox/dts/test.dts | 2 ++ drivers/gpio/pm8916_gpio.c | 12 ++++++------ 2 files changed, 8 insertions(+), 6 deletions(-)