public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: arnd@arndb•de (Arnd Bergmann)
To: linux-arm-kernel@lists•infradead.org
Subject: [RFC 3/8] mfd:syscon: Introduce claim/read/write/release APIs
Date: Thu, 23 May 2013 23:44:11 +0200	[thread overview]
Message-ID: <201305232344.11974.arnd@arndb.de> (raw)
In-Reply-To: <519A1BBB.2070903@st.com>

On Monday 20 May 2013, Srinivas KANDAGATLA wrote:
> On 17/05/13 15:36, Arnd Bergmann wrote:
>
> Some of the drivers like Ethernet already provide higher level
> interfaces via callbacks. We did implement such a callbacks per each SOC
> in non-DT case, and ended up having code duplicated for each SOC.
> 
> On the other hand using device trees to describe the HW
> configuration(sysconfs) made more sense and got rid of SOC specific
> callbacks.

I'm sure it's possible to reduce the duplication without going all
the way to describing every bit in DT.

> > For drivers that are essentially just wrappers around sysconf,
> > I would make them one driver per SoC and use a low-level interface
> > but still hardcode the offsets in the driver instead of using DT
> > to find the registers.
> > 
> > The pinctrl and reset drivers are examples of this.
> 
> In pinctrl bindings case, I think we could do better job by replacing
> the existing bindings of sysconfs for a group of banks with just two
> integer offsets. This would mean that, we can still use the a common
> driver across the SOCs.
>
> And w.r.t to reset, we are planning on using sysconf based
> reset-controller API sitting underneath the reset-controller subsystem.
> Passing the information from device trees would be much clear and
> flexible than adding new driver per/SOC.

Ok

> >> 2> The infrastructure should protect the claimed registers from
> >> over-writing by other drivers. We do this by claim-read/write-release
> >> style API.
> > 
> > I don't understand this part. Is it about atomicity of accesses to
> > 32-bit registers when you only want to change a bit? That is something
> > the regmap interface handles already.
> 
> I forget to mention a important point here, the protection is at bit
> level for the sysconfs. Some of sysconfs have bits shared across IPs, so
> protecting them while the IP is still using it is what we are trying to
> achieve with sysconf-claim/release apis.
> While it may be overkill, but In past it has found bugs and been helpful
> with a meaning full debug output.

Can you give an example of something that is shared across multiple IPs?

Are those always done in the way that you have e.g. the ethernet pinctrl
in the same register as the usb pinctrl, or could you have an ethernet
pinctrl setting mixed together with the usb clock setting for instance?

If the hardware has been designed in a sensible way rather than just
grown by randomly adding bits in open spaces, I would assume that it's
possible to have high-level interfaces built around ranges of registers
rather than arbitrary subsets of registers.

	Arnd

  reply	other threads:[~2013-05-23 21:44 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-08 14:09 [RFC 0/8] ARM:STiH41x: Add STiH41x platform and board support Srinivas KANDAGATLA
     [not found] ` <1368022248-2153-1-git-send-email-srinivas.kandagatla@st.com>
2013-05-08 14:34   ` [RFC 1/8] serial:st-asc: Add ST ASC driver Arnd Bergmann
2013-05-08 14:39     ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 18:18       ` Srinivas KANDAGATLA
2013-05-08 19:55         ` Arnd Bergmann
2013-05-08 15:34     ` Greg KH
2013-05-08 15:40       ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 15:53         ` Greg KH
2013-05-08 16:03           ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:15             ` Greg KH
2013-05-08 16:31               ` Arnd Bergmann
2013-05-08 16:36                 ` Greg KH
2013-05-10 23:29                   ` Russell King - ARM Linux
2013-05-08 16:39                 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:45                 ` Nicolas Pitre
2013-05-08 18:35                   ` Arnd Bergmann
2013-05-09 13:36                     ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:10       ` Stephen GALLIMORE
2013-05-10 14:45       ` Ben Dooks
2013-05-10 15:23         ` Greg KH
2013-05-10 15:31           ` Ben Dooks
2013-05-10 15:40           ` Stuart MENEFY
2013-05-08 18:02     ` Srinivas KANDAGATLA
     [not found] ` <1368022272-2241-1-git-send-email-srinivas.kandagatla@st.com>
2013-05-08 14:50   ` [RFC 3/8] mfd:syscon: Introduce claim/read/write/release APIs Arnd Bergmann
2013-05-08 15:01     ` Mark Brown
2013-05-08 17:42       ` Srinivas KANDAGATLA
2013-05-09  9:51         ` Mark Brown
2013-05-09 11:58           ` Srinivas KANDAGATLA
2013-05-09 13:26             ` Mark Brown
2013-05-09 14:00               ` Srinivas KANDAGATLA
2013-05-09 14:40                 ` Mark Brown
2013-05-09 14:47                   ` Srinivas KANDAGATLA
2013-05-10 12:51           ` Srinivas KANDAGATLA
2013-05-08 17:32     ` Srinivas KANDAGATLA
2013-05-08 19:48       ` Arnd Bergmann
2013-05-09 10:17         ` Srinivas KANDAGATLA
2013-05-17 14:36           ` Arnd Bergmann
2013-05-20 12:48             ` Srinivas KANDAGATLA
2013-05-23 21:44               ` Arnd Bergmann [this message]
2013-05-24 16:06                 ` Srinivas KANDAGATLA
     [not found] ` <1368022284-2283-1-git-send-email-srinivas.kandagatla@st.com>
2013-05-08 15:06   ` [RFC 4/8] pinctrl:stixxxx: Add pinctrl and pinconf support Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:27     ` Srinivas KANDAGATLA
2013-05-08 16:38       ` Jean-Christophe PLAGNIOL-VILLARD
     [not found] ` <1368022297-2334-1-git-send-email-srinivas.kandagatla@st.com>
2013-05-08 16:18   ` [RFC 5/8] ARM:stih41x: Add STiH415 SOC support Arnd Bergmann
2013-05-08 16:21     ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:50     ` Stephen GALLIMORE
2013-05-08 18:55       ` Arnd Bergmann
2013-05-09 11:09         ` Stephen GALLIMORE
2013-05-08 17:03     ` Srinivas KANDAGATLA
     [not found] ` <1368022329-2424-1-git-send-email-srinivas.kandagatla@st.com>
2013-05-08 16:20   ` [RFC 7/8] ARM:stih41x: Add B2000 board support Arnd Bergmann
2013-05-08 16:24     ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 17:04     ` Srinivas KANDAGATLA
     [not found] ` <1368022260-2197-1-git-send-email-srinivas.kandagatla@st.com>
2013-05-08 14:26   ` [RFC 2/8] ARM:global_timer: Add ARM global timer support Rob Herring
2013-05-08 15:06     ` Stuart MENEFY
2013-05-08 14:38   ` Arnd Bergmann
2013-05-08 14:49     ` Will Deacon
2013-05-08 15:48       ` Stuart MENEFY
2013-05-08 16:23         ` Arnd Bergmann
2013-05-08 14:51     ` Steffen Trumtrar
2013-05-09 14:07     ` Srinivas KANDAGATLA
2013-05-09 14:51       ` Arnd Bergmann
2013-05-09 14:51         ` Srinivas KANDAGATLA
2013-05-13 19:05   ` Linus Walleij
2013-05-13 19:30     ` Thomas Gleixner
2013-05-14  8:46     ` Srinivas KANDAGATLA
2013-05-14  9:23       ` Linus Walleij
2013-05-14 10:26         ` Srinivas KANDAGATLA
     [not found] ` <1368022318-2380-1-git-send-email-srinivas.kandagatla@st.com>
2013-05-15 19:41   ` [RFC 6/8] ARM:stih41x: Add STiH416 SOC support Linus Walleij

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=201305232344.11974.arnd@arndb.de \
    --to=arnd@arndb$(echo .)de \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox