[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20161129210556.GC6095@codeaurora.org>
Date: Tue, 29 Nov 2016 13:05:56 -0800
From: Stephen Boyd <sboyd@...eaurora.org>
To: Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>
Cc: Rob Herring <robh@...nel.org>,
Linux-ALSA <alsa-devel@...a-project.org>,
Linux-DT <devicetree@...r.kernel.org>,
Michael Turquette <mturquette@...libre.com>,
Russell King <linux@...linux.org.uk>,
Linux-Kernel <linux-kernel@...r.kernel.org>,
Mark Brown <broonie@...nel.org>, linux-clk@...r.kernel.org,
Linux-ARM <linux-arm-kernel@...ts.infradead.org>
Subject: Re: [alsa-devel] [PATCH v2] clkdev: add devm_of_clk_get()
On 11/24, Kuninori Morimoto wrote:
>
> Hi Stephen, again
>
> > > I've seen bindings that have the 'clocks' property at the top
> > > level and the appropriate 'clock-names' property to relate the
> > > clocks to a subnode.
> > >
> > > sound_soc {
> > > clocks = <&xxx>, <&xxx>;
> > > clock-names = "cpu", "codec";
> > > ...
> > > cpu {
> > > ...
> > > };
> > > codec {
> > > ...
> > > };
> > > };
> > >
> > > Then the subnodes call clk_get() with the top level device and
> > > the name of their node and things match up. I suppose this
> > > binding is finalized though, so we can't really do that?
> > >
> > > I see that the gpio framework has a similar design called
> > > devm_get_gpiod_from_child(), so how about we add a
> > > devm_get_clk_from_child() API? That would more closely match the
> > > intent here, which is to restrict the clk_get() operation to
> > > child nodes of the device passed as the first argument.
> > >
> > > struct clk *devm_get_clk_from_child(struct device *dev,
> > > const char *con_id,
> > > struct device_node *child);
>
> Thanks, but, my point is that Linux already have "of_clk_get()",
> but we don't have its devm_ version.
> The point is that of_clk_get() can get clock from "device_node".
> Why having devm_ version become so problem ?
The problem is that it encourages the use of of_clk_get() when
clk_get() is more desirable. Ideally of_clk_get() is never used
when a device exists. In this case, it seems like we need to
support it though, hence the suggestion of having a
devm_get_clk_from_child() API, that explicitly reads as "get a
clock from a child node of this device". The distinction is
important, because of_clk_get() should rarely be used.
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
Powered by blists - more mailing lists