All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomasz Figa <tomasz.figa@gmail.com>
To: "Sören Brinkmann" <soren.brinkmann@xilinx.com>
Cc: linux-pm@vger.kernel.org, Mark Rutland <mark.rutland@arm.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Stephen Warren <swarren@wwwdotorg.org>,
	Len Brown <len.brown@intel.com>,
	Stephen Boyd <sboyd@codeaurora.org>,
	Tomasz Figa <t.figa@samsung.com>, Pavel Machek <pavel@ucw.cz>,
	Kukjin Kim <kgene.kim@samsung.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	linux-samsung-soc@vger.kernel.org,
	Russell King <linux@arm.linux.org.uk>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	devicetree@vger.kernel.org, Pawel Moll <pawel.moll@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Rob Herring <robh+dt@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	linux-kernel@vger.kernel.org, Mark Brown <broonie@kernel.org>,
	Kumar Gala <gal>
Subject: Re: [PATCH v2 01/11] base: power: Add generic OF-based power domain look-up
Date: Thu, 20 Mar 2014 00:16:14 +0100	[thread overview]
Message-ID: <532A253E.2000106@gmail.com> (raw)
In-Reply-To: <7e54f23f-1e11-4e17-ad29-13b497d7055a@TX2EHSMHS041.ehs.local>

Hi Sören,

On 20.03.2014 00:13, Sören Brinkmann wrote:
> On Mon, 2014-03-03 at 05:02PM +0100, Tomasz Figa wrote:
>> This patch introduces generic code to perform power domain look-up using
>> device tree and automatically bind devices to their power domains.
>> Generic device tree binding is introduced to specify power domains of
>> devices in their device tree nodes.
>>
>> Backwards compatibility with legacy Samsung-specific power domain
>> bindings is provided, but for now the new code is not compiled when
>> CONFIG_ARCH_EXYNOS is selected to avoid collision with legacy code. This
>> will change as soon as Exynos power domain code gets converted to use
>> the generic framework in further patch.
>>
>> Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
>> ---
>>   .../devicetree/bindings/power/power_domain.txt     |  51 ++++
>>   drivers/base/power/domain.c                        | 298 +++++++++++++++++++++
>>   include/linux/pm_domain.h                          |  46 ++++
>>   kernel/power/Kconfig                               |   4 +
>>   4 files changed, 399 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/power/power_domain.txt
>>
>> diff --git a/Documentation/devicetree/bindings/power/power_domain.txt b/Documentation/devicetree/bindings/power/power_domain.txt
>> new file mode 100644
>> index 0000000..93be5d9
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/power/power_domain.txt
>> @@ -0,0 +1,51 @@
>> +* Generic power domains
>> +
>> +System on chip designs are often divided into multiple power domains that
>> +can be used for power gating of selected IP blocks for power saving by
>> +reduced leakage current.
>> +
>> +This device tree binding can be used to bind power domain consumer devices
>> +with their power domains provided by power domain providers. A power domain
>> +provider can be represented by any node in the device tree and can provide
>> +one or more power domains. A consumer node can refer to the provider by
>> +a phandle and a set of phandle arguments (so called power domain specifier)
>> +of length specified by #power-domain-cells property in the power domain
>> +provider node.
>> +
>> +==Power domain providers==
>> +
>> +Required properties:
>> + - #power-domain-cells : Number of cells in a power domain specifier;
>> +   Typically 0 for nodes representing a single power domain and 1 for nodes
>> +   providing multiple power domains (e.g. power controllers), but can be
>> +   any value as specified by device tree binding documentation of particular
>> +   provider.
>> +
>> +Example:
>> +
>> +	power: power-controller@12340000 {
>> +		compatible = "foo,power-controller";
>> +		reg = <0x12340000 0x1000>;
>> +		#power-domain-cells = <1>;
>> +	};
>> +
>> +The node above defines a power controller that is a power domain provider
>> +and expects one cell as its phandle argument.
>> +
>> +==Power domain consumers==
>> +
>> +Required properties:
>> + - power-domain : A phandle and power domain specifier as defined by bindings
>> +                  of power controller specified by phandle.
>> +
>> +Example:
>> +
>> +	leaky-device@12350000 {
>> +		compatible = "foo,i-leak-current";
>> +		reg = <0x12350000 0x1000>;
>> +		power-domain = <&power 0>;
>> +	};
>> +
>> +The node above defines a typical power domain consumer device, which is located
>> +inside power domain with index 0 of power controller represented by node with
>> +label "power".
>
> Does this allow nesting of power domains? E.g. you have a PD which is
> represented by some programmable power supply, and within this domain
> smaller islands/domains that can be gated independently.

These are client-side bindings only, i.e. power domain providers and 
consumers. Registering power domains and relations between them are up 
to platform-specific code, e.g. power controller driver.

Best regards,
Tomasz

WARNING: multiple messages have this Message-ID (diff)
From: tomasz.figa@gmail.com (Tomasz Figa)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 01/11] base: power: Add generic OF-based power domain look-up
Date: Thu, 20 Mar 2014 00:16:14 +0100	[thread overview]
Message-ID: <532A253E.2000106@gmail.com> (raw)
In-Reply-To: <7e54f23f-1e11-4e17-ad29-13b497d7055a@TX2EHSMHS041.ehs.local>

Hi S?ren,

On 20.03.2014 00:13, S?ren Brinkmann wrote:
> On Mon, 2014-03-03 at 05:02PM +0100, Tomasz Figa wrote:
>> This patch introduces generic code to perform power domain look-up using
>> device tree and automatically bind devices to their power domains.
>> Generic device tree binding is introduced to specify power domains of
>> devices in their device tree nodes.
>>
>> Backwards compatibility with legacy Samsung-specific power domain
>> bindings is provided, but for now the new code is not compiled when
>> CONFIG_ARCH_EXYNOS is selected to avoid collision with legacy code. This
>> will change as soon as Exynos power domain code gets converted to use
>> the generic framework in further patch.
>>
>> Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
>> ---
>>   .../devicetree/bindings/power/power_domain.txt     |  51 ++++
>>   drivers/base/power/domain.c                        | 298 +++++++++++++++++++++
>>   include/linux/pm_domain.h                          |  46 ++++
>>   kernel/power/Kconfig                               |   4 +
>>   4 files changed, 399 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/power/power_domain.txt
>>
>> diff --git a/Documentation/devicetree/bindings/power/power_domain.txt b/Documentation/devicetree/bindings/power/power_domain.txt
>> new file mode 100644
>> index 0000000..93be5d9
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/power/power_domain.txt
>> @@ -0,0 +1,51 @@
>> +* Generic power domains
>> +
>> +System on chip designs are often divided into multiple power domains that
>> +can be used for power gating of selected IP blocks for power saving by
>> +reduced leakage current.
>> +
>> +This device tree binding can be used to bind power domain consumer devices
>> +with their power domains provided by power domain providers. A power domain
>> +provider can be represented by any node in the device tree and can provide
>> +one or more power domains. A consumer node can refer to the provider by
>> +a phandle and a set of phandle arguments (so called power domain specifier)
>> +of length specified by #power-domain-cells property in the power domain
>> +provider node.
>> +
>> +==Power domain providers==
>> +
>> +Required properties:
>> + - #power-domain-cells : Number of cells in a power domain specifier;
>> +   Typically 0 for nodes representing a single power domain and 1 for nodes
>> +   providing multiple power domains (e.g. power controllers), but can be
>> +   any value as specified by device tree binding documentation of particular
>> +   provider.
>> +
>> +Example:
>> +
>> +	power: power-controller at 12340000 {
>> +		compatible = "foo,power-controller";
>> +		reg = <0x12340000 0x1000>;
>> +		#power-domain-cells = <1>;
>> +	};
>> +
>> +The node above defines a power controller that is a power domain provider
>> +and expects one cell as its phandle argument.
>> +
>> +==Power domain consumers==
>> +
>> +Required properties:
>> + - power-domain : A phandle and power domain specifier as defined by bindings
>> +                  of power controller specified by phandle.
>> +
>> +Example:
>> +
>> +	leaky-device at 12350000 {
>> +		compatible = "foo,i-leak-current";
>> +		reg = <0x12350000 0x1000>;
>> +		power-domain = <&power 0>;
>> +	};
>> +
>> +The node above defines a typical power domain consumer device, which is located
>> +inside power domain with index 0 of power controller represented by node with
>> +label "power".
>
> Does this allow nesting of power domains? E.g. you have a PD which is
> represented by some programmable power supply, and within this domain
> smaller islands/domains that can be gated independently.

These are client-side bindings only, i.e. power domain providers and 
consumers. Registering power domains and relations between them are up 
to platform-specific code, e.g. power controller driver.

Best regards,
Tomasz

WARNING: multiple messages have this Message-ID (diff)
From: Tomasz Figa <tomasz.figa@gmail.com>
To: "Sören Brinkmann" <soren.brinkmann@xilinx.com>
Cc: linux-pm@vger.kernel.org, Mark Rutland <mark.rutland@arm.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Stephen Warren <swarren@wwwdotorg.org>,
	Len Brown <len.brown@intel.com>,
	Stephen Boyd <sboyd@codeaurora.org>,
	Tomasz Figa <t.figa@samsung.com>, Pavel Machek <pavel@ucw.cz>,
	Kukjin Kim <kgene.kim@samsung.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	linux-samsung-soc@vger.kernel.org,
	Russell King <linux@arm.linux.org.uk>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	devicetree@vger.kernel.org, Pawel Moll <pawel.moll@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Rob Herring <robh+dt@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	linux-kernel@vger.kernel.org, Mark Brown <broonie@kernel.org>,
	Kumar Gala <galak@codeaurora.org>
Subject: Re: [PATCH v2 01/11] base: power: Add generic OF-based power domain look-up
Date: Thu, 20 Mar 2014 00:16:14 +0100	[thread overview]
Message-ID: <532A253E.2000106@gmail.com> (raw)
In-Reply-To: <7e54f23f-1e11-4e17-ad29-13b497d7055a@TX2EHSMHS041.ehs.local>

Hi Sören,

On 20.03.2014 00:13, Sören Brinkmann wrote:
> On Mon, 2014-03-03 at 05:02PM +0100, Tomasz Figa wrote:
>> This patch introduces generic code to perform power domain look-up using
>> device tree and automatically bind devices to their power domains.
>> Generic device tree binding is introduced to specify power domains of
>> devices in their device tree nodes.
>>
>> Backwards compatibility with legacy Samsung-specific power domain
>> bindings is provided, but for now the new code is not compiled when
>> CONFIG_ARCH_EXYNOS is selected to avoid collision with legacy code. This
>> will change as soon as Exynos power domain code gets converted to use
>> the generic framework in further patch.
>>
>> Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
>> ---
>>   .../devicetree/bindings/power/power_domain.txt     |  51 ++++
>>   drivers/base/power/domain.c                        | 298 +++++++++++++++++++++
>>   include/linux/pm_domain.h                          |  46 ++++
>>   kernel/power/Kconfig                               |   4 +
>>   4 files changed, 399 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/power/power_domain.txt
>>
>> diff --git a/Documentation/devicetree/bindings/power/power_domain.txt b/Documentation/devicetree/bindings/power/power_domain.txt
>> new file mode 100644
>> index 0000000..93be5d9
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/power/power_domain.txt
>> @@ -0,0 +1,51 @@
>> +* Generic power domains
>> +
>> +System on chip designs are often divided into multiple power domains that
>> +can be used for power gating of selected IP blocks for power saving by
>> +reduced leakage current.
>> +
>> +This device tree binding can be used to bind power domain consumer devices
>> +with their power domains provided by power domain providers. A power domain
>> +provider can be represented by any node in the device tree and can provide
>> +one or more power domains. A consumer node can refer to the provider by
>> +a phandle and a set of phandle arguments (so called power domain specifier)
>> +of length specified by #power-domain-cells property in the power domain
>> +provider node.
>> +
>> +==Power domain providers==
>> +
>> +Required properties:
>> + - #power-domain-cells : Number of cells in a power domain specifier;
>> +   Typically 0 for nodes representing a single power domain and 1 for nodes
>> +   providing multiple power domains (e.g. power controllers), but can be
>> +   any value as specified by device tree binding documentation of particular
>> +   provider.
>> +
>> +Example:
>> +
>> +	power: power-controller@12340000 {
>> +		compatible = "foo,power-controller";
>> +		reg = <0x12340000 0x1000>;
>> +		#power-domain-cells = <1>;
>> +	};
>> +
>> +The node above defines a power controller that is a power domain provider
>> +and expects one cell as its phandle argument.
>> +
>> +==Power domain consumers==
>> +
>> +Required properties:
>> + - power-domain : A phandle and power domain specifier as defined by bindings
>> +                  of power controller specified by phandle.
>> +
>> +Example:
>> +
>> +	leaky-device@12350000 {
>> +		compatible = "foo,i-leak-current";
>> +		reg = <0x12350000 0x1000>;
>> +		power-domain = <&power 0>;
>> +	};
>> +
>> +The node above defines a typical power domain consumer device, which is located
>> +inside power domain with index 0 of power controller represented by node with
>> +label "power".
>
> Does this allow nesting of power domains? E.g. you have a PD which is
> represented by some programmable power supply, and within this domain
> smaller islands/domains that can be gated independently.

These are client-side bindings only, i.e. power domain providers and 
consumers. Registering power domains and relations between them are up 
to platform-specific code, e.g. power controller driver.

Best regards,
Tomasz

  reply	other threads:[~2014-03-19 23:16 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-03 16:02 [PATCH v2 00/11] Generic Device Tree based power domain look-up Tomasz Figa
2014-03-03 16:02 ` Tomasz Figa
2014-03-03 16:02 ` Tomasz Figa
2014-03-03 16:02 ` [PATCH v2 01/11] base: power: Add generic OF-based " Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-04 18:23   ` Stephen Boyd
2014-03-04 18:23     ` Stephen Boyd
2014-03-05 11:53     ` Tomasz Figa
2014-03-05 11:53       ` Tomasz Figa
2014-03-05  4:24   ` Mark Brown
2014-03-05  4:24     ` Mark Brown
2014-03-05  6:41   ` Rob Herring
2014-03-05  6:41     ` Rob Herring
2014-03-05  7:19   ` Ulf Hansson
2014-03-05  7:19     ` Ulf Hansson
2014-03-05  7:19     ` Ulf Hansson
2014-03-05 11:47     ` Tomasz Figa
2014-03-05 11:47       ` Tomasz Figa
2014-03-05 11:47       ` Tomasz Figa
2014-03-05 12:44       ` Tomasz Figa
2014-03-05 12:44         ` Tomasz Figa
2014-03-05 12:44         ` Tomasz Figa
2014-03-05 18:37   ` Lorenzo Pieralisi
2014-03-05 18:37     ` Lorenzo Pieralisi
2014-03-14 23:07   ` Kevin Hilman
2014-03-14 23:07     ` Kevin Hilman
2014-03-14 23:07     ` Kevin Hilman
2014-03-19 23:13   ` Sören Brinkmann
2014-03-19 23:13     ` Sören Brinkmann
2014-03-19 23:13     ` Sören Brinkmann
2014-03-19 23:16     ` Tomasz Figa [this message]
2014-03-19 23:16       ` Tomasz Figa
2014-03-19 23:16       ` Tomasz Figa
2014-04-03 12:16   ` Ulf Hansson
2014-04-03 12:16     ` Ulf Hansson
2014-04-03 12:16     ` Ulf Hansson
     [not found]     ` <CAPDyKFoxTAHyX7SQAMsvt=OttHs22oMSB8XrRUDDJ06qO0Fc2w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-03 12:30       ` Tomasz Figa
2014-04-03 12:30         ` Tomasz Figa
2014-04-03 12:30         ` Tomasz Figa
2014-04-03 13:32         ` Ulf Hansson
2014-04-03 13:32           ` Ulf Hansson
2014-04-03 13:32           ` Ulf Hansson
2014-03-03 16:02 ` [PATCH v2 02/11] drivercore: Bind/unbind power domain on probe/remove Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-04 18:29   ` Stephen Boyd
2014-03-04 18:29     ` Stephen Boyd
2014-03-04 19:17   ` Philipp Zabel
2014-03-04 19:17     ` Philipp Zabel
2014-03-04 19:17     ` Philipp Zabel
2014-03-05  4:26   ` Mark Brown
2014-03-05  4:26     ` Mark Brown
2014-03-05  7:22   ` Ulf Hansson
2014-03-05  7:22     ` Ulf Hansson
2014-03-05  7:22     ` Ulf Hansson
2014-03-03 16:02 ` [PATCH v2 03/11] ARM: exynos: Move to generic power domain bindings Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-05 16:15   ` Bartlomiej Zolnierkiewicz
2014-03-05 16:15     ` Bartlomiej Zolnierkiewicz
2014-03-05 16:20     ` Tomasz Figa
2014-03-05 16:20       ` Tomasz Figa
2014-03-07 13:04       ` Bartlomiej Zolnierkiewicz
2014-03-07 13:04         ` Bartlomiej Zolnierkiewicz
2014-03-03 16:02 ` [PATCH v2 04/11] ARM: s3c64xx: pm: Use name field of generic_pm_domain Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-05  4:28   ` Mark Brown
2014-03-05  4:28     ` Mark Brown
2014-03-03 16:02 ` [PATCH v2 05/11] ARM: s3c64xx: pm: Add always_on field to s3c64xx_pm_domain struct Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-05  4:28   ` Mark Brown
2014-03-05  4:28     ` Mark Brown
2014-03-03 16:02 ` [PATCH v2 06/11] ARM: s3c64xx: pm: Add pwr_stat bit for domain G Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-05  4:28   ` Mark Brown
2014-03-05  4:28     ` Mark Brown
2014-03-03 16:02 ` [PATCH v2 07/11] ARM: s3c64xx: pm: Add device tree based power domain instantiation Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
     [not found]   ` <1393862536-9842-8-git-send-email-tomasz.figa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-03-05  4:29     ` Mark Brown
2014-03-05  4:29       ` Mark Brown
2014-03-05  4:29       ` Mark Brown
2014-03-03 16:02 ` [PATCH v2 08/11] ARM: s3c64xx: dt: Enable SoC-level power management Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
     [not found]   ` <1393862536-9842-9-git-send-email-tomasz.figa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-03-05  4:30     ` Mark Brown
2014-03-05  4:30       ` Mark Brown
2014-03-05  4:30       ` Mark Brown
     [not found] ` <1393862536-9842-1-git-send-email-tomasz.figa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-03-03 16:02   ` [PATCH v2 09/11] ARM: dts: s3c64xx: Add nodes for power domains Tomasz Figa
2014-03-03 16:02     ` Tomasz Figa
2014-03-03 16:02     ` Tomasz Figa
2014-03-05  4:31     ` Mark Brown
2014-03-05  4:31       ` Mark Brown
2014-03-03 16:02 ` [PATCH v2 10/11] ARM: dts: s3c64xx: Add node for display controller Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-03 16:02 ` [PATCH v2 11/11] ARM: dts: s3c6410-mini6410: Add support for LCD screen Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa
2014-03-03 16:02   ` Tomasz Figa

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=532A253E.2000106@gmail.com \
    --to=tomasz.figa@gmail.com \
    --cc=b.zolnierkie@samsung.com \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=kgene.kim@samsung.com \
    --cc=len.brown@intel.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=m.szyprowski@samsung.com \
    --cc=mark.rutland@arm.com \
    --cc=pavel@ucw.cz \
    --cc=pawel.moll@arm.com \
    --cc=rjw@rjwysocki.net \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@codeaurora.org \
    --cc=soren.brinkmann@xilinx.com \
    --cc=swarren@wwwdotorg.org \
    --cc=t.figa@samsung.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 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.