From: Arnd Bergmann <arnd@arndb.de>
To: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Kenneth Heitke <kheitke@codeaurora.org>,
sdharia@codeaurora.org, David Brown <davidb@codeaurora.org>,
bryanh@codeaurora.org, linux-arm-msm@vger.kernel.org,
rdunlap@xenotime.net, rmk+kernel@arm.linux.org.uk,
john.stultz@linaro.org, akpm@linux-foundation.org,
ohad@wizery.com, gregkh@suse.de, stefanr@s5r6.in-berlin.de,
lethal@linux-sh.org, linville@tuxdriver.com, zajec5@gmail.com,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH] slimbus: Linux driver framework for SLIMbus.
Date: Wed, 17 Aug 2011 16:00:37 +0200 [thread overview]
Message-ID: <201108171600.37791.arnd@arndb.de> (raw)
In-Reply-To: <1313586241.19990.94.camel@finisterre.wolfsonmicro.main>
On Wednesday 17 August 2011, Mark Brown wrote:
> On Wed, 2011-08-17 at 12:42 +0200, Arnd Bergmann wrote:
> > > I'd expect that bringing the device out of reset is going to be largely
> > > unrelated to the host controller, it's going to be GPIOs, clocks and
> > > regulators. The individual drivers are going to want to manage this
> > > stuff dynamically at runtime too.
>
> > But it's even less related to the individual driver than to the host.
>
> No, not at all - all the bus specifies is the two wire control
> interface, if a device on the bus requires power or anything else that's
> not something the CPU Slimbus (I keep wanting to typo that as
> Slumbus...) controller has any idea about. In this respect Slimbus is
> much more like I2C than USB where there's a standard provision for power
> even if embedded systems routinely ignore it.
>
> The device driver will know what power supplies and other signals the
> device has, and it will know how and when to use them. This can
> generally be done independently of the board with just some platform or
> device tree data to configure GPIOs.
Ok, I think you've managed to get through to me ;-)
> > The way I see this working is that something outside of the driver
> > should provide a way to enable each device in order for it to get
> > probed, and the driver's ->probe callback does a pm_runtime_get()
> > call when it wants to keep the device enabled.
>
> Some pre-cooked off the shelf device wide power management is definitely
> useful for simple cases but I don't think that scales to high end
> devices - it's too binary. Like I said I really do want to have some
> transparent device model way of handling the simple cases but we need to
> leave room for devices which want to do more complicated things.
>
> It also occurs to me that if we're supporting going down to cold with
> runtime PM anyway the kernel is going to have to be able to understand
> the idea that devices it already knows about are going to hotplug in and
> out while staying registered. If we're doing that then it seems like the
> bus is going to have pretty much all the concepts required for explicit
> registration anyway.
How about a mixed model then?
I can see three relevant cases to consider:
1. A simple potentially hotplugged device that registers itself to the bus
can be automatically matched to the driver.
2. A device tree representation for hardwired devices that require
something to happen in order to register to the bus (clock, regulator,
...).
3. A hardcoded list of devices on a slimbus host for stuff that is known
to be there, e.g. on a PCI card that has its own driver and that
also need some special setup as in case 2.
I think in all three cases, we should identify the device by its EA and
match that to the device driver. We create the slim_device and register
it to the bus as soon as one of the three above is found, but in case 2
and 3, the driver is responsible for the device to actually become active
on the bus before it's allowed to send any commands to it.
For the device tree binding, I would suggest defining a slimbus bus to
have #address-cells=1, #size-cells=0 and just put the EA into the reg
property. This is enough for the host driver to add create a
slim_device and match a driver to it. The driver can access all the
properties from the device_node (or platform_data in case of statically
defined devices). When the physical device shows up on the bus, it is
automatically associated with the existing slim_device.
Arnd
next prev parent reply other threads:[~2011-08-17 14:01 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-10 23:31 [RFC PATCH] slimbus: Linux driver framework for SLIMbus Kenneth Heitke
2011-08-11 12:55 ` Arnd Bergmann
2011-08-11 20:51 ` Kenneth Heitke
2011-08-12 16:46 ` Mark Brown
2011-08-16 13:37 ` Arnd Bergmann
2011-08-16 13:50 ` David Brown
2011-08-16 14:32 ` Arnd Bergmann
2011-08-16 15:40 ` Mark Brown
2011-08-16 17:13 ` Kenneth Heitke
2011-08-16 17:16 ` Kenneth Heitke
2011-08-16 17:44 ` sdharia
2011-08-16 19:49 ` Arnd Bergmann
2011-08-16 23:27 ` Kenneth Heitke
2011-08-17 0:59 ` Mark Brown
2011-08-17 1:54 ` Sagar Dharia
2011-08-17 6:32 ` Mark Brown
2011-08-17 7:09 ` Arnd Bergmann
2011-08-17 8:03 ` Mark Brown
2011-08-17 10:42 ` Arnd Bergmann
2011-08-17 13:04 ` Mark Brown
2011-08-17 13:17 ` Linus Walleij
2011-08-18 3:00 ` Mark Brown
2011-08-24 9:15 ` Linus Walleij
2011-08-24 9:21 ` Mark Brown
2011-08-25 7:10 ` Linus Walleij
2011-08-25 9:44 ` Mark Brown
2011-08-17 14:00 ` Arnd Bergmann [this message]
2011-08-19 3:24 ` Mark Brown
2011-08-21 22:10 ` Sagar Dharia
2011-08-22 13:47 ` Arnd Bergmann
2011-08-16 15:23 ` Mark Brown
2011-08-14 14:34 ` Mark Brown
2011-08-15 17:55 ` Kenneth Heitke
2011-08-15 19:37 ` Russell King
2011-08-15 20:12 ` Kenneth Heitke
2011-08-16 19:33 ` Jean Delvare
2011-08-17 13:12 ` Mark Brown
2011-08-23 23:24 ` Randy Dunlap
2011-08-23 23:32 ` Kenneth Heitke
2011-08-24 0:13 ` Joe Perches
2011-08-24 0:22 ` Kenneth Heitke
2011-08-24 14:14 ` Arnd Bergmann
2011-08-24 17:24 ` Joe Perches
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=201108171600.37791.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=akpm@linux-foundation.org \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=bryanh@codeaurora.org \
--cc=davidb@codeaurora.org \
--cc=gregkh@suse.de \
--cc=john.stultz@linaro.org \
--cc=kheitke@codeaurora.org \
--cc=lethal@linux-sh.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=ohad@wizery.com \
--cc=rdunlap@xenotime.net \
--cc=rmk+kernel@arm.linux.org.uk \
--cc=sdharia@codeaurora.org \
--cc=stefanr@s5r6.in-berlin.de \
--cc=zajec5@gmail.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 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.