From: sassmann@kpanic.de (Stefan Assmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] clk: initial clock driver for TWL6030
Date: Fri, 01 Aug 2014 12:04:35 +0200 [thread overview]
Message-ID: <53DB6633.3020005@kpanic.de> (raw)
In-Reply-To: <20140731192053.4463.27499@quantum>
On 31.07.2014 21:20, Mike Turquette wrote:
> Quoting Stefan Assmann (2014-07-31 07:05:43)
>> On 31.07.2014 14:58, Peter Ujfalusi wrote:
>>> On 07/31/2014 03:54 PM, Stefan Assmann wrote:
>>>>> Why would you do this? The point of a clock provider is that you can
>>>>> enable/disable the clock on demand. Here you enable the clock and leave it
>>>>> enabled for the rest of the time...
>>>>>
>>>>> clk-dra7-atl deals with similar issue
>>>>
>>>> The idea is to enable the clock by default to get the wifi working.
>>>> Sorry if I got it wrong.
>>>
>>> You should have a clock driver for the 32K clock. The wifi driver should
>>> request and manage it's clocks via the clock API.
>>>
>>
>> If the clock does not get enabled the wifi driver wl12xx doesn't even
>> get probed. Which is my initial problem. Maybe I need to figure that out
>> first.
>
> Sounds like the wifi driver's probe is missing something like:
Thanks for the example Mike, but the issue is that the wifi drivers
probe function doesn't even get called without the clock being
powered/enabled. I've instrumented do_one_initcall() to verify this.
With the clock being enabled I see:
[ 19.693511] init/main.c do_one_initcall:792 initcall wl1271_init+0x0/0x38 [wlcore_sdio]
[ 20.993347] init/main.c do_one_initcall:792 initcall wl12xx_driver_init+0x0/0x14 [wl12xx]
If the clock is kept disabled none of the calls is made and we never get
to wl12xx_probe().
The device might not be discoverable without the clock.
Maybe we should rethink the idea of doing that single register write to
enable the device in twl-core code, if the TWL6030 is present.
Alternatively this could be done by u-boot. Seems like something that
should have been done by firmware upfront.
Stefan
>
> """
> #include <linux/clk.h>
>
> int ret;
>
> struct clk *clk32k = clk_get(...);
>
> if (IS_ERR(clk32k))
> explode();
>
> ret = clk_prepare_enable(clk32k);
>
> if (ret)
> explode();
> """
>
> Regards,
> Mike
>
>>
>> Stefan
next prev parent reply other threads:[~2014-08-01 10:04 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-30 14:02 [PATCH 0/2] Enable wifi on pandaboard Stefan Assmann
2014-07-30 14:02 ` [PATCH 1/2] mfd: twl-core: move TWL6030 defines to twl.h Stefan Assmann
2014-07-31 8:36 ` Lee Jones
2014-07-31 8:46 ` Stefan Assmann
2014-07-30 14:02 ` [PATCH 2/2] clk: initial clock driver for TWL6030 Stefan Assmann
2014-07-30 14:29 ` Andreas Färber
2014-07-30 14:36 ` Stefan Assmann
2014-07-30 17:50 ` Mark Brown
2014-07-31 9:56 ` Stefan Assmann
2014-07-31 11:05 ` Mark Brown
2014-07-31 12:04 ` Stefan Assmann
2014-07-31 19:14 ` Mike Turquette
2014-07-31 11:28 ` Tero Kristo
2014-07-31 11:58 ` Stefan Assmann
2014-07-31 13:16 ` Tero Kristo
2014-07-31 12:26 ` Peter Ujfalusi
2014-07-31 12:54 ` Stefan Assmann
2014-07-31 12:58 ` Peter Ujfalusi
2014-07-31 14:05 ` Stefan Assmann
2014-07-31 19:20 ` Mike Turquette
2014-08-01 10:04 ` Stefan Assmann [this message]
2014-08-01 10:38 ` Mark Brown
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=53DB6633.3020005@kpanic.de \
--to=sassmann@kpanic.de \
--cc=linux-arm-kernel@lists.infradead.org \
/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;
as well as URLs for NNTP newsgroup(s).