From: Arend van Spriel <arend@broadcom.com>
To: Hans de Goede <hdegoede@redhat.com>
Cc: Mark Brown <broonie@kernel.org>,
Tomasz Figa <tomasz.figa@gmail.com>, Chen-Yu Tsai <wens@csie.org>,
Sascha Hauer <s.hauer@pengutronix.de>,
Chris Ball <chris@printf.net>,
Ulf Hansson <ulf.hansson@linaro.org>,
Maxime Ripard <maxime.ripard@free-electrons.com>,
linux-mmc <linux-mmc@vger.kernel.org>,
linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
devicetree <devicetree@vger.kernel.org>,
Olof Johansson <olof@lixom.net>,
Russell King - ARM Linux <linux@arm.linux.org.uk>,
Fabio Estevam <festevam@gmail.com>, Arnd Bergmann <arnd@arndb.de>,
Jyri Sarha <jsarha@ti.com>
Subject: Re: RFC: representing sdio devices oob interrupt, clks, etc. in device tree
Date: Fri, 23 May 2014 15:21:34 +0200 [thread overview]
Message-ID: <537F4B5E.80306@broadcom.com> (raw)
In-Reply-To: <537F3610.3050104@redhat.com>
On 05/23/14 13:50, Hans de Goede wrote:
> Hi,
>
> On 05/23/2014 01:22 PM, Mark Brown wrote:
>> On Fri, May 23, 2014 at 11:13:44AM +0200, Hans de Goede wrote:
>>
>>> Thinking more about this, I would like to make one change to my
>>> proposal, the mmc-core should only do power up of child-nodes if
>>> they have a compatible of: "simple-sdio-powerup". This way
>>> when we add something more complex, we can keep the simple powerup
>>> code in the mmc core, keeping what we've already using this working
>>> and the mmc core won't respond to the child nodes for more complex
>>> devices, so it won't conflict with more complex power-up handling
>>> handled by some other driver.
>>
>> Would it not be better to have this be something in the driver struct
>> rather than in the device tree? Putting a compatible in there would be
>> encoding details of the Linux implementation in the DT which doesn't
>> seem right especially since these are details we're thinking of changing
>> later on.
>
> The compatible is not a Linux specific thing, it is a marking saying
> that something needs to take care of enabling the clks (and whatever
> else we will make part of the binding for this compatible), before
> scanning the mmc bus.
>
>> Something like have the driver set flags saying if it wants
>> to do complicated things.
>
> Chicken<-> egg, we won't know which driver to use before we've probed
> the mmc bus, and we cannot probe the bus before enabling the clks, etc.
The approach I took with brcmfmac is that upon module init I search the
DT for "brcm,bcm43xx-fmac" compatible and get the clock and/or gpio
resource and enable them before registering the sdio driver. The
difficulty is probably when using the driver built-in as the clocks and
gpios may not be available yet and we can not rely on deferred probing
in module init stage.
Regards,
Arend
>>> FWIW if we ever get truely complex cases I think modeling the
>>> power-up hardware as a pmic platform device is not a bad idea,
>>> we would then need to have a generic mmc-host pmic property, which
>>> would be used both to do the initial powerup before scanning, as
>>> well as for the sdio device driver to get a handle to the pmic,
>>> for run time power-management (if desired).
>>
>> I don't know if this will ever apply to SDIO but with other buses the
>> complicated bits come when the driver wants to take over some of the
>> power management do things like turn some of the supplies or clocks on
>> and off independently at runtime for low power modes.
>
> Hmm, good point in that case actually having these things in the
> child node makes most sense, because then the driver can find them
> their. Note that the mmc core enabling things does not mean that
> the driver cannot later disable them if needed.
WARNING: multiple messages have this Message-ID (diff)
From: arend@broadcom.com (Arend van Spriel)
To: linux-arm-kernel@lists.infradead.org
Subject: RFC: representing sdio devices oob interrupt, clks, etc. in device tree
Date: Fri, 23 May 2014 15:21:34 +0200 [thread overview]
Message-ID: <537F4B5E.80306@broadcom.com> (raw)
In-Reply-To: <537F3610.3050104@redhat.com>
On 05/23/14 13:50, Hans de Goede wrote:
> Hi,
>
> On 05/23/2014 01:22 PM, Mark Brown wrote:
>> On Fri, May 23, 2014 at 11:13:44AM +0200, Hans de Goede wrote:
>>
>>> Thinking more about this, I would like to make one change to my
>>> proposal, the mmc-core should only do power up of child-nodes if
>>> they have a compatible of: "simple-sdio-powerup". This way
>>> when we add something more complex, we can keep the simple powerup
>>> code in the mmc core, keeping what we've already using this working
>>> and the mmc core won't respond to the child nodes for more complex
>>> devices, so it won't conflict with more complex power-up handling
>>> handled by some other driver.
>>
>> Would it not be better to have this be something in the driver struct
>> rather than in the device tree? Putting a compatible in there would be
>> encoding details of the Linux implementation in the DT which doesn't
>> seem right especially since these are details we're thinking of changing
>> later on.
>
> The compatible is not a Linux specific thing, it is a marking saying
> that something needs to take care of enabling the clks (and whatever
> else we will make part of the binding for this compatible), before
> scanning the mmc bus.
>
>> Something like have the driver set flags saying if it wants
>> to do complicated things.
>
> Chicken<-> egg, we won't know which driver to use before we've probed
> the mmc bus, and we cannot probe the bus before enabling the clks, etc.
The approach I took with brcmfmac is that upon module init I search the
DT for "brcm,bcm43xx-fmac" compatible and get the clock and/or gpio
resource and enable them before registering the sdio driver. The
difficulty is probably when using the driver built-in as the clocks and
gpios may not be available yet and we can not rely on deferred probing
in module init stage.
Regards,
Arend
>>> FWIW if we ever get truely complex cases I think modeling the
>>> power-up hardware as a pmic platform device is not a bad idea,
>>> we would then need to have a generic mmc-host pmic property, which
>>> would be used both to do the initial powerup before scanning, as
>>> well as for the sdio device driver to get a handle to the pmic,
>>> for run time power-management (if desired).
>>
>> I don't know if this will ever apply to SDIO but with other buses the
>> complicated bits come when the driver wants to take over some of the
>> power management do things like turn some of the supplies or clocks on
>> and off independently at runtime for low power modes.
>
> Hmm, good point in that case actually having these things in the
> child node makes most sense, because then the driver can find them
> their. Note that the mmc core enabling things does not mean that
> the driver cannot later disable them if needed.
next prev parent reply other threads:[~2014-05-23 13:21 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-22 9:49 RFC: representing sdio devices oob interrupt, clks, etc. in device tree Hans de Goede
2014-05-22 9:49 ` Hans de Goede
2014-05-22 10:23 ` Chen-Yu Tsai
2014-05-22 10:23 ` Chen-Yu Tsai
2014-05-22 11:38 ` Hans de Goede
2014-05-22 11:38 ` Hans de Goede
2014-05-22 17:20 ` Tomasz Figa
2014-05-22 17:20 ` Tomasz Figa
2014-05-23 9:13 ` Hans de Goede
2014-05-23 9:13 ` Hans de Goede
2014-05-23 11:22 ` Mark Brown
2014-05-23 11:22 ` Mark Brown
2014-05-23 11:50 ` Hans de Goede
2014-05-23 11:50 ` Hans de Goede
2014-05-23 13:21 ` Arend van Spriel [this message]
2014-05-23 13:21 ` Arend van Spriel
2014-05-23 13:28 ` Hans de Goede
2014-05-23 13:28 ` Hans de Goede
2014-05-23 14:54 ` Arend van Spriel
2014-05-23 14:54 ` Arend van Spriel
2014-05-24 10:10 ` Hans de Goede
2014-05-24 10:10 ` Hans de Goede
2014-05-23 16:27 ` Mark Brown
2014-05-23 16:27 ` Mark Brown
2014-05-24 10:06 ` Hans de Goede
2014-05-24 10:06 ` Hans de Goede
2014-05-25 12:34 ` Mark Brown
2014-05-25 12:34 ` Mark Brown
2014-05-25 19:20 ` Hans de Goede
2014-05-25 19:20 ` Hans de Goede
2014-05-26 7:51 ` Arend van Spriel
2014-05-26 7:51 ` Arend van Spriel
2014-05-26 7:59 ` Chen-Yu Tsai
2014-05-26 7:59 ` Chen-Yu Tsai
2014-05-26 8:07 ` Hans de Goede
2014-05-26 8:07 ` Hans de Goede
2014-05-26 9:08 ` Arend van Spriel
2014-05-26 9:08 ` Arend van Spriel
2014-05-26 10:38 ` Mark Brown
2014-05-26 10:38 ` Mark Brown
2014-05-26 11:12 ` Hans de Goede
2014-05-26 11:12 ` Hans de Goede
2014-05-26 14:22 ` Mark Brown
2014-05-26 14:22 ` Mark Brown
2014-05-26 14:59 ` Hans de Goede
2014-05-26 14:59 ` Hans de Goede
2014-05-26 16:07 ` Ulf Hansson
2014-05-26 16:07 ` Ulf Hansson
2014-05-26 16:14 ` Mark Brown
2014-05-26 16:14 ` Mark Brown
2014-05-26 17:55 ` Hans de Goede
2014-05-26 17:55 ` Hans de Goede
2014-05-27 13:50 ` Ulf Hansson
2014-05-27 13:50 ` Ulf Hansson
2014-05-27 17:53 ` Mark Brown
2014-05-27 17:53 ` Mark Brown
2014-05-27 18:55 ` Olof Johansson
2014-05-27 18:55 ` Olof Johansson
2014-05-27 20:27 ` Arend van Spriel
2014-05-27 20:27 ` Arend van Spriel
2014-05-28 8:43 ` Ulf Hansson
2014-05-28 8:43 ` Ulf Hansson
2014-05-28 8:19 ` Ulf Hansson
2014-05-28 8:19 ` Ulf Hansson
2014-05-28 11:03 ` Mark Brown
2014-05-28 11:03 ` Mark Brown
2014-06-03 10:57 ` Ulf Hansson
2014-06-03 10:57 ` Ulf Hansson
2014-06-04 15:55 ` Mark Brown
2014-06-04 15:55 ` Mark Brown
2014-06-09 14:07 ` Ulf Hansson
2014-06-09 14:07 ` Ulf Hansson
2014-05-28 9:42 ` Hans de Goede
2014-05-28 9:42 ` Hans de Goede
2014-05-28 10:12 ` Arend van Spriel
2014-05-28 10:12 ` Arend van Spriel
2014-05-28 10:27 ` Hans de Goede
2014-05-28 10:27 ` Hans de Goede
2014-05-28 11:47 ` Tomasz Figa
2014-05-28 11:47 ` Tomasz Figa
[not found] ` <5385CCE6.9070204-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-05-28 16:43 ` Mark Brown
2014-05-28 16:43 ` Mark Brown
2014-05-30 8:17 ` Hans de Goede
2014-05-30 8:17 ` Hans de Goede
2014-06-03 10:14 ` Ulf Hansson
2014-06-03 10:14 ` Ulf Hansson
2014-06-03 11:07 ` Hans de Goede
2014-06-03 11:07 ` Hans de Goede
2014-06-03 12:58 ` Ulf Hansson
2014-06-03 12:58 ` Ulf Hansson
2014-06-03 13:06 ` Hans de Goede
2014-06-03 13:06 ` Hans de Goede
2014-06-03 13:28 ` Ulf Hansson
2014-06-03 13:28 ` Ulf Hansson
2014-05-27 15:47 ` Mark Brown
2014-05-27 15:47 ` Mark Brown
2014-05-23 13:34 ` Ulf Hansson
2014-05-23 13:34 ` Ulf Hansson
2014-05-23 16:47 ` Olof Johansson
2014-05-23 16:47 ` Olof Johansson
2014-05-24 10:09 ` Hans de Goede
2014-05-24 10:09 ` Hans de Goede
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=537F4B5E.80306@broadcom.com \
--to=arend@broadcom.com \
--cc=arnd@arndb.de \
--cc=broonie@kernel.org \
--cc=chris@printf.net \
--cc=devicetree@vger.kernel.org \
--cc=festevam@gmail.com \
--cc=hdegoede@redhat.com \
--cc=jsarha@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=maxime.ripard@free-electrons.com \
--cc=olof@lixom.net \
--cc=s.hauer@pengutronix.de \
--cc=tomasz.figa@gmail.com \
--cc=ulf.hansson@linaro.org \
--cc=wens@csie.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.