devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime@cerno.tech>
To: Michael Klein <michael@fossekall.de>
Cc: Sebastian Reichel <sre@kernel.org>,
	Rob Herring <robh+dt@kernel.org>, Chen-Yu Tsai <wens@csie.org>,
	Jernej Skrabec <jernej.skrabec@siol.net>,
	linux-pm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 2/3] Documentation: DT: binding documentation for regulator-poweroff
Date: Thu, 10 Dec 2020 15:30:06 +0100	[thread overview]
Message-ID: <20201210143006.y5gbjrn2rdfg37h4@gilmour> (raw)
In-Reply-To: <20201208125214.GA2785@a98shuttle.de>

[-- Attachment #1: Type: text/plain, Size: 4206 bytes --]

Hi

On Tue, Dec 08, 2020 at 01:52:14PM +0100, Michael Klein wrote:
> Thanks for reviewing!
> 
> On Tue, Dec 08, 2020 at 11:13:58AM +0100, Maxime Ripard wrote:
> > On Mon, Dec 07, 2020 at 03:27:55PM +0100, Michael Klein wrote:
> > > Add devicetree binding documentation for regulator-poweroff driver.
> > > 
> > > Signed-off-by: Michael Klein <michael@fossekall.de>
> > > ---
> > >  .../power/reset/regulator-poweroff.yaml       | 53 +++++++++++++++++++
> > >  1 file changed, 53 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/power/reset/regulator-poweroff.yaml
> > > 
> > > diff --git a/Documentation/devicetree/bindings/power/reset/regulator-poweroff.yaml b/Documentation/devicetree/bindings/power/reset/regulator-poweroff.yaml
> > > new file mode 100644
> > > index 000000000000..8c8ce6bb031a
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/power/reset/regulator-poweroff.yaml
> > > @@ -0,0 +1,53 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/power/reset/regulator-poweroff.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Force-disable power regulators to turn the power off.
> > > +
> > > +maintainers:
> > > +  - Michael Klein <michael@fossekall.de>
> > > +
> > > +description: |
> > > +  When the power-off handler is called, one more regulators are disabled
> > > +  by calling regulator_force_disable(). If the power is still on and the
> > > +  CPU still running after a 3000ms delay, a WARN_ON(1) is emitted.
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: "regulator-poweroff"
> > > +
> > > +  regulator-names:
> > > +    description:
> > > +      Array of regulator names
> > > +    $ref: /schemas/types.yaml#/definitions/string-array
> > > +
> > > +  REGULATOR-supply:
> > 
> > This should be a patternProperties
> > 
> > > +    description:
> > > +      For any REGULATOR listed in regulator-names, a phandle
> > > +      to the corresponding regulator node
> > > +    $ref: /schemas/types.yaml#/definitions/phandle
> > > +
> > > +  timeout-ms:
> > > +    description:
> > > +      Time to wait before asserting a WARN_ON(1). If nothing is
> > > +      specified, 3000 ms is used.
> > > +    $ref: /schemas/types.yaml#/definitions/uint32
> > > +
> > > +required:
> > > +  - compatible
> > > +  - regulator-names
> > > +  - REGULATOR-supply
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  - |
> > > +    regulator-poweroff {
> > > +        compatible = "regulator-poweroff";
> > > +        regulator-names = "vcc1v2", "vcc-dram";
> > > +        vcc1v2-supply = <&reg_vcc1v2>;
> > > +        vcc-dram-supply = <&reg_vcc_dram>;
> > > +    };
> > 
> > I'm not entirely sure how multiple regulators would work here. I guess
> > the ordering is board/purpose sensitive. In this particular case, I
> > assume that vcc1v2 would be shut down before vcc-dram?
> 
> yes, the regulators are shut down from left to right.
> 
> > If so, I would expect that one regulator_force_disable is run, the CPU
> > is disabled and you never get the chance to cut vcc-dram.
> 
> I assume that any relevant regulator here has enough capacitance on the
> output that provides enough charge to disable any remaining regulators (my
> board has 3*10µF for vcc1v2 and 1*10µF for vcc-dram). But there is of course
> no guarantee, so I'm shutting down the most relevant (in terms of current
> consumption) regulator first.
>
> In any case, if it's deemed unnecessary to allow more than one regulator in
> the driver I could remove the regulator-names property altogether and reduce
> the DT node to:
> 
>   regulator-poweroff {
>       compatible = "regulator-poweroff";
>       poweroff-supply = <&reg_vcc1v2>;
>   };

It's mostly about semantics at this point but there's value in shutting
down the RAM as well if we're taking some precautions I mentionned.
Maybe we can name that regulator cpu-supply, so that we can easily add
the DRAM one if needed, and the semantics are clear?

Maxime

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2020-12-10 19:08 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-23 16:10 [PATCH] ARM: dts: sun8i-h2-plus-bananapi-m2-zero: add gpio-poweroff to DT Michael Klein
2020-11-24  4:14 ` Samuel Holland
2020-11-24  4:41   ` Chen-Yu Tsai
2020-11-24 13:21     ` Maxime Ripard
2020-11-24 13:19 ` Maxime Ripard
2020-11-24 13:36   ` [PATCH v2] ARM: dts: sun8i-h2-plus-bananapi-m2-zero: add poweroff node " Michael Klein
2020-11-24 14:26     ` Maxime Ripard
2020-11-24 22:31       ` Michael Klein
2020-11-28 10:39         ` Maxime Ripard
2020-12-07 14:27           ` [PATCH v3 0/3] BPi M2 Zero poweroff support via new regulator-poweroff driver Michael Klein
2020-12-07 14:27             ` [PATCH v3 1/3] power: reset: new driver regulator-poweroff Michael Klein
2020-12-08 10:10               ` Maxime Ripard
2020-12-09 20:34                 ` Michael Klein
2020-12-07 14:27             ` [PATCH v3 2/3] Documentation: DT: binding documentation for regulator-poweroff Michael Klein
2020-12-08 10:13               ` Maxime Ripard
2020-12-08 12:52                 ` Michael Klein
2020-12-10 14:30                   ` Maxime Ripard [this message]
2020-12-08 15:21               ` Rob Herring
2020-12-08 15:39               ` Rob Herring
2020-12-07 14:27             ` [PATCH v3 3/3] ARM: dts: sun8i-h2-plus-bananapi-m2-zero: add poweroff node Michael Klein

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=20201210143006.y5gbjrn2rdfg37h4@gilmour \
    --to=maxime@cerno.tech \
    --cc=devicetree@vger.kernel.org \
    --cc=jernej.skrabec@siol.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=michael@fossekall.de \
    --cc=robh+dt@kernel.org \
    --cc=sre@kernel.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 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).