From: Grygorii Strashko <grygorii.strashko@ti.com>
To: Christoph Fritz <chf.fritz@googlemail.com>
Cc: "Tony Lindgren" <tony@atomide.com>,
"Javier Martinez Canillas" <martinez.javier@gmail.com>,
"Liam Girdwood" <lrg@ti.com>, "Benoît Cousson" <b-cousson@ti.com>,
"Tomi Valkeinen" <tomi.valkeinen@ti.com>,
"Alessandro Zummo" <a.zummo@towertech.it>,
"Peter Ujfalusi" <peter.ujfalusi@ti.com>,
"Samuel Ortiz" <sameo@linux.intel.com>,
"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
devicetree-discuss@lists.ozlabs.org,
"Daniel Mack" <daniel@zonque.org>,
"Hans J. Koch" <hjk@hansjkoch.de>
Subject: Re: [BUG] omap: mfd/regulator: twl/core: init order
Date: Mon, 15 Apr 2013 13:20:41 +0300 [thread overview]
Message-ID: <516BD479.2020904@ti.com> (raw)
In-Reply-To: <1365877659.3812.110.camel@mars>
On 04/13/2013 09:27 PM, Christoph Fritz wrote:
> Hi
>
> while testing an omap3 board with device tree support I stumbled upon a
> bug which is due to wrong initialization order of twl-core and
> twl-regulator (I suppose): In the boot process they get loaded way too
> late so that a lot of drivers before where configured wrong or just
> refuse to load.
>
> For example the real time clock driver: The RTC kicks in way before
> twl_probe() and due to that it configures its register map wrong
> (at this time twl_priv->twl_id isn't configured yet).
>
> Another example is the omap display subsystem. It (DSS) fails loading
> while trying to register some not yet existent regulators and because it
> lacks EPROBE_DEFER.
>
> USB and MMC is also not working and I'm suspicious of the same cause.
>
> Any ideas?
Hi Christoph,
It happens, because I2C probes execution have been deferred due to
"pinctrl-single" driver (, which is not ready at i2c bus initialization
time:
[ 0.525939] omap_i2c 48070000.i2c: could not find pctldev for node
/ocp/pinmux@4a100040/pinmux_i2c1_pins, deferring probe
[ 0.526000] platform 48070000.i2c: Driver omap_i2c requests probe
deferral
[ 0.526062] omap_i2c 48072000.i2c: could not find pctldev for node
/ocp/pinmux@4a100040/pinmux_i2c2_pins, deferring probe
[ 0.526092] platform 48072000.i2c: Driver omap_i2c requests probe
deferral
[ 0.526153] omap_i2c 48060000.i2c: could not find pctldev for node
/ocp/pinmux@4a100040/pinmux_i2c3_pins, deferring probe
[ 0.526184] platform 48060000.i2c: Driver omap_i2c requests probe
deferral
[ 0.526245] omap_i2c 48350000.i2c: could not find pctldev for node
/ocp/pinmux@4a100040/pinmux_i2c4_pins, deferring probe
[ 0.526275] platform 48350000.i2c: Driver omap_i2c requests probe
deferral
I think following change should fix it, could you try it, pls:
diff --git a/drivers/pinctrl/pinctrl-single.c
b/drivers/pinctrl/pinctrl-single.c
index 5c32e88..b2a9d4b 100644
--- a/drivers/pinctrl/pinctrl-single.c
+++ b/drivers/pinctrl/pinctrl-single.c
@@ -1014,7 +1014,18 @@ static struct platform_driver pcs_driver = {
},
};
-module_platform_driver(pcs_driver);
+static int __init pcs_driver_drv_init(void)
+{
+ return platform_driver_register(&pcs_driver);
+}
+postcore_initcall(pcs_driver_drv_init);
+
+static void __exit pcs_driver_drv_exit(void)
+{
+ platform_driver_unregister(&pcs_driver);
+}
+module_exit(pcs_driver_drv_exit);
+
MODULE_AUTHOR("Tony Lindgren <tony@atomide.com>");
MODULE_DESCRIPTION("One-register-per-pin type device tree based
pinctrl driver");
> Thanks
> -- Christoph
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-04-15 10:21 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-13 18:27 [BUG] omap: mfd/regulator: twl/core: init order Christoph Fritz
2013-04-15 10:20 ` Grygorii Strashko [this message]
2013-04-15 10:56 ` Christoph Fritz
2013-04-15 10:59 ` Grygorii Strashko
2013-04-15 16:25 ` Tony Lindgren
[not found] ` <20130415162541.GO10155-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2013-04-16 7:45 ` Peter Ujfalusi
2013-04-16 8:33 ` Grygorii Strashko
2013-04-16 17:54 ` Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=516BD479.2020904@ti.com \
--to=grygorii.strashko@ti.com \
--cc=a.zummo@towertech.it \
--cc=b-cousson@ti.com \
--cc=chf.fritz@googlemail.com \
--cc=daniel@zonque.org \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=hjk@hansjkoch.de \
--cc=linux-omap@vger.kernel.org \
--cc=lrg@ti.com \
--cc=martinez.javier@gmail.com \
--cc=peter.ujfalusi@ti.com \
--cc=sameo@linux.intel.com \
--cc=tomi.valkeinen@ti.com \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.