From: Dirk Behme <dirk.behme@googlemail.com>
To: Steve Sakoman <sakoman@gmail.com>
Cc: Tony Lindgren <tony@atomide.com>,
beagleboard@googlegroups.com,
Koen Kooi <k.kooi@student.utwente.nl>,
linux-omap@vger.kernel.org, Paul Walmsley <paul@pwsan.com>,
felipe.balbi@nokia.com, peter.de-schrijver@nokia.com
Subject: Re: [beagleboard] Re: TWL4030 intermittent freakout on boot
Date: Sat, 10 May 2008 11:37:34 +0200 [thread overview]
Message-ID: <48256CDE.6040600@googlemail.com> (raw)
In-Reply-To: <5e088bd90805091611q4a8a22d0l3dab427fe644a990@mail.gmail.com>
Steve Sakoman wrote:
> FWIW, I've never had any issues with the twl4030 on my OMAP3 EVM.
> Both it and the MMC come up fine every boot.
>
> I'm sure that by saying that I have jinxed myself and will have no end
> of issues from this point forward :-)
>
> It's not obvious from looking at the board files why this might be.
> Perhaps the order of inits?
How do you boot OMAP3 EVM? Or better, does your bootloader touch TWL?
Below, Tony mentioned "But what I'm thinking is that maybe the MMC
driver does twl4030 calls before the twl4030 clock is programmed to
the right value?"
Looking into U-Boot for Beagle in u-boot/cpu/omap3/mmc.c there is
void twl4030_mmc_config(void)
{
unsigned char data;
data = 0x20;
i2c_write(0x4B, 0x82, 1, &data, 1);
data = 0x2;
i2c_write(0x4B, 0x85, 1, &data, 1);
return 1;
}
So, on Beagle we are touching TWL *before* kernel (can program right
clock value). Now, I wonder if u-boot code above is correct compared
to kernel/drivers/i2c/chips/twl4030-core.c :
static int power_companion_init(void)
{
struct clk *osc;
u32 rate;
u8 ctrl = HFCLK_FREQ_26_MHZ;
int e = 0;
if (cpu_is_omap2430())
osc = clk_get(NULL, "osc_ck");
else
osc = clk_get(NULL, "osc_sys_ck");
if (IS_ERR(osc)) {
printk(KERN_WARNING "Skipping twl3040 internal clock init and "
"using bootloader value (unknown osc rate)\n");
return 0;
}
rate = clk_get_rate(osc);
clk_put(osc);
switch (rate) {
case 19200000 : ctrl = HFCLK_FREQ_19p2_MHZ; break;
case 26000000 : ctrl = HFCLK_FREQ_26_MHZ; break;
case 38400000 : ctrl = HFCLK_FREQ_38p4_MHZ; break;
}
ctrl |= HIGH_PERF_SQ;
e |= unprotect_pm_master();
/* effect->MADC+USB ck en */
e |= twl4030_i2c_write_u8(TWL4030_MODULE_PM_MASTER, ctrl, R_CFG_BOOT);
e |= protect_pm_master();
return e;
}
or if we have to add/remove/fix something in U-Boot?
Dirk
> On Fri, May 9, 2008 at 2:36 PM, Tony Lindgren <tony@atomide.com> wrote:
>
>>* Dirk Behme <dirk.behme@googlemail.com> [080509 11:08]:
>>
>>
>>
>>>Tony Lindgren wrote:
>>
>> >> * Koen Kooi <k.kooi@student.utwente.nl> [080508 11:22]:
>> >>
>> >>> Op 8 mei 2008, om 20:13 heeft Paul Walmsley het volgende geschreven:
>> >>>
>> >>>> Hello everyone,
>> >>>>
>> >>>> occasionally the TWL4030 driver on the 3430SDP freaks out on boot.
>> >>>> (This
>> >>>> is either an ES2.0 or ES2.1, not sure.) Here's a partial console
>> >>>> log with
>> >>>> initcall debugging enabled. This probably happens every thirty or
>> >>>> forty
>> >>>> boots, I would guess. The board does boot to userspace when this
>> >>>> happens.
>> >>>>
>> >>>> Perhaps the TWL4030 experts out there might know what's going on?
>> >>>>
>> >>>> <3>i2c_omap i2c_omap.1: controller timed out
>> >>>> <3>i2c_omap i2c_omap.1: controller timed out
>> >>>> <3>twl4030_usb: i2c write failed, line 422
>> >>>
>> >>> Looks suspiciously like the symptons in
>> >>>
>> >>> http://code.google.com/p/beagleboard/issues/detail?id=14
>> >>
>> >>
>> >> This also looks similar to the earlier twl4030 hangs where access
>> >> to some domains caused twl4030 to hang. If twl4030 hangs, there's
>> >> no way to reset it as all control is over I2C. When twl4030 hangs,
>> >> bootloader won't be able to detect the chip either unless devices
>> >> is power cycled (and USB cable detached).
>> >>
>> >> The reason earlier was that twl4030 internal clock was not being
>> >> programmed properly, and was fixed by patch
>> >> 0d81cf7e804c529c58d3054c1b9bdb7b3f1dec5d.
>> >
>> > Link for this is
>> >
>> > http://source.mvista.com/git/?p=linux-omap-2.6.git;a=commitdiff;h=0d81cf7e804c529c58d3054c1b9bdb7b3f1dec5d
>> >
>> > I don't know OMAP3 good enough yet, but which clock should we use on
>> > OMAP3 here?
>>
>> It should be osc_sys_ck for 34xx.
>>
>>
>> > Does it make sense to use osc_ck for OMAP3 instead of osc_sys_ck, too?
>> >
>> > E.g something like
>> >
>> > ...
>> > if (cpu_is_omap2430() || cpu_is_omap34xx())
>> > osc = clk_get(NULL, "osc_ck");
>> > else
>> > osc = clk_get(NULL, "osc_sys_ck");
>> > ...
>>
>> There's no osc_ck in clock34xx.h.
>>
>> But what I'm thinking is that maybe the MMC driver does twl4030 calls
>> before the twl4030 clock is programmed to the right value?
>>
>> Tony
>>
>>
>>--
>> 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:[~2008-05-10 9:37 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-08 18:13 TWL4030 intermittent freakout on boot Paul Walmsley
2008-05-08 18:20 ` Koen Kooi
2008-05-08 18:28 ` Tony Lindgren
2008-05-08 18:33 ` Paul Walmsley
2008-05-08 18:42 ` Tony Lindgren
2008-05-09 18:08 ` [beagleboard] " Dirk Behme
2008-05-09 21:36 ` Tony Lindgren
2008-05-09 23:11 ` Steve Sakoman
2008-05-10 9:37 ` Dirk Behme [this message]
2008-05-10 13:42 ` Steve Sakoman
2008-05-10 14:57 ` Woodruff, Richard
2008-05-10 15:16 ` Koen Kooi
2008-05-10 9:33 ` Koen Kooi
2008-05-12 16:10 ` Tony Lindgren
2008-05-12 16:17 ` Koen Kooi
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=48256CDE.6040600@googlemail.com \
--to=dirk.behme@googlemail.com \
--cc=beagleboard@googlegroups.com \
--cc=felipe.balbi@nokia.com \
--cc=k.kooi@student.utwente.nl \
--cc=linux-omap@vger.kernel.org \
--cc=paul@pwsan.com \
--cc=peter.de-schrijver@nokia.com \
--cc=sakoman@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox