linux-samsung-soc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-pm@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
	Sylwester Nawrocki <s.nawrocki@samsung.com>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Tomasz Figa <tomasz.figa@gmail.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Subject: Re: [PATCH 7/9] pinctrl: samsung: Add property to mark pad state as suitable for power down
Date: Sun, 25 Dec 2016 21:19:14 +0200	[thread overview]
Message-ID: <20161225191914.5bzl6fso36ozuum6@kozik-lap> (raw)
In-Reply-To: <1482495889-6201-8-git-send-email-m.szyprowski@samsung.com>

On Fri, Dec 23, 2016 at 01:24:47PM +0100, Marek Szyprowski wrote:
> Add support for special property "samsung,off-state", which indicates a special
> state suitable for device's "sleep" state. Its pin values/properties should
> match the configuration in power down mode. It indicates that pin controller
> can notify runtime power management subsystem, that it is ready for runtime
> suspend if its all pins are configured for such state. This in turn might
> allow to turn respective power domain off to reduce power consumption.
> 
> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>  Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt | 8 ++++++++
>  drivers/pinctrl/samsung/pinctrl-samsung.c                     | 4 ++++
>  drivers/pinctrl/samsung/pinctrl-samsung.h                     | 1 +
>  3 files changed, 13 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
> index b7bd2e12a269..354eea0e7798 100644
> --- a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
> +++ b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
> @@ -105,6 +105,7 @@ Required Properties:
>    - samsung,pin-drv: Drive strength configuration.
>    - samsung,pin-pud-pdn: Pull up/down configuration in power down mode.
>    - samsung,pin-drv-pdn: Drive strength configuration in power down mode.
> +  - samsung,off-state: Mark this configuration as suitable for bank power off.
>  
>    The values specified by these config properties should be derived from the
>    hardware manual and these values are programmed as-is into the pin
> @@ -113,6 +114,13 @@ Required Properties:
>    Note: A child should include atleast a pin function selection property or
>    pin configuration property (one or more) or both.
>  
> +  Note: Special property "samsung,off-state" indicates that this state can
> +  be used for device's "sleep" pins state. Its pin values/properties should
> +  match the configuration in power down mode.

Why power down values cannot be used for sleep state? Why you need
separate pin control state? If pins values should match power down
configuration, then they could just be added to default state, couldn't
they?

In the patch 2/9, existing configuration:
716         i2s0_bus: i2s0-bus {
(...)
719                 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
720                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
721                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
722         };

additional configuration:
+       i2s0_bus_slp: i2s0-bus-slp {
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+               samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
+               samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
+               samsung,off-state;
+       };

> It indicates that pin control
> +  can notify runtime power management subsystem, that it is ready for runtime
> +  suspend if its all pins are configured for such state. This in turn might
> +  allow to turn respective power domain off to reduce power consumption.

What do you mean by "notifying RPM subsystem"? Either this is
description of hardware in certain mode (sleep state) or this is not
device tree property.

Best regards,
Krzysztof

> +
>    The client nodes that require a particular pin function selection and/or
>    pin configuration should use the bindings listed in the "pinctrl-bindings.txt"
>    file.
> diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c
> index a7b7d75373f2..301169d2b6e1 100644
> --- a/drivers/pinctrl/samsung/pinctrl-samsung.c
> +++ b/drivers/pinctrl/samsung/pinctrl-samsung.c
> @@ -692,6 +692,10 @@ static int samsung_pinctrl_create_function(struct device *dev,
>  	}
>  
>  	func->name = func_np->full_name;
> +	if (of_property_read_bool(func_np, "samsung,off-state"))
> +		func->rpm_active = false;
> +	else
> +		func->rpm_active = true;
>  
>  	func->groups = devm_kzalloc(dev, npins * sizeof(char *), GFP_KERNEL);
>  	if (!func->groups)
> diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.h b/drivers/pinctrl/samsung/pinctrl-samsung.h
> index 32b949e2a89b..edeafa00abd3 100644
> --- a/drivers/pinctrl/samsung/pinctrl-samsung.h
> +++ b/drivers/pinctrl/samsung/pinctrl-samsung.h
> @@ -280,6 +280,7 @@ struct samsung_pmx_func {
>  	const char		**groups;
>  	u8			num_groups;
>  	u32			val;
> +	bool			rpm_active;
>  };
>  
>  /* list of all exported SoC specific data */
> -- 
> 1.9.1
> 

  reply	other threads:[~2016-12-25 19:19 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20161223122513epcas1p394d93d72d2d32c8910aafd1f6cc6b5e2@epcas1p3.samsung.com>
2016-12-23 12:24 ` [PATCH 0/9] Runtime PM for Exynos pin controller driver Marek Szyprowski
     [not found]   ` <CGME20161223122516epcas5p41c9d3f1e805293ee7f000d614452ba6f@epcas5p4.samsung.com>
2016-12-23 12:24     ` [PATCH 1/9] ARM: dts: exynos: Add PMU syscon to pinctrl nodes Marek Szyprowski
2016-12-26  5:36       ` Tomasz Figa
     [not found]   ` <CGME20161223122520epcas1p443154371ae2f94b89e738051780a8e6b@epcas1p4.samsung.com>
2016-12-23 12:24     ` [PATCH 2/9] ARM: dts: exynos: Add pinctrl sleep state for 542x i2s module Marek Szyprowski
2016-12-26  5:39       ` Tomasz Figa
     [not found]   ` <CGME20161223122524epcas1p4f0235bcdabe1e7bffa141e0b2e32de7f@epcas1p4.samsung.com>
2016-12-23 12:24     ` [PATCH 3/9] pinctrl: samsung: Remove dead code Marek Szyprowski
2016-12-25 12:51       ` Krzysztof Kozlowski
2016-12-26  5:40       ` Tomasz Figa
     [not found]   ` <CGME20161223122527epcas1p441f0ee34c5738645163ef40c94591183@epcas1p4.samsung.com>
2016-12-23 12:24     ` [PATCH 4/9] pinctrl: samsung: Use generic of_device_get_match_data helper Marek Szyprowski
2016-12-25 12:56       ` Krzysztof Kozlowski
2016-12-26  5:44         ` Tomasz Figa
2016-12-26  9:41           ` Krzysztof Kozlowski
     [not found]             ` <CGME20161227102821epcas1p334154772e0a1f636795994ca5bcc5eac@epcas1p3.samsung.com>
2016-12-27 10:28               ` Bartlomiej Zolnierkiewicz
     [not found]   ` <CGME20161223122531epcas1p4b8fad6664dad3408acb7a1b9f140884a@epcas1p4.samsung.com>
2016-12-23 12:24     ` [PATCH 5/9] pinctrl: samsung: Move retention control from mach-exynos to the pinctrl driver Marek Szyprowski
2016-12-25 13:42       ` Krzysztof Kozlowski
2016-12-27 10:15         ` Marek Szyprowski
2016-12-26  5:55       ` Tomasz Figa
2016-12-27 10:12         ` Marek Szyprowski
2016-12-27 15:39           ` Krzysztof Kozlowski
2016-12-30  9:19       ` Linus Walleij
     [not found]   ` <CGME20161223122535epcas1p475bc33007e9ea9b206dec6d10d019d7f@epcas1p4.samsung.com>
2016-12-23 12:24     ` [PATCH 6/9] pinctrl: samsung: Replace syscore ops with standard platform device pm_ops Marek Szyprowski
2016-12-25 18:47       ` Krzysztof Kozlowski
2016-12-26  5:57       ` Tomasz Figa
2016-12-27 10:17         ` Marek Szyprowski
     [not found]   ` <CGME20161223122538epcas5p29515ceff21963ab035b3b32878830ce2@epcas5p2.samsung.com>
2016-12-23 12:24     ` [PATCH 7/9] pinctrl: samsung: Add property to mark pad state as suitable for power down Marek Szyprowski
2016-12-25 19:19       ` Krzysztof Kozlowski [this message]
2016-12-26  6:02         ` Tomasz Figa
2016-12-27 10:30         ` Marek Szyprowski
2016-12-27 15:33           ` Krzysztof Kozlowski
2016-12-30  9:23             ` Linus Walleij
2016-12-30 11:55             ` Marek Szyprowski
     [not found]               ` <bad5ef6a-6132-2029-8581-2e8b27f7a2bd-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2016-12-30 15:05                 ` Krzysztof Kozlowski
     [not found]   ` <CGME20161223122542epcas1p444c9d8c91c2983f9934e68a6bb882726@epcas1p4.samsung.com>
2016-12-23 12:24     ` [PATCH 8/9] pinctrl: samsung: Add runtime PM support Marek Szyprowski
2016-12-25 19:26       ` Krzysztof Kozlowski
2016-12-26  6:11       ` Tomasz Figa
     [not found]   ` <CGME20161223122546epcas5p2ebbcb8ca510646698bbd1ddbe0a0e889@epcas5p2.samsung.com>
2016-12-23 12:24     ` [PATCH 9/9] ARM: dts: exynos: Add audio power domain support to Exynos542x SoCs Marek Szyprowski
2016-12-24 10:10   ` [PATCH 0/9] Runtime PM for Exynos pin controller driver Anand Moon
2016-12-27  8:29     ` Marek Szyprowski

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=20161225191914.5bzl6fso36ozuum6@kozik-lap \
    --to=krzk@kernel.org \
    --cc=b.zolnierkie@samsung.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=s.nawrocki@samsung.com \
    --cc=tomasz.figa@gmail.com \
    --cc=ulf.hansson@linaro.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).