All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ardelean, Alexandru" <alexandru.Ardelean@analog.com>
To: "linux-clk@vger.kernel.org" <linux-clk@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"sboyd@kernel.org" <sboyd@kernel.org>,
	"geert+renesas@glider.be" <geert+renesas@glider.be>
Cc: "Hennerich, Michael" <Michael.Hennerich@analog.com>,
	"jsarha@ti.com" <jsarha@ti.com>, "ce3a@gmx.de" <ce3a@gmx.de>,
	"mturquette@baylibre.com" <mturquette@baylibre.com>
Subject: Re: [PATCH] clk: clk-gpio: Add dt option to propagate rate change to parent
Date: Fri, 8 Nov 2019 06:50:00 +0000	[thread overview]
Message-ID: <51dbe8f43753ca52b9732aa1f099d3499391f643.camel@analog.com> (raw)
In-Reply-To: <20191107225313.4ED9D21D7B@mail.kernel.org>

On Thu, 2019-11-07 at 14:53 -0800, Stephen Boyd wrote:
> Quoting Ardelean, Alexandru (2019-11-07 05:25:38)
> > On Wed, 2019-11-06 at 14:43 -0800, Stephen Boyd wrote:
> > > Quoting Alexandru Ardelean (2019-11-06 03:35:51)
> > > > From: Michael Hennerich <michael.hennerich@analog.com>
> > > > 
> > > > For certain setups/boards it's useful to propagate the rate change
> > > > of
> > > > the
> > > > clock up one level to the parent clock.
> > > > 
> > > > This change implements this by defining a `clk-set-rate-parent`
> > > > device-
> > > > tree
> > > > property which sets the `CLK_SET_RATE_PARENT` flag to the clock
> > > > (when
> > > > set).
> > > > 
> > > > Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
> > > > Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
> > > > ---
> > > >  drivers/clk/clk-gpio.c | 8 ++++++--
> > > >  1 file changed, 6 insertions(+), 2 deletions(-)
> > > > 
> > > > diff --git a/drivers/clk/clk-gpio.c b/drivers/clk/clk-gpio.c
> > > > index 9d930edd6516..6dfbc4b952fe 100644
> > > > --- a/drivers/clk/clk-gpio.c
> > > > +++ b/drivers/clk/clk-gpio.c
> > > > @@ -241,6 +241,7 @@ static int gpio_clk_driver_probe(struct
> > > > platform_device *pdev)
> > > >         struct device_node *node = pdev->dev.of_node;
> > > >         const char **parent_names, *gpio_name;
> > > >         unsigned int num_parents;
> > > > +       unsigned long clk_flags;
> > > >         struct gpio_desc *gpiod;
> > > >         struct clk *clk;
> > > >         bool is_mux;
> > > > @@ -274,13 +275,16 @@ static int gpio_clk_driver_probe(struct
> > > > platform_device *pdev)
> > > >                 return ret;
> > > >         }
> > > >  
> > > > +       clk_flags = of_property_read_bool(node, "clk-set-rate-
> > > > parent")
> > > > ?
> > > > +                       CLK_SET_RATE_PARENT : 0;
> > > 
> > > Is there a DT binding update somewhere? It looks like a linux-ism
> > > from
> > 
> > Good point. I did not think about the DT, and I guess I didn't search
> > it
> > thoroughly enough. Found DT files now.
> > 
> > > the DT perspective. I wonder if we can somehow figure out that it's
> > > OK
> > > to call clk_set_rate() on the parent here? Or is it safe to assume
> > > that
> > > we can just always call set rate on the parent? I think for a gate
> > > it's
> > > good and we can just do so, but for a mux maybe not. Care to describe
> > > your scenario a little more so we can understand why you want to set
> > > this flag? Is it for a mux or a gate type gpio?
> > > 
> > 
> > For our case we are using it here [with a slight name variation in the
> > prop
> > name]:
> > https://github.com/analogdevicesinc/linux/blob/master/arch/arm/boot/dts/zynq-adrv9361-z7035.dtsi#L43
> > 
> > And on this board:
> > https://wiki.analog.com/resources/eval/user-guides/adrv936x_rfsom/user-guide/introduction
> > 
> > It's for a gate-type GPIO.
> > The clock defined in that DT (ad9361_clkin) is attached to a clock that
> > has
> > a fixed rate (xo_40mhz_fixed_clk), that can become a variable rate
> > [from an
> > external source, when it is provided].
> > 
> > Our understanding, is that a GPIO gate clock should propagate the rate
> > change to the parent clock. The same goes for the GPIO MUX clock.
> > So, the default mode would be to always set CLK_SET_RATE_PARENT.
> > 
> > But, given that there are users of this driver, such a behavior change
> > could break other users, so we are using this DT prop.
> > 
> > There seems to be only one user of gpio-mux-clock in
> > arch/arm64/boot/dts/renesas/ulcb-kf.dtsi
> > 
> > Whereas for gpio-gate-clock, there are multiple users. I can't say
> > whether
> > this change would break anything for them, or it would be fine.
> 
> I think we can just add CLK_SET_RATE_PARENT for all gpio gate clks then
> and you'll be happy? Care to send that patch and Cc Geert and other
> Renesas maintainers? That avoids any DT property and should be fine for
> anyone as far as I can tell. Maybe the inverse will be desired, but not
> wanting rate to propagate is an edge case that we may want to call out
> explicitly in DT at some point in the future, but shouldn't worry about
> until then.
> 

Will resend, thanks.
Geert is CC-ed here as well [unless there is another Geert].

I'll send a V2 in-reply-to this thread.

Thanks
Alex

  parent reply	other threads:[~2019-11-08  6:50 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-06 11:35 [PATCH] clk: clk-gpio: Add dt option to propagate rate change to parent Alexandru Ardelean
2019-11-06 22:43 ` Stephen Boyd
2019-11-07 13:25   ` Ardelean, Alexandru
     [not found]     ` <20191107225313.4ED9D21D7B@mail.kernel.org>
2019-11-08  6:50       ` Ardelean, Alexandru [this message]
2019-11-08  7:10         ` Ardelean, Alexandru
2019-11-08  7:09 ` [PATCH v2] clk: clk-gpio: " Alexandru Ardelean
2019-11-08  7:17 ` [PATCH v3] " Alexandru Ardelean
2019-11-08 21:08   ` Stephen Boyd
2019-11-11  9:31     ` Ardelean, Alexandru

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=51dbe8f43753ca52b9732aa1f099d3499391f643.camel@analog.com \
    --to=alexandru.ardelean@analog.com \
    --cc=Michael.Hennerich@analog.com \
    --cc=ce3a@gmx.de \
    --cc=geert+renesas@glider.be \
    --cc=jsarha@ti.com \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=sboyd@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.