From: Sylwester Nawrocki <s.nawrocki@samsung.com>
To: Tushar Behera <tushar.behera@linaro.org>
Cc: mturquette@linaro.org, linux-arm-kernel@lists.infradead.org,
devicetree@vger.kernel.org, mark.rutland@arm.com,
linux@arm.linux.org.uk, pawel.moll@arm.com, t.figa@samsung.com,
sw0312.kim@samsung.com, linux-kernel@vger.kernel.org,
kyungmin.park@samsung.com, robh+dt@kernel.org,
galak@codeaurora.org, grant.likely@linaro.org,
m.szyprowski@samsung.com
Subject: Re: [PATCH/RFC V6 2/2] clk: Add handling of clk parent and rate assigned from DT
Date: Fri, 13 Jun 2014 17:08:33 +0200 [thread overview]
Message-ID: <539B13F1.8090804@samsung.com> (raw)
In-Reply-To: <538468B5.6090505@linaro.org>
On 27/05/14 12:28, Tushar Behera wrote:
> On 05/19/2014 10:52 PM, Sylwester Nawrocki wrote:
>> This patch adds a helper function to configure clock parents and
>> rates as specified in clock-parents, clock-rates DT properties
>> for a consumer device and a call to it before driver is bound to
>> a device.
>>
>> Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
>
> [ ... ]
>
>> diff --git a/drivers/base/platform.c b/drivers/base/platform.c
>> index 5b47210..f622733 100644
>> --- a/drivers/base/platform.c
>> +++ b/drivers/base/platform.c
>> @@ -23,6 +23,7 @@
>> #include <linux/pm_runtime.h>
>> #include <linux/idr.h>
>> #include <linux/acpi.h>
>> +#include <linux/clk/clk-conf.h>
>>
>> #include "base.h"
>> #include "power/power.h"
>> @@ -486,6 +487,10 @@ static int platform_drv_probe(struct device *_dev)
>> struct platform_device *dev = to_platform_device(_dev);
>> int ret;
>>
>> + ret = of_clk_set_defaults(_dev->of_node, false);
>> + if (ret < 0)
>> + return ret;
>> +
>
> of_clk_set_defaults() is not getting called when the related driver is
> not registered through platform_driver_register().
>
> I came across this issue while testing this patch on peach-pit board with
> following dts change. max98090 audio codec driver is registered through
> module_i2c_driver().
Yes, that shouldn't be surprising, since now in this RFC the clocks setting
is done only for platform bus devices. Similarly the above call would need to
be added to i2c, amba, spi and maybe other busses.
We just need to be careful to avoid attempting to set up clocks of a clock
provider device before it is probed and actually registers its clocks.
I'm still not sure if we should carry on with this approach or do all the
clocks set up in one place, similarly to disabling unused clocks. I'm afraid
when attempting to set up all clocks at one point in time the clock parent/rate
dependencies may get even more hairy.
The deferred probe mechanism helps to resolve the dependencies when the
clock defaults setting is done before or within a driver probe() call. Either
for clock supplier and consumer nodes or a supplier only.
> * arch/arm/boot/dts/exynos5420-peach-pit.dts
>
> &hsi2c_7 {
>
> status = "okay";
>
> max98090: codec@10 {
> compatible = "maxim,max98090";
> reg = <0x10>;
> interrupts = <2 0>;
> interrupt-parent = <&gpx0>;
> pinctrl-names = "default";
> pinctrl-0 = <&max98090_irq>;
> + clocks = <&pmu_system_controller 0>;
> + clock-names = "mclk";
> + clock-parents = <&clock CLK_FIN_PLL>;
> + clock-rates = <24000000>;
> };
> };
--
Regards,
Sylwester
prev parent reply other threads:[~2014-06-13 15:08 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-19 17:22 [PATCH/RFC V6 0/2] clk: Default clk parents and rates assigned in DT Sylwester Nawrocki
2014-05-19 17:22 ` [PATCH/RFC V6 1/2] clk: Add of_clk_get_by_clkspec() helper Sylwester Nawrocki
2014-05-19 17:22 ` [PATCH/RFC V6 2/2] clk: Add handling of clk parent and rate assigned from DT Sylwester Nawrocki
2014-05-20 11:49 ` Sylwester Nawrocki
2014-05-23 1:35 ` Mike Turquette
2014-05-27 10:28 ` Tushar Behera
2014-06-13 15:08 ` Sylwester Nawrocki [this message]
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=539B13F1.8090804@samsung.com \
--to=s.nawrocki@samsung.com \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=grant.likely@linaro.org \
--cc=kyungmin.park@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=m.szyprowski@samsung.com \
--cc=mark.rutland@arm.com \
--cc=mturquette@linaro.org \
--cc=pawel.moll@arm.com \
--cc=robh+dt@kernel.org \
--cc=sw0312.kim@samsung.com \
--cc=t.figa@samsung.com \
--cc=tushar.behera@linaro.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