Thread (29 messages) flat view 29 messages, 5 authors, 2012-08-24

Re: [PATCH 4/7] regulator: anatop-regulator: convert to use imx-syscon to access anatop register

From: Dong Aisheng <hidden>
Date: 2012-08-24 02:57:22
Also in: linux-arm-kernel, lkml

On Fri, Aug 24, 2012 at 01:56:58AM +0800, Stephen Warren wrote:
On 08/23/2012 12:12 AM, Richard Zhao wrote:
quoted
On Wed, Aug 22, 2012 at 11:21:03PM -0600, Stephen Warren wrote:
quoted
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.)
In some case that we access register in machine code, we don't have any
phandle. The node is got by find compatible or by path.
That sounds a little odd; why not just use a phandle consistently
everywhere?
Maybe for some places we do not have that device node, e.g:
arch/arm/mach-imx/mach-imx6q.c
Either way though, I could imagine still putting all the lookup code
into the syscon driver; just have different functions for the different
lookup methods:

imx_syscon_lookup_by_phandle(np, char *property_name)
Probably we do not need the left two lookup, below seems also ok if needed:
np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-anatop");
regmap = imx_syscon_lookup_by_phandle(np, property_name)
Then we do not need to handle how to find the compatible node.
imx_syscon_lookup_by_compatible(char *compatible
imx_syscon_lookup_by_path(char *node_path)
Regards
Dong Aisheng
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help