All of lore.kernel.org
 help / color / mirror / Atom feed
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/4] clk: dt: st: Introduce clock domain documentation
Date: Wed, 28 Jan 2015 07:58:35 +0000	[thread overview]
Message-ID: <20150128075835.GF4567@x1> (raw)
In-Reply-To: <20150128011902.22722.85007@quantum>

On Tue, 27 Jan 2015, Mike Turquette wrote:

> Quoting Lee Jones (2015-01-26 03:14:00)
> > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> > ---
> >  .../devicetree/bindings/clock/st/st,clk-domain.txt | 34 ++++++++++++++++++++++
> >  1 file changed, 34 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/clock/st/st,clk-domain.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/clock/st/st,clk-domain.txt b/Documentation/devicetree/bindings/clock/st/st,clk-domain.txt
> > new file mode 100644
> > index 0000000..7309937
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/clock/st/st,clk-domain.txt
> > @@ -0,0 +1,34 @@
> > +STMicroelectronics Clock Domain
> > +
> > +ST hardware have a bunch of clocks which must not be turned off.
> > +If drivers a) fail to obtain a reference to any of these or b) give
> > +up a previously obtained reference during suspend, the common clk
> > +framework will attempt to turn them off and the hardware will
> > +subsequently die.  The only way to recover from this failure is to
> > +restart.
> > +
> > +To avoid either of these two scenarios from catastrophically
> > +disabling the running system we have implemented a clock domain
> > +where clocks are consumed and references are taken, thus preventing
> > +them from being shut down by the framework.
> > +
> > +We use the generic clock bindings found in:
> > +  Documentation/devicetree/bindings/clock/clock-bindings.txt
> > +
> > +Required properties:
> > +- compatible : Must be "st,clk-domain"
> 
> Seems like a useful feature for any clock provider, not just ST's. Have
> you thought about making this solution generic for DT-based clock
> providers?
> 
> We could amend the common clock binding to include a special "always on"
> clock group that is automagically prepared and enabled when the clock
> provider/driver is registered, using a common function.

OMG, I'm actually going to strangle you!

This is what I've been proposing to you (privately) for weeks.

Does this ring any bells?

  "Just FYI, I am not going to add any method to the kernel that
  permanently enables a clock via some new api. At the worst case your
  clock driver can simply call clk_prepare_enable in its probe
  function (there are some examples of this)."

I will be more than happy to make this a generic driver, if thats what
you want (now). ;)

> > +Example:
> > +
> > +clk-domain {
> > +       compatible = "st,clk-domain";
> > +       clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>,
> > +                <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> > +                <&clk_s_c0_flexgen CLK_MMC_1>,
> > +                <&clk_s_c0_flexgen CLK_ICN_SBC>,
> > +                <&clk_s_c0_flexgen CLK_ICN_LMI>,
> > +                <&clk_s_c0_flexgen CLK_ICN_CPU>,
> > +                <&clk_s_c0_flexgen CLK_TX_ICN_DMU>,
> > +                <&clk_s_a0_flexgen CLK_IC_LMI0>,
> > +                <&clk_m_a9>;
> > +};

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones@linaro.org>
To: Mike Turquette <mturquette@linaro.org>
Cc: devicetree@vger.kernel.org, sboyd@codeaurora.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, kernel@stlinux.com
Subject: Re: [PATCH 4/4] clk: dt: st: Introduce clock domain documentation
Date: Wed, 28 Jan 2015 07:58:35 +0000	[thread overview]
Message-ID: <20150128075835.GF4567@x1> (raw)
In-Reply-To: <20150128011902.22722.85007@quantum>

On Tue, 27 Jan 2015, Mike Turquette wrote:

> Quoting Lee Jones (2015-01-26 03:14:00)
> > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> > ---
> >  .../devicetree/bindings/clock/st/st,clk-domain.txt | 34 ++++++++++++++++++++++
> >  1 file changed, 34 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/clock/st/st,clk-domain.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/clock/st/st,clk-domain.txt b/Documentation/devicetree/bindings/clock/st/st,clk-domain.txt
> > new file mode 100644
> > index 0000000..7309937
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/clock/st/st,clk-domain.txt
> > @@ -0,0 +1,34 @@
> > +STMicroelectronics Clock Domain
> > +
> > +ST hardware have a bunch of clocks which must not be turned off.
> > +If drivers a) fail to obtain a reference to any of these or b) give
> > +up a previously obtained reference during suspend, the common clk
> > +framework will attempt to turn them off and the hardware will
> > +subsequently die.  The only way to recover from this failure is to
> > +restart.
> > +
> > +To avoid either of these two scenarios from catastrophically
> > +disabling the running system we have implemented a clock domain
> > +where clocks are consumed and references are taken, thus preventing
> > +them from being shut down by the framework.
> > +
> > +We use the generic clock bindings found in:
> > +  Documentation/devicetree/bindings/clock/clock-bindings.txt
> > +
> > +Required properties:
> > +- compatible : Must be "st,clk-domain"
> 
> Seems like a useful feature for any clock provider, not just ST's. Have
> you thought about making this solution generic for DT-based clock
> providers?
> 
> We could amend the common clock binding to include a special "always on"
> clock group that is automagically prepared and enabled when the clock
> provider/driver is registered, using a common function.

OMG, I'm actually going to strangle you!

This is what I've been proposing to you (privately) for weeks.

Does this ring any bells?

  "Just FYI, I am not going to add any method to the kernel that
  permanently enables a clock via some new api. At the worst case your
  clock driver can simply call clk_prepare_enable in its probe
  function (there are some examples of this)."

I will be more than happy to make this a generic driver, if thats what
you want (now). ;)

> > +Example:
> > +
> > +clk-domain {
> > +       compatible = "st,clk-domain";
> > +       clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>,
> > +                <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> > +                <&clk_s_c0_flexgen CLK_MMC_1>,
> > +                <&clk_s_c0_flexgen CLK_ICN_SBC>,
> > +                <&clk_s_c0_flexgen CLK_ICN_LMI>,
> > +                <&clk_s_c0_flexgen CLK_ICN_CPU>,
> > +                <&clk_s_c0_flexgen CLK_TX_ICN_DMU>,
> > +                <&clk_s_a0_flexgen CLK_IC_LMI0>,
> > +                <&clk_m_a9>;
> > +};

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones@linaro.org>
To: Mike Turquette <mturquette@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, kernel@stlinux.com,
	sboyd@codeaurora.org, devicetree@vger.kernel.org
Subject: Re: [PATCH 4/4] clk: dt: st: Introduce clock domain documentation
Date: Wed, 28 Jan 2015 07:58:35 +0000	[thread overview]
Message-ID: <20150128075835.GF4567@x1> (raw)
In-Reply-To: <20150128011902.22722.85007@quantum>

On Tue, 27 Jan 2015, Mike Turquette wrote:

> Quoting Lee Jones (2015-01-26 03:14:00)
> > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> > ---
> >  .../devicetree/bindings/clock/st/st,clk-domain.txt | 34 ++++++++++++++++++++++
> >  1 file changed, 34 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/clock/st/st,clk-domain.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/clock/st/st,clk-domain.txt b/Documentation/devicetree/bindings/clock/st/st,clk-domain.txt
> > new file mode 100644
> > index 0000000..7309937
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/clock/st/st,clk-domain.txt
> > @@ -0,0 +1,34 @@
> > +STMicroelectronics Clock Domain
> > +
> > +ST hardware have a bunch of clocks which must not be turned off.
> > +If drivers a) fail to obtain a reference to any of these or b) give
> > +up a previously obtained reference during suspend, the common clk
> > +framework will attempt to turn them off and the hardware will
> > +subsequently die.  The only way to recover from this failure is to
> > +restart.
> > +
> > +To avoid either of these two scenarios from catastrophically
> > +disabling the running system we have implemented a clock domain
> > +where clocks are consumed and references are taken, thus preventing
> > +them from being shut down by the framework.
> > +
> > +We use the generic clock bindings found in:
> > +  Documentation/devicetree/bindings/clock/clock-bindings.txt
> > +
> > +Required properties:
> > +- compatible : Must be "st,clk-domain"
> 
> Seems like a useful feature for any clock provider, not just ST's. Have
> you thought about making this solution generic for DT-based clock
> providers?
> 
> We could amend the common clock binding to include a special "always on"
> clock group that is automagically prepared and enabled when the clock
> provider/driver is registered, using a common function.

OMG, I'm actually going to strangle you!

This is what I've been proposing to you (privately) for weeks.

Does this ring any bells?

  "Just FYI, I am not going to add any method to the kernel that
  permanently enables a clock via some new api. At the worst case your
  clock driver can simply call clk_prepare_enable in its probe
  function (there are some examples of this)."

I will be more than happy to make this a generic driver, if thats what
you want (now). ;)

> > +Example:
> > +
> > +clk-domain {
> > +       compatible = "st,clk-domain";
> > +       clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>,
> > +                <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> > +                <&clk_s_c0_flexgen CLK_MMC_1>,
> > +                <&clk_s_c0_flexgen CLK_ICN_SBC>,
> > +                <&clk_s_c0_flexgen CLK_ICN_LMI>,
> > +                <&clk_s_c0_flexgen CLK_ICN_CPU>,
> > +                <&clk_s_c0_flexgen CLK_TX_ICN_DMU>,
> > +                <&clk_s_a0_flexgen CLK_IC_LMI0>,
> > +                <&clk_m_a9>;
> > +};

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

  reply	other threads:[~2015-01-28  7:58 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-26 11:13 [PATCH 0/4] clk: st: New clock domain Lee Jones
2015-01-26 11:13 ` Lee Jones
2015-01-26 11:13 ` Lee Jones
2015-01-26 11:13 ` [PATCH 1/4] ARM: sti: stih407-family: Supply defines for CLOCKGEN A0 Lee Jones
2015-01-26 11:13   ` Lee Jones
2015-01-26 11:13   ` Lee Jones
2015-01-26 11:13 ` [PATCH 2/4] ARM: sti: stih407-family: Provide Clock Domain information Lee Jones
2015-01-26 11:13   ` Lee Jones
2015-01-26 11:13 ` [PATCH 3/4] clk: st: Provide a clock domain Lee Jones
2015-01-26 11:13   ` Lee Jones
2015-01-26 11:13   ` Lee Jones
2015-01-26 11:14 ` [PATCH 4/4] clk: dt: st: Introduce clock domain documentation Lee Jones
2015-01-26 11:14   ` Lee Jones
2015-01-28  1:19   ` Mike Turquette
2015-01-28  1:19     ` Mike Turquette
2015-01-28  1:19     ` Mike Turquette
2015-01-28  7:58     ` Lee Jones [this message]
2015-01-28  7:58       ` Lee Jones
2015-01-28  7:58       ` Lee Jones
2015-01-28 17:46       ` Mike Turquette
2015-01-28 17:46         ` 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=20150128075835.GF4567@x1 \
    --to=lee.jones@linaro.org \
    --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 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.