On Thu, Aug 23, 2012 at 01:21:03PM +0800, Stephen Warren wrote:
On 08/22/2012 01:18 AM, Dong Aisheng wrote:
quoted
Signed-off-by: Dong Aisheng <redacted>
quoted
diff --git a/drivers/regulator/anatop-regulator.c b/drivers/regulator/anatop-regulator.c
quoted
@@ -109,7 +110,11 @@ static int __devinit anatop_regulator_probe(struct platform_device *pdev)
rdesc->ops = &anatop_rops;
rdesc->type = REGULATOR_VOLTAGE;
rdesc->owner = THIS_MODULE;
- sreg->mfd = anatopmfd;
+
+ sreg->anatop = of_parse_phandle(np, "fsl,anatop", 0);
+ if (!sreg->anatop)
+ return -ENODEV;
In fact, that imx_syscon_lookup function I proposed could even do the
of_parse_phandle() internally, so perhaps:
foo->syscon_dev = imx_syscon_lookup(np, "fsl,anatop", 0);
if (IS_ERR(foo->syscon_dev))
return PTR_ERR(foo->syscon_dev);
with imx_syscon_lookup() internally knowing when to return EPROBE_DEFER
rather than any other permanent error code (e.g. for missing property,
bad phandle, etc.)
This also looks reasonable to me.
btw, see my last reply to mark in another mail.
I'm not sure but Mark may want something slightly different as this one,
imx_syscon_lookup directly return regmap rather than dev, then we do not
need implement any register read/write API in imx-syscon driver, just
using the exist regmap r/w API is ok.
Regards
Dong Aisheng