linux-serial.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Srinivas KANDAGATLA <srinivas.kandagatla@st.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: dong.aisheng@linaro.org, sameo@linux.intel.com,
	Rob Landley <rob@landley.net>,
	Grant Likely <grant.likely@secretlab.ca>,
	Rob Herring <rob.herring@calxeda.com>,
	Russell King <linux@arm.linux.org.uk>,
	Linus Walleij <linus.walleij@linaro.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jiri Slaby <jslaby@suse.cz>, Stuart Menefy <stuart.menefy@st.com>,
	Shawn Guo <shawn.guo@linaro.org>, Olof Johansson <olof@lixom.net>,
	Jason Cooper <jason@lakedaemon.net>,
	Stephen Warren <swarren@nvidia.com>,
	Maxime Ripard <maxime.ripard@free-electrons.com>,
	Nicolas Pitre <nico@linaro.org>,
	Will Deacon <will.deacon@arm.com>,
	Dave Martin <dave.martin@linaro.org>,
	Marc Zyngier <marc.zyngier@arm.com>,
	Viresh Kumar <viresh.kumar@linaro.org>,
	Mark Brown <broonie@opensource.wolfsonmicro.com>,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	devicetree-discuss@lists.ozlabs.org
Subject: Re: [RFC 3/8] mfd:syscon: Introduce claim/read/write/release APIs
Date: Thu, 09 May 2013 11:17:37 +0100	[thread overview]
Message-ID: <518B77C1.70107@st.com> (raw)
In-Reply-To: <201305082148.10933.arnd@arndb.de>

Hi Arnd,
Thankyou for extending the discussion.

On 08/05/13 20:48, Arnd Bergmann wrote:
> On Wednesday 08 May 2013, Srinivas KANDAGATLA wrote:
>> the pinctrl driver calls syconf_claim(np, "st,alt-control) to get a
>> field and then do a read/write on the field.
>>
>> Just in pinctrl driver we use around 50-100 sysconf registers scatters
>> across different groups.
>>
>> Without these new APIs, its very difficult to pass this information to
>> the drivers.
> But are those necessarily things you would configure using DT?
In last comment.
>
> If there are so many registers that are shared between mutliple
> subsystems, maybe using drivers/mfd/syscon for that is taking things
> further than you should, since it is unlike what any of the other
> SoC families need from syscon.
I agree, my initial approach was having a dedicated driver specific to
ST syscon, however syscon seems to do things very much similar to what
we want, so I have integrated those 3 functions in syscon.
Am happy to go back with my first approach of adding ST specific syscon
driver if no one is actually going to benefit with such a change to
syscon driver.

>
> Can you describe how your syscon registers are laid out?
On STiH416 SOC we have 9 SYSCONF(aka System Configuration
Registers)named banks/groups, each bank has its own memory map.
Each sysconf bank has number of 32 bit registers which vary from bank to
bank, like sysconf bank "sbc" has range from SYSTEM_CONFIG0 to
SYSTEM_CONFIG999 where as  sysconf bank "front" has range of
SYSTEM_CONFIG1000 to SYSTEM_CONFIG1999 and so on.

Each register is assigned with a unique SYCONF number, example:
SYSTEM_CONFIG100, SYSTEM_CONFIG101 , .. and so on.
Each sysconf contains bits of the IP configurations wired-up to the
sysconf register bits.

As example:

- Each pinctrl entry for set of 8 pins uses around 8-10 sysconfig
register to control pinconf and pin functions.
- IPs like Ethernet have few bit like Ethernet-Mode selection external
or internal phyclk wired up to bits in sysconf registers,
- Few clocks are controlled by sysconf registers.
- Reset to IPs are wired up to bits of sysconf same registers.
- ARM core soft reset is wired up to the sysconf registers...
And most of the IPs have similar requirements ......

Total layout of the sysconf changes per SOC, and the bit arrangements
aswell, however the core IP(pinctrl, etherenet ...) and logic to drive
those bits remains exactly same.

As the code remains the same, the information about the hardware
configuration and offsets to the registers are passed by device trees
using the node properties.

In general the requirements of the sysconf support to the SOC/driver
support is.
1> It should be able to read/write a sysconf register bits without
having to "if" each SOC in the code. So that code is totally abstracted.
Which is currently achieved by passing the information from the device
trees and the driver just uses the property to get it.
2> The infrastructure should protect the claimed registers from
over-writing by other drivers. We do this by claim-read/write-release
style API.
3> The driver should be able to set a group of sysconf registers bits to
a particular values before initialises the IP. I was thinking of doing
this in a same way as pinctrl state.

Any suggestion is most appreciated?

Thanks,
srini

> Which subsystems beside pinctrl need to directly interact
> with it? Is there any logical structure in it or do you just
> have tons of bits scattered around an MMIO area?
>
> 	Arnd
>


  reply	other threads:[~2013-05-09 10:17 UTC|newest]

Thread overview: 79+ 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
2013-05-08 14:11 ` [RFC 2/8] ARM:global_timer: Add ARM global timer support Srinivas KANDAGATLA
2013-05-08 14:26   ` Rob Herring
2013-05-08 15:06     ` Stuart MENEFY
2013-05-08 14:38   ` Arnd Bergmann
     [not found]     ` <201305081638.23100.arnd-r2nGTMty4D4@public.gmane.org>
2013-05-08 14:49       ` Will Deacon
2013-05-08 15:48         ` Stuart MENEFY
     [not found]           ` <518A73CF.8000309-qxv4g6HH51o@public.gmane.org>
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
     [not found]   ` <1368022260-2197-1-git-send-email-srinivas.kandagatla-qxv4g6HH51o@public.gmane.org>
2013-05-13 19:05     ` Linus Walleij
     [not found]       ` <CACRpkdZCP=w=4Q3bnuMQxm=Oe-uZke+Cc5NgddM5vsQbgr9E-Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-05-13 19:30         ` Thomas Gleixner
2013-05-14  8:46         ` Srinivas KANDAGATLA
     [not found]           ` <5191F9EE.6070008-qxv4g6HH51o@public.gmane.org>
2013-05-14  9:23             ` Linus Walleij
     [not found]               ` <CACRpkdYh72hQHSK-a9r8R9qfnQv06412YqVNeYpc_rZhMeiXww-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-05-14 10:26                 ` Srinivas KANDAGATLA
2013-05-08 14:11 ` [RFC 3/8] mfd:syscon: Introduce claim/read/write/release APIs Srinivas KANDAGATLA
2013-05-08 14:50   ` Arnd Bergmann
2013-05-08 15:01     ` Mark Brown
2013-05-08 17:42       ` Srinivas KANDAGATLA
     [not found]         ` <518A8E6C.6070907-qxv4g6HH51o@public.gmane.org>
2013-05-09  9:51           ` Mark Brown
2013-05-09 11:58             ` Srinivas KANDAGATLA
2013-05-09 13:26               ` Mark Brown
     [not found]                 ` <20130509132600.GA3200-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
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
     [not found]       ` <518A8C1D.3090600-qxv4g6HH51o@public.gmane.org>
2013-05-08 19:48         ` Arnd Bergmann
2013-05-09 10:17           ` Srinivas KANDAGATLA [this message]
     [not found]             ` <518B77C1.70107-qxv4g6HH51o@public.gmane.org>
2013-05-17 14:36               ` Arnd Bergmann
2013-05-20 12:48                 ` Srinivas KANDAGATLA
2013-05-23 21:44                   ` Arnd Bergmann
2013-05-24 16:06                     ` Srinivas KANDAGATLA
     [not found]     ` <201305081650.23264.arnd-r2nGTMty4D4@public.gmane.org>
2013-05-08 19:41       ` Re[2]: " Alexander Shiyan
     [not found] ` <1368022187-1633-1-git-send-email-srinivas.kandagatla-qxv4g6HH51o@public.gmane.org>
2013-05-08 14:10   ` [RFC 1/8] serial:st-asc: Add ST ASC driver Srinivas KANDAGATLA
2013-05-08 14:34     ` 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
     [not found]       ` <201305081634.43498.arnd-r2nGTMty4D4@public.gmane.org>
2013-05-08 15:34         ` Greg KH
     [not found]           ` <20130508153459.GA17186-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
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
     [not found]                   ` <B5A00B86-5332-427E-A82A-5B71EC0979A8-sclMFOaUSTBWk0Htik3J/w@public.gmane.org>
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
     [not found]                           ` <alpine.LFD.2.03.1305081239260.13109-hIgblCxmbi8OMTOF05IoTw@public.gmane.org>
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 13:50           ` Stephen GALLIMORE
2013-05-10 14:08             ` Greg KH
2013-05-10 14:45           ` Ben Dooks
     [not found]             ` <518D07FB.7010606-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>
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
2013-05-20 11:49       ` Stephen GALLIMORE
2013-05-22 15:13         ` Arnd Bergmann
2013-05-23 16:26           ` Stephen GALLIMORE
2013-05-08 14:11   ` [RFC 4/8] pinctrl:stixxxx: Add pinctrl and pinconf support Srinivas KANDAGATLA
     [not found]     ` <1368022284-2283-1-git-send-email-srinivas.kandagatla-qxv4g6HH51o@public.gmane.org>
2013-05-08 15:06       ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:27         ` Srinivas KANDAGATLA
     [not found]           ` <518A7CFD.1010602-qxv4g6HH51o@public.gmane.org>
2013-05-08 16:38             ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 14:12   ` [RFC 7/8] ARM:stih41x: Add B2000 board support Srinivas KANDAGATLA
     [not found]     ` <1368022329-2424-1-git-send-email-srinivas.kandagatla-qxv4g6HH51o@public.gmane.org>
2013-05-08 16:20       ` Arnd Bergmann
     [not found]         ` <201305081820.23968.arnd-r2nGTMty4D4@public.gmane.org>
2013-05-08 16:24           ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 17:04         ` Srinivas KANDAGATLA
2013-05-08 14:11 ` =?y?q?=5BRFC=205/8=5D=20ARM=3Astih41x=3A=20Add=20STiH415=20SOC=20support?= Srinivas KANDAGATLA
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 17:03     ` Srinivas KANDAGATLA
2013-05-08 14:11 ` [RFC 6/8] ARM:stih41x: Add STiH416 " Srinivas KANDAGATLA
     [not found]   ` <1368022318-2380-1-git-send-email-srinivas.kandagatla-qxv4g6HH51o@public.gmane.org>
2013-05-15 19:41     ` Linus Walleij
2013-05-08 14:12 ` [RFC 8/8] ARM:stih41x: Add B2020 board support Srinivas KANDAGATLA

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=518B77C1.70107@st.com \
    --to=srinivas.kandagatla@st.com \
    --cc=arnd@arndb.de \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=dave.martin@linaro.org \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=dong.aisheng@linaro.org \
    --cc=grant.likely@secretlab.ca \
    --cc=gregkh@linuxfoundation.org \
    --cc=jason@lakedaemon.net \
    --cc=jslaby@suse.cz \
    --cc=linus.walleij@linaro.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=marc.zyngier@arm.com \
    --cc=maxime.ripard@free-electrons.com \
    --cc=nico@linaro.org \
    --cc=olof@lixom.net \
    --cc=rob.herring@calxeda.com \
    --cc=rob@landley.net \
    --cc=sameo@linux.intel.com \
    --cc=shawn.guo@linaro.org \
    --cc=stuart.menefy@st.com \
    --cc=swarren@nvidia.com \
    --cc=viresh.kumar@linaro.org \
    --cc=will.deacon@arm.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).