public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
To: Mark Brown <broonie@kernel.org>
Cc: Yadwinder Singh Brar <yadi.brar01@gmail.com>,
	Sangbeom Kim <sbkim73@samsung.com>,
	Samuel Ortiz <sameo@linux.intel.com>,
	Lee Jones <lee.jones@linaro.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Chanwoo Choi <cw00.choi@samsung.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Tomasz Figa <t.figa@samsung.com>
Subject: Re: [PATCH v2 11/14] regulator: s2mps11: Add opmode for S2MPS14 regulators
Date: Wed, 19 Feb 2014 15:19:00 +0100	[thread overview]
Message-ID: <1392819540.12624.14.camel@AMDC1943> (raw)
In-Reply-To: <20140219040818.GQ2669@sirena.org.uk>

On Wed, 2014-02-19 at 13:08 +0900, Mark Brown wrote:
> On Tue, Feb 18, 2014 at 09:12:09AM +0100, Krzysztof Kozlowski wrote:
> > On Tue, 2014-02-18 at 09:35 +0900, Mark Brown wrote:
> 
> > > I don't understand the above?  Are you saying that suspend mode actually
> > > turns off the regulator or something else? If it's a separate setting
> > > for suspend mode then it should be using the core suspend mode stuff.
> 
> > No, it is similar to external control (by GPIO) except that regulator is
> > controlled by PWREN pin. The PMIC's PWREN is not a GPIO, but instead it
> > is directly connected to AP (for Exynos 4212: XPWRRGTON). In AP's normal
> > mode the XPWRRGTON/PWREN is high. In sleep mode *AP* sets it low.
> 
> How is that different to suspend mode then?

I found two differences: performance (no need to send I2C commands) and
possible issues during resume.

Example: regulator which should be disabled during suspend to memory and
enabled for normal system operation.

As I understand the suspend mode (correct me if I'm wrong), the
regulator core during suspend to mem:
1. Calls suspend_set_state().
2. rstate->disabled is true so the ops->set_suspend_disable() is called.
3. The ops->set_suspend_disable() function (implemented by the driver)
disables the regulator (e.g. through I2C commands /regmap/).
4. During resume the regulator is enabled normal way (ops->enable(), I2C
again).

Possible problems:
A. What happens if some driver using this regulator resumes earlier then
regulator_suspend_finish()?
B. What happens if resuming regulator requires some other driver to be
resumed earlier (e.g. I2C bus)? If regulator resumes before I2C bus then
calling ops->enable() would fail.


The S5M8767 suspend mode (controlled by PWREN pin) works differently:
1. To enable regulator set regulator mode to "On/Off controller by
PWREN". During normal mode it will be enabled.
2. During suspend the regulator won't be suspended or disabled by
regulator core but instead the SoC will set PWREN to low and PMIC will
disable the regulator. No need to send I2C commands.
3. During resume the PWREN will be set to high and PMIC will enable the
regulator before resuming other drivers. No need to send I2C commands as
well.


Best regards,
Krzysztof



  parent reply	other threads:[~2014-02-19 14:19 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-13  9:13 [PATCH v2 00/14] mfd/regulator/rtc: sec: Add support for S2MPS14 Krzysztof Kozlowski
2014-02-13  9:13 ` [PATCH v2 01/14] mfd: sec: Add maximum RTC register for regmap config Krzysztof Kozlowski
2014-02-13  9:13 ` [PATCH v2 02/14] mfd: sec: Select different RTC regmaps for devices Krzysztof Kozlowski
2014-02-13  9:13 ` [PATCH v2 03/14] mfd/rtc: sec/s5m: Rename SEC* symbols to S5M Krzysztof Kozlowski
2014-02-13 10:11   ` Lee Jones
2014-02-13  9:13 ` [PATCH v2 04/14] rtc: s5m: Remove undocumented time init on first boot Krzysztof Kozlowski
2014-02-13  9:13 ` [PATCH v2 05/14] mfd: sec: Use consistent S2MPS11 RTC alarm interrupt indexes Krzysztof Kozlowski
2014-02-13  9:13 ` [PATCH v2 06/14] regulator: s2mps11: Constify regulator_desc array Krzysztof Kozlowski
2014-02-13  9:14 ` [PATCH v2 07/14] regulator: s2mps11: Copy supported regulators from initconst Krzysztof Kozlowski
2014-02-13 12:21   ` Yadwinder Singh Brar
2014-02-13 12:35     ` Krzysztof Kozlowski
2014-02-13 12:37     ` [PATCH " Krzysztof Kozlowski
2014-02-13 18:05       ` Mark Brown
2014-02-13 19:07   ` [PATCH v2 " Mark Brown
2014-02-14  7:46     ` Krzysztof Kozlowski
2014-02-13  9:14 ` [PATCH v2 08/14] mfd: sec: Add support for S2MPS14 Krzysztof Kozlowski
2014-02-13  9:14 ` [PATCH v2 09/14] regulator: s2mps11: Add support for S2MPS14 regulators Krzysztof Kozlowski
2014-02-13 12:24   ` Yadwinder Singh Brar
2014-02-13 19:10   ` Mark Brown
2014-02-14  7:33     ` Krzysztof Kozlowski
2014-02-13  9:14 ` [PATCH v2 10/14] Documentation: mfd: s2mps11: Document support for S2MPS14 Krzysztof Kozlowski
2014-02-13 14:55   ` Tomasz Figa
2014-02-13  9:14 ` [PATCH v2 11/14] regulator: s2mps11: Add opmode for S2MPS14 regulators Krzysztof Kozlowski
2014-02-13 12:16   ` Yadwinder Singh Brar
2014-02-14 13:05     ` Krzysztof Kozlowski
2014-02-14 21:05       ` Mark Brown
2014-02-17  8:07         ` Krzysztof Kozlowski
2014-02-18  0:35           ` Mark Brown
2014-02-18  8:12             ` Krzysztof Kozlowski
2014-02-19  4:08               ` Mark Brown
2014-02-19 10:09                 ` Krzysztof Kozlowski
2014-02-19 12:16                   ` Mark Brown
2014-02-19 14:19                 ` Krzysztof Kozlowski [this message]
2014-02-19 15:07                   ` Mark Brown
2014-02-13 12:43   ` Lee Jones
2014-02-13 13:00     ` Krzysztof Kozlowski
2014-02-13 19:28   ` Mark Brown
2014-02-14  8:15     ` Krzysztof Kozlowski
2014-02-14 20:59       ` Mark Brown
2014-02-17  8:09         ` Krzysztof Kozlowski
2014-02-13  9:14 ` [PATCH v2 12/14] Documentation: mfd/regulator: s2mps11: Document the "op_mode" bindings Krzysztof Kozlowski
2014-02-13  9:14 ` [PATCH v2 13/14] rtc: s5m: Support different register layout Krzysztof Kozlowski
2014-02-13  9:14 ` [PATCH v2 14/14] rtc: s5m: Add support for S2MPS14 RTC Krzysztof Kozlowski

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=1392819540.12624.14.camel@AMDC1943 \
    --to=k.kozlowski@samsung.com \
    --cc=b.zolnierkie@samsung.com \
    --cc=broonie@kernel.org \
    --cc=cw00.choi@samsung.com \
    --cc=kyungmin.park@samsung.com \
    --cc=lee.jones@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=sameo@linux.intel.com \
    --cc=sbkim73@samsung.com \
    --cc=t.figa@samsung.com \
    --cc=yadi.brar01@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox