From: sboyd@codeaurora.org (Stephen Boyd)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH RFC 0/2] clk: add metag specific gate/mux clocks
Date: Thu, 16 May 2013 15:22:36 -0700 [thread overview]
Message-ID: <51955C2C.5060705@codeaurora.org> (raw)
In-Reply-To: <5194AD63.9020804@imgtec.com>
On 05/16/13 02:56, James Hogan wrote:
> On 15/05/13 23:31, Stephen Boyd wrote:
>> On 05/10/13 08:02, James Hogan wrote:
>>> This adds a metag architecture specific clk-gate and clk-mux which
>>> extends the generic ones to use global lock2 to protect the register
>>> fields. It is common with metag to have an RTOS running on a different
>>> thread or core with access to different bits in the same register (which
>>> contain clock gate/switch bits for other clocks). Access to such
>>> registers must be serialised with a global lock such as the one provided
>>> by the metag architecture port in <asm/global_lock.h>
>>>
>>> RFC because despite extending the generic clocks there's still a bit of
>>> duplicated code necessary. One alternative is to add special cases to
>>> the generic clock components for when a global or callback function
>>> based lock is desired instead of a spinlock, but I wasn't sure if that
>>> sort of hack would really be appreciated in the generic drivers.
>>>
>>> Comments?
>> Can you please Cc the devicetree mailing list when proposing new bindings?
> Erm, I think it was on Cc (devicetree-discuss at lists.ozlabs.org yeh?)
I added them in my reply.
>
>> Your patchset brings up a question I've had which is if we should be
>> putting the bits and register width information in devicetree at all. On
>> the one hand it's nice to not have anything in C code, just iterate over
>> nodes and register clocks. On the other hand, it's the first time I've
>> seen anyone put the register interface into devicetree. From what I can
>> tell, the regulator bindings have put at most the register base and
>> physical properties like enable-time, max voltage, etc., but not what
>> bits are needed to enable/disable a regulator. Also I thought I read
>> somewhere that reg properties shouldn't overlap each other, so if you
>> ever have two clocks living in the same register we're going to violate
>> that.
> Oh, I wasn't aware of that limitation.
>
> The SoC I'm working with has some registers full of clock enable bits (I
> guess one could have a gate array component with up to 32 clock inputs
> and outputs) and some registers full of clock mux switch bits (that
> would get really messy to define as a block since each bit switches
> between 2 parents, and some of the parents are other clock muxes in the
> same block). Some registers contain a bunch of low power related bits
> together, including clock enable bits in the same register as various
> pinconf settings which is used by a separate pinctrl driver.
>
I have similar hardware and so I would like to hear what the devicetree
knowledgeable people think about it. Hopefully Rob or Grant can shed
some light here.
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
WARNING: multiple messages have this Message-ID (diff)
From: Stephen Boyd <sboyd@codeaurora.org>
To: James Hogan <james.hogan@imgtec.com>
Cc: Mike Turquette <mturquette@linaro.org>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
"devicetree-discuss@lists.ozlabs.org"
<devicetree-discuss@lists.ozlabs.org>,
Rob Herring <rob.herring@calxeda.com>,
Grant Likely <grant.likely@linaro.org>
Subject: Re: [PATCH RFC 0/2] clk: add metag specific gate/mux clocks
Date: Thu, 16 May 2013 15:22:36 -0700 [thread overview]
Message-ID: <51955C2C.5060705@codeaurora.org> (raw)
In-Reply-To: <5194AD63.9020804@imgtec.com>
On 05/16/13 02:56, James Hogan wrote:
> On 15/05/13 23:31, Stephen Boyd wrote:
>> On 05/10/13 08:02, James Hogan wrote:
>>> This adds a metag architecture specific clk-gate and clk-mux which
>>> extends the generic ones to use global lock2 to protect the register
>>> fields. It is common with metag to have an RTOS running on a different
>>> thread or core with access to different bits in the same register (which
>>> contain clock gate/switch bits for other clocks). Access to such
>>> registers must be serialised with a global lock such as the one provided
>>> by the metag architecture port in <asm/global_lock.h>
>>>
>>> RFC because despite extending the generic clocks there's still a bit of
>>> duplicated code necessary. One alternative is to add special cases to
>>> the generic clock components for when a global or callback function
>>> based lock is desired instead of a spinlock, but I wasn't sure if that
>>> sort of hack would really be appreciated in the generic drivers.
>>>
>>> Comments?
>> Can you please Cc the devicetree mailing list when proposing new bindings?
> Erm, I think it was on Cc (devicetree-discuss@lists.ozlabs.org yeh?)
I added them in my reply.
>
>> Your patchset brings up a question I've had which is if we should be
>> putting the bits and register width information in devicetree at all. On
>> the one hand it's nice to not have anything in C code, just iterate over
>> nodes and register clocks. On the other hand, it's the first time I've
>> seen anyone put the register interface into devicetree. From what I can
>> tell, the regulator bindings have put at most the register base and
>> physical properties like enable-time, max voltage, etc., but not what
>> bits are needed to enable/disable a regulator. Also I thought I read
>> somewhere that reg properties shouldn't overlap each other, so if you
>> ever have two clocks living in the same register we're going to violate
>> that.
> Oh, I wasn't aware of that limitation.
>
> The SoC I'm working with has some registers full of clock enable bits (I
> guess one could have a gate array component with up to 32 clock inputs
> and outputs) and some registers full of clock mux switch bits (that
> would get really messy to define as a block since each bit switches
> between 2 parents, and some of the parents are other clock muxes in the
> same block). Some registers contain a bunch of low power related bits
> together, including clock enable bits in the same register as various
> pinconf settings which is used by a separate pinctrl driver.
>
I have similar hardware and so I would like to hear what the devicetree
knowledgeable people think about it. Hopefully Rob or Grant can shed
some light here.
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
next prev parent reply other threads:[~2013-05-16 22:22 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-10 15:02 [PATCH RFC 0/2] clk: add metag specific gate/mux clocks James Hogan
2013-05-10 15:02 ` James Hogan
2013-05-10 15:02 ` [PATCH RFC 1/2] clk: metag/clk-gate: add metag specific clock gate James Hogan
2013-05-10 15:02 ` James Hogan
2013-05-10 15:02 ` [PATCH RFC 2/2] clk: metag/clk-mux: add metag specific clk-mux James Hogan
2013-05-10 15:02 ` James Hogan
2013-05-10 15:02 ` [PATCH RFC 0/2] clk: add metag specific gate/mux clocks James Hogan
2013-05-10 15:02 ` James Hogan
2013-05-10 15:09 ` James Hogan
2013-05-10 15:09 ` James Hogan
2013-05-10 15:02 ` [PATCH RFC 1/2] clk: metag/clk-gate: add metag specific clock gate James Hogan
2013-05-10 15:02 ` James Hogan
2013-05-10 15:02 ` [PATCH RFC 2/2] clk: metag/clk-mux: add metag specific clk-mux James Hogan
2013-05-10 15:02 ` James Hogan
2013-05-15 22:31 ` [PATCH RFC 0/2] clk: add metag specific gate/mux clocks Stephen Boyd
2013-05-15 22:31 ` Stephen Boyd
2013-05-15 22:31 ` Stephen Boyd
2013-05-16 9:56 ` James Hogan
2013-05-16 9:56 ` James Hogan
2013-05-16 9:56 ` James Hogan
2013-05-16 22:22 ` Stephen Boyd [this message]
2013-05-16 22:22 ` Stephen Boyd
2013-05-17 8:18 ` James Hogan
2013-05-17 8:18 ` James Hogan
2013-05-17 8:18 ` James Hogan
2013-05-29 17:58 ` Mike Turquette
2013-05-29 17:58 ` Mike Turquette
2013-05-29 18:38 ` Mike Turquette
2013-05-29 18:38 ` 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=51955C2C.5060705@codeaurora.org \
--to=sboyd@codeaurora.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.