All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Turquette <mturquette@linaro.org>
To: Peter Ujfalusi <peter.ujfalusi@ti.com>,
	Javier Martinez Canillas <javier@dowhile0.org>
Cc: Grant Likely <grant.likely@linaro.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	ldewangan@nvidia.com, linux-doc@vger.kernel.org,
	Nishanth Menon <nm@ti.com>, Rob Herring <robh+dt@kernel.org>
Subject: Re: [RESEND 2/2] clk: Add driver for Palmas clk32kg and clk32kgaudio clocks
Date: Tue, 01 Jul 2014 21:33:38 -0700	[thread overview]
Message-ID: <20140702043338.23338.31600@quantum> (raw)
In-Reply-To: <53B0FC27.5040002@ti.com>

Quoting Peter Ujfalusi (2014-06-29 22:56:55)
> Hi Javier,
> 
> On 06/27/2014 09:23 PM, Javier Martinez Canillas wrote:
> > Hello Peter,
> > 
> > On Fri, Jun 27, 2014 at 8:01 AM, Peter Ujfalusi <peter.ujfalusi@ti.com> wrote:
> >> Palmas class of devices can provide 32K clock(s) to be used by other devices
> >> on the board. Depending on the actual device the provided clocks can be:
> >> CLK32K_KG and CLK32K_KGAUDIO
> >> or only one:
> >> CLK32K_KG (TPS659039 for example)
> >>
> >> Use separate compatible flags for the two 32K clock.
> >> A system which needs or have only one of the 32k clock from
> >> Palmas will need to add node(s) for each clock as separate section
> >> in the dts file.
> >> The two compatible property is:
> >> "ti,palmas-clk32kg" for clk32kg clock
> >> "ti,palmas-clk32kgaudio" for clk32kgaudio clock
> >>
> >> Apart from the register control of the clocks - which is done via
> >> the clock API there is a posibility to enable the external sleep
> >> control. In this way the clock can be enabled/disabled on demand by the
> >> user of the clock.
> >>
> >> See the documentation for more details.
> >>
> >> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
> >> Reviewed-by: Nishanth Menon <nm@ti.com>
> 
> >> +static unsigned long palmas_clks_recalc_rate(struct clk_hw *hw,
> >> +                                            unsigned long parent_rate)
> >> +{
> >> +       return 32768;
> >> +}
> > 
> > I see that other clock drivers using a constant rate return 0 if the
> > clock has not been enabled.
> 
> and there are examples when similar fixed clock drivers returns only the clock
> value, like clk-max77686. I can not find clear guidelines neither in the
> documentation or around the header/c files for this.
> Mike, what is the appropriate way of handling the recalc_rate?

You are right that there are no guidelines stating, "don't do that", but
please, "don't do that" ;-)

clk_enable and clk_set_rate are entirely unrelated operations from the
perspective of the Linux clock framework, and mixing these two classes
of operations is a recipe for pain.

> 
> > So maybe is more correct to have something
> > like the following?
> > 
> > if (__clk_is_enabled(hw->clk))
> >         return 32768;
> > else
> >         return 0;

So what happens here if this is gateable clock and later on we call
clk_enable on it? The clocks rate will still be zero since
clk_enable/clk_disable do not touch the rate at all.

Regards,
Mike

> > 
> > Best regards,
> > Javier
> > 
> 
> 
> -- 
> Péter

  reply	other threads:[~2014-07-02  4:33 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-27  6:01 [RESEND 0/2] clk: Support for Palmas clk32kg and clk32kgaudio clocks Peter Ujfalusi
2014-06-27  6:01 ` Peter Ujfalusi
2014-06-27  6:01 ` [RESEND 1/2] dt/bindings: Binding documentation " Peter Ujfalusi
2014-06-27  6:01   ` Peter Ujfalusi
2014-06-27  6:01 ` [RESEND 2/2] clk: Add driver " Peter Ujfalusi
2014-06-27  6:01   ` Peter Ujfalusi
2014-06-27 18:23   ` Javier Martinez Canillas
2014-06-30  5:56     ` Peter Ujfalusi
2014-06-30  5:56       ` Peter Ujfalusi
2014-07-02  4:33       ` Mike Turquette [this message]
2014-07-02  9:16         ` Javier Martinez Canillas
2014-07-02  4:53 ` [RESEND 0/2] clk: Support " Mike Turquette

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=20140702043338.23338.31600@quantum \
    --to=mturquette@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=grant.likely@linaro.org \
    --cc=javier@dowhile0.org \
    --cc=ldewangan@nvidia.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=nm@ti.com \
    --cc=peter.ujfalusi@ti.com \
    --cc=robh+dt@kernel.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 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.