mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Robin Murphy <robin.murphy@arm.com>
To: Marcel Ziswiler <marcel.ziswiler@toradex.com>,
	"max.oss.09@gmail.com" <max.oss.09@gmail.com>,
	"krzysztof.kozlowski@linaro.org" <krzysztof.kozlowski@linaro.org>,
	"geert@linux-m68k.org" <geert@linux-m68k.org>
Cc: "linux-imx@nxp.com" <linux-imx@nxp.com>,
	Francesco Dolcini <francesco.dolcini@toradex.com>,
	"robh@kernel.org" <robh@kernel.org>,
	"krzysztof.kozlowski+dt@linaro.org" 
	<krzysztof.kozlowski+dt@linaro.org>,
	"ulf.hansson@linaro.org" <ulf.hansson@linaro.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"dmitry.baryshkov@linaro.org" <dmitry.baryshkov@linaro.org>,
	"biju.das.jz@bp.renesas.com" <biju.das.jz@bp.renesas.com>,
	"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
	"geert+renesas@glider.be" <geert+renesas@glider.be>,
	"bjorn.andersson@linaro.org" <bjorn.andersson@linaro.org>,
	"vkoul@kernel.org" <vkoul@kernel.org>,
	"shawnguo@kernel.org" <shawnguo@kernel.org>,
	"kernel@pengutronix.de" <kernel@pengutronix.de>,
	"khilman@kernel.org" <khilman@kernel.org>,
	"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>,
	Andrejs Cainikovs <andrejs.cainikovs@toradex.com>,
	"will@kernel.org" <will@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"rafael@kernel.org" <rafael@kernel.org>,
	"festevam@gmail.com" <festevam@gmail.com>,
	Max Krummenacher <max.krummenacher@toradex.com>,
	"broonie@kernel.org" <broonie@kernel.org>
Subject: Re: [PATCH v1 0/5] power: domain: Add driver for a PM domain provider which controls
Date: Wed, 15 Jun 2022 19:24:50 +0100	[thread overview]
Message-ID: <dacd4a2d-a2b9-d2c2-4d47-f030dd01ee25@arm.com> (raw)
In-Reply-To: <ddbeba186bf662348e8594f322f750cf89326a66.camel@toradex.com>

On 2022-06-15 18:31, Marcel Ziswiler wrote:
> Hi
> 
> On Wed, 2022-06-15 at 10:15 -0700, Krzysztof Kozlowski wrote:
>> On 15/06/2022 09:10, Max Krummenacher wrote:
>>> Hi
>>>
>>> On Tue, Jun 14, 2022 at 9:22 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>>>>
>>>> Hi Rob,
>>>>
>>>> On Mon, Jun 13, 2022 at 9:15 PM Rob Herring <robh@kernel.org> wrote:
>>>>> On Thu, Jun 09, 2022 at 05:08:46PM +0200, Max Krummenacher wrote:
>>>>>> From: Max Krummenacher <max.krummenacher@toradex.com>
>>>>>>
>>>>>> its power enable by using a regulator.
>>>>>>
>>>>>> The currently implemented PM domain providers are all specific to
>>>>>> a particular system on chip.
>>>>>
>>>>> Yes, power domains tend to be specific to an SoC... 'power-domains' is
>>>>> supposed to be power islands in a chip. Linux 'PM domains' can be
>>>>> anything...
>>>
>>> I don't see why such power islands should be restricted to a SoC. You can
>>> build the exact same idea on a PCB or even more modular designs.
>>
>> In the SoC these power islands are more-or-less defined. These are real
>> regions gated by some control knob.
>>
>> Calling few devices on a board "power domain" does not make it a power
>> domain. There is no grouping, there is no control knob.
>>
>> Aren't you now re-implementing regulator supplies? How is this different
>> than existing supplies?
> 
> I believe the biggest difference between power-domains and regulator-supplies lays in the former being driver
> agnostic while the later is driver specific. Meaning with power-domains one can just add such arbitrary
> structure to the device tree without any further driver specific changes/handling required. While with
> regulator-supplies each and every driver actually needs to have driver specific handling thereof added. Or do I
> miss anything?
> 
> We are really trying to model something where a single GPIO pin (via a GPIO regulator or whatever) can control
> power to a variety of on-board peripherals. And, of course, we envision runtime PM actually making use of it
> e.g. when doing suspend/resume.

FWIW, this really seems to beg the question of PM support in the drivers 
for those peripherals. If they'll need to be modified to add 
suspend/resume routines anyway, then adding a handful more lines to 
control a supply regulator at the same time shouldn't be too big a deal. 
Conversely, I'd be surprised if they *did* have PM support if there 
wasn't already some way to make use of it.

Multiple consumers sharing a voltage rail provided by a single regulator 
is so standard and well-supported that it barely seems worth pointing 
out, but for the avoidance of doubt I shall. Adding a new non-standard 
way to hide a specific subset of regulator functionality behind behind a 
magic driver because it seems like slightly less work than handling it 
the well-known established way sounds like a great recipe for technical 
debt and future compatibility headaches. What if down the line you end 
up with a situation where if device A is suspended, devices B and C are 
happy to save some power by running the "domain" at a lower voltage? Do 
we stubbornly start duplicating more of the regulator framework in the 
magic power domain driver, or is that the point where we have to switch 
all the consumers to explicit supplies, and get to regret having "saved" 
that effort in the first place...

Cheers,
Robin.

  parent reply	other threads:[~2022-06-15 18:25 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-09 15:08 Max Krummenacher
2022-06-09 15:08 ` [PATCH v1 1/5] dt-bindings: power: Add bindings for a power domain controlled by a regulator Max Krummenacher
2022-06-10  2:57   ` Rob Herring
2022-06-15 15:19     ` Max Krummenacher
2022-06-15 17:16       ` Krzysztof Kozlowski
2022-06-14  7:23   ` Geert Uytterhoeven
2022-06-15 15:18     ` Max Krummenacher
2022-06-09 15:08 ` [PATCH v1 2/5] pm: add regulator power domain controller Max Krummenacher
2022-06-09 15:08 ` [PATCH v1 3/5] MAINTAINERS: add REGULATOR POWER DOMAIN Max Krummenacher
2022-06-09 15:08 ` [RFC PATCH v1 4/5] arm64: defconfig: Enable generic power domain controller controlling a regulator Max Krummenacher
2022-06-09 15:08 ` [RFC PATCH v1 5/5] ARM64: verdin-imx8mm: use regulator power domain to model sleep-moci Max Krummenacher
2022-06-14  7:29   ` Geert Uytterhoeven
2022-06-15 15:32     ` Max Krummenacher
2022-06-13 19:15 ` [PATCH v1 0/5] power: domain: Add driver for a PM domain provider which controls Rob Herring
2022-06-14  7:22   ` Geert Uytterhoeven
2022-06-15 16:10     ` Max Krummenacher
2022-06-15 17:15       ` Krzysztof Kozlowski
2022-06-15 17:31         ` Marcel Ziswiler
2022-06-15 17:37           ` Krzysztof Kozlowski
2022-06-15 18:13             ` Marcel Ziswiler
2022-06-15 18:48               ` Dmitry Baryshkov
2022-06-15 20:48               ` Krzysztof Kozlowski
2022-06-15 18:24           ` Robin Murphy [this message]
2022-06-15 19:12             ` Mark Brown
2022-06-15 21:14 ` Ulf Hansson
2022-06-16 12:50 ` Linus Walleij
2022-06-23 16:14   ` Max Krummenacher
2022-07-13 11:43     ` Ulf Hansson
2022-07-18  9:49       ` Linus Walleij
2022-07-26 16:03       ` Francesco Dolcini
2022-07-28  9:37         ` Ulf Hansson
2022-07-28 11:21           ` Francesco Dolcini
2022-08-26 13:50             ` Ulf Hansson
2022-09-09 14:22               ` Francesco Dolcini
2022-09-22 13:49                 ` Ulf Hansson
2022-09-23 18:00                   ` Krzysztof Kozlowski
2022-09-26 10:12                     ` Ulf Hansson
2022-09-26 15:11                       ` Krzysztof Kozlowski
2022-09-27  9:48                         ` Ulf Hansson
2022-09-27 12:49                           ` Geert Uytterhoeven
2022-09-27 14:26                             ` Krzysztof Kozlowski
2022-09-28  7:59                               ` Ulf Hansson

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=dacd4a2d-a2b9-d2c2-4d47-f030dd01ee25@arm.com \
    --to=robin.murphy@arm.com \
    --cc=andrejs.cainikovs@toradex.com \
    --cc=biju.das.jz@bp.renesas.com \
    --cc=bjorn.andersson@linaro.org \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=festevam@gmail.com \
    --cc=francesco.dolcini@toradex.com \
    --cc=geert+renesas@glider.be \
    --cc=geert@linux-m68k.org \
    --cc=kernel@pengutronix.de \
    --cc=khilman@kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=marcel.ziswiler@toradex.com \
    --cc=max.krummenacher@toradex.com \
    --cc=max.oss.09@gmail.com \
    --cc=rafael@kernel.org \
    --cc=robh@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=ulf.hansson@linaro.org \
    --cc=vkoul@kernel.org \
    --cc=will@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®