From: Rajendra Nayak <rnayak@ti.com>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: broonie@opensource.wolfsonmicro.com,
devicetree-discuss@lists.ozlabs.org, linux-omap@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, tony@atomide.com,
lrg@ti.com, b-cousson@ti.com, patches@linaro.org
Subject: Re: [PATCH 9/9] regulator: map consumer regulator based on device tree
Date: Fri, 30 Sep 2011 14:59:51 +0530 [thread overview]
Message-ID: <4E858C0F.5070405@ti.com> (raw)
In-Reply-To: <20110930013819.GI12606@ponder.secretlab.ca>
On Friday 30 September 2011 07:08 AM, Grant Likely wrote:
> On Tue, Sep 27, 2011 at 03:42:52PM +0530, Rajendra Nayak wrote:
>> Look up the regulator for a given consumer from device tree, during
>> a regulator_get(). If not found fallback and lookup through
>> the regulator_map_list instead.
>>
>> Devices can associate with one or more regulators by providing a
>> list of phandles and supply names.
>>
>> For Example:
>> devicenode: node@0x0 {
>> ...
>> ...
>> vmmc-supply =<®ulator1>;
>> vpll-supply =<®ulator2>;
>> };
>>
>> When a device driver calls a regulator_get, specifying the
>> supply name, the phandle and eventually the regulator node
>> is extracted from the device node.
>>
>> Signed-off-by: Rajendra Nayak<rnayak@ti.com>
>> ---
>> drivers/regulator/core.c | 14 ++++++++++++++
>> include/linux/regulator/driver.h | 3 +++
>> 2 files changed, 17 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
>> index d8e6a42..47b851c 100644
>> --- a/drivers/regulator/core.c
>> +++ b/drivers/regulator/core.c
>> @@ -25,9 +25,11 @@
>> #include<linux/mutex.h>
>> #include<linux/suspend.h>
>> #include<linux/delay.h>
>> +#include<linux/of.h>
>> #include<linux/regulator/consumer.h>
>> #include<linux/regulator/driver.h>
>> #include<linux/regulator/machine.h>
>> +#include<linux/regulator/of_regulator.h>
>>
>> #define CREATE_TRACE_POINTS
>> #include<trace/events/regulator.h>
>> @@ -1155,6 +1157,7 @@ static struct regulator *_regulator_get(struct device *dev, const char *id,
>> struct regulator_map *map;
>> struct regulator *regulator = ERR_PTR(-ENODEV);
>> const char *devname = NULL;
>> + struct device_node *node;
>> int ret;
>>
>> if (id == NULL) {
>> @@ -1167,6 +1170,15 @@ static struct regulator *_regulator_get(struct device *dev, const char *id,
>>
>> mutex_lock(®ulator_list_mutex);
>>
>> + if (dev->of_node) {
>> + node = of_get_regulator(dev, id);
>> + if (!node)
>> + goto retry; /* fallback and chk regulator_map_list */
>> + list_for_each_entry(rdev,®ulator_list, list)
>> + if (node == rdev->node)
>> + goto found;
>> + }
>> +retry:
>> list_for_each_entry(map,®ulator_map_list, list) {
>> /* If the mapping has a device set up it must match */
>> if (map->dev_name&&
>> @@ -2619,6 +2631,8 @@ struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
>> rdev->reg_data = driver_data;
>> rdev->owner = regulator_desc->owner;
>> rdev->desc = regulator_desc;
>> + if (dev&& dev->of_node)
>> + rdev->node = dev->of_node;
>> INIT_LIST_HEAD(&rdev->consumer_list);
>> INIT_LIST_HEAD(&rdev->list);
>> BLOCKING_INIT_NOTIFIER_HEAD(&rdev->notifier);
>> diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h
>> index 1a80bc7..4aebbf5 100644
>> --- a/include/linux/regulator/driver.h
>> +++ b/include/linux/regulator/driver.h
>> @@ -196,6 +196,9 @@ struct regulator_dev {
>> struct mutex mutex; /* consumer lock */
>> struct module *owner;
>> struct device dev;
>> +#ifdef CONFIG_OF
>> + struct device_node *node;
>> +#endif
>
> There is already an of_node pointer in regulator_dev->dev.of_node.
> Why does another need to be added here?
Yes, I guess it doesn't. Will remove it.
Thanks.
>
> g.
>
WARNING: multiple messages have this Message-ID (diff)
From: rnayak@ti.com (Rajendra Nayak)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 9/9] regulator: map consumer regulator based on device tree
Date: Fri, 30 Sep 2011 14:59:51 +0530 [thread overview]
Message-ID: <4E858C0F.5070405@ti.com> (raw)
In-Reply-To: <20110930013819.GI12606@ponder.secretlab.ca>
On Friday 30 September 2011 07:08 AM, Grant Likely wrote:
> On Tue, Sep 27, 2011 at 03:42:52PM +0530, Rajendra Nayak wrote:
>> Look up the regulator for a given consumer from device tree, during
>> a regulator_get(). If not found fallback and lookup through
>> the regulator_map_list instead.
>>
>> Devices can associate with one or more regulators by providing a
>> list of phandles and supply names.
>>
>> For Example:
>> devicenode: node at 0x0 {
>> ...
>> ...
>> vmmc-supply =<®ulator1>;
>> vpll-supply =<®ulator2>;
>> };
>>
>> When a device driver calls a regulator_get, specifying the
>> supply name, the phandle and eventually the regulator node
>> is extracted from the device node.
>>
>> Signed-off-by: Rajendra Nayak<rnayak@ti.com>
>> ---
>> drivers/regulator/core.c | 14 ++++++++++++++
>> include/linux/regulator/driver.h | 3 +++
>> 2 files changed, 17 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
>> index d8e6a42..47b851c 100644
>> --- a/drivers/regulator/core.c
>> +++ b/drivers/regulator/core.c
>> @@ -25,9 +25,11 @@
>> #include<linux/mutex.h>
>> #include<linux/suspend.h>
>> #include<linux/delay.h>
>> +#include<linux/of.h>
>> #include<linux/regulator/consumer.h>
>> #include<linux/regulator/driver.h>
>> #include<linux/regulator/machine.h>
>> +#include<linux/regulator/of_regulator.h>
>>
>> #define CREATE_TRACE_POINTS
>> #include<trace/events/regulator.h>
>> @@ -1155,6 +1157,7 @@ static struct regulator *_regulator_get(struct device *dev, const char *id,
>> struct regulator_map *map;
>> struct regulator *regulator = ERR_PTR(-ENODEV);
>> const char *devname = NULL;
>> + struct device_node *node;
>> int ret;
>>
>> if (id == NULL) {
>> @@ -1167,6 +1170,15 @@ static struct regulator *_regulator_get(struct device *dev, const char *id,
>>
>> mutex_lock(®ulator_list_mutex);
>>
>> + if (dev->of_node) {
>> + node = of_get_regulator(dev, id);
>> + if (!node)
>> + goto retry; /* fallback and chk regulator_map_list */
>> + list_for_each_entry(rdev,®ulator_list, list)
>> + if (node == rdev->node)
>> + goto found;
>> + }
>> +retry:
>> list_for_each_entry(map,®ulator_map_list, list) {
>> /* If the mapping has a device set up it must match */
>> if (map->dev_name&&
>> @@ -2619,6 +2631,8 @@ struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
>> rdev->reg_data = driver_data;
>> rdev->owner = regulator_desc->owner;
>> rdev->desc = regulator_desc;
>> + if (dev&& dev->of_node)
>> + rdev->node = dev->of_node;
>> INIT_LIST_HEAD(&rdev->consumer_list);
>> INIT_LIST_HEAD(&rdev->list);
>> BLOCKING_INIT_NOTIFIER_HEAD(&rdev->notifier);
>> diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h
>> index 1a80bc7..4aebbf5 100644
>> --- a/include/linux/regulator/driver.h
>> +++ b/include/linux/regulator/driver.h
>> @@ -196,6 +196,9 @@ struct regulator_dev {
>> struct mutex mutex; /* consumer lock */
>> struct module *owner;
>> struct device dev;
>> +#ifdef CONFIG_OF
>> + struct device_node *node;
>> +#endif
>
> There is already an of_node pointer in regulator_dev->dev.of_node.
> Why does another need to be added here?
Yes, I guess it doesn't. Will remove it.
Thanks.
>
> g.
>
next prev parent reply other threads:[~2011-09-30 9:30 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-27 10:12 [PATCH 0/9] Device tree support for regulators Rajendra Nayak
2011-09-27 10:12 ` Rajendra Nayak
2011-09-27 10:12 ` [PATCH 1/9] regulator: twl: Remove hardcoded board constraints from driver Rajendra Nayak
2011-09-27 10:12 ` Rajendra Nayak
2011-09-27 11:37 ` Mark Brown
2011-09-27 11:37 ` Mark Brown
2011-09-27 14:47 ` Rajendra Nayak
2011-09-27 14:47 ` Rajendra Nayak
2011-09-27 10:12 ` [PATCH 2/9] regulator: helper routine to extract regulator_init_data Rajendra Nayak
2011-09-27 10:12 ` Rajendra Nayak
2011-09-27 12:10 ` Mark Brown
2011-09-27 12:10 ` Mark Brown
2011-09-27 14:48 ` Rajendra Nayak
2011-09-27 14:48 ` Rajendra Nayak
[not found] ` <4E81E224.2070408-l0cyMroinI0@public.gmane.org>
2011-09-27 15:05 ` Mark Brown
2011-09-27 15:05 ` Mark Brown
2011-09-28 8:06 ` Cousson, Benoit
2011-09-28 8:06 ` Cousson, Benoit
2011-09-30 4:27 ` Rajendra Nayak
2011-09-30 4:27 ` Rajendra Nayak
2011-09-30 7:58 ` Cousson, Benoit
2011-09-30 7:58 ` Cousson, Benoit
2011-09-30 10:49 ` Mark Brown
2011-09-30 10:49 ` Mark Brown
2011-09-30 10:28 ` Mark Brown
2011-09-30 10:28 ` Mark Brown
2011-09-30 10:48 ` Mark Brown
2011-09-30 10:48 ` Mark Brown
2011-09-30 11:09 ` Rajendra Nayak
2011-09-30 11:09 ` Rajendra Nayak
2011-09-30 11:35 ` Cousson, Benoit
2011-09-30 11:35 ` Cousson, Benoit
2011-09-30 12:18 ` Mark Brown
2011-09-30 12:18 ` Mark Brown
2011-10-04 5:28 ` Rajendra Nayak
2011-10-04 5:28 ` Rajendra Nayak
2011-10-04 10:18 ` Mark Brown
2011-10-04 10:18 ` Mark Brown
2011-10-04 11:40 ` Rajendra Nayak
2011-10-04 11:40 ` Rajendra Nayak
2011-10-04 11:51 ` Mark Brown
2011-10-04 11:51 ` Mark Brown
2011-10-04 12:02 ` Rajendra Nayak
2011-10-04 12:02 ` Rajendra Nayak
2011-10-04 12:11 ` Mark Brown
2011-10-04 12:11 ` Mark Brown
2011-10-04 12:40 ` Nayak, Rajendra
2011-10-04 12:40 ` Nayak, Rajendra
[not found] ` <20110927121003.GB4289-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2011-09-30 1:24 ` Grant Likely
2011-09-30 1:24 ` Grant Likely
2011-10-04 23:01 ` Russell King - ARM Linux
2011-10-04 23:01 ` Russell King - ARM Linux
2011-10-04 23:48 ` Grant Likely
2011-10-04 23:48 ` Grant Likely
2011-09-27 10:12 ` [PATCH 3/9] omap4: sdp: Pass regulator data from dt Rajendra Nayak
2011-09-27 10:12 ` Rajendra Nayak
2011-09-27 10:12 ` [PATCH 4/9] regulator: twl: Make twl-regulator driver extract data from DT Rajendra Nayak
2011-09-27 10:12 ` Rajendra Nayak
2011-09-27 12:14 ` Mark Brown
2011-09-27 12:14 ` Mark Brown
2011-09-27 14:48 ` Rajendra Nayak
2011-09-27 14:48 ` Rajendra Nayak
2011-09-27 10:12 ` [PATCH 5/9] regulator: helper routine to extract fixed_voltage_config Rajendra Nayak
2011-09-27 10:12 ` Rajendra Nayak
2011-09-27 12:16 ` Mark Brown
2011-09-27 12:16 ` Mark Brown
2011-09-27 14:49 ` Rajendra Nayak
2011-09-27 14:49 ` Rajendra Nayak
2011-09-27 16:13 ` Mark Brown
2011-09-27 16:13 ` Mark Brown
[not found] ` <1317118372-17052-6-git-send-email-rnayak-l0cyMroinI0@public.gmane.org>
2011-09-30 1:26 ` Grant Likely
2011-09-30 1:26 ` Grant Likely
2011-09-27 10:12 ` [PATCH 6/9] regulator: make fixed regulator driver extract data from dt Rajendra Nayak
2011-09-27 10:12 ` Rajendra Nayak
2011-09-30 1:34 ` Grant Likely
2011-09-30 1:34 ` Grant Likely
2011-09-27 10:12 ` [PATCH 7/9] omap4: panda: Pass regulator data from DT Rajendra Nayak
2011-09-27 10:12 ` Rajendra Nayak
2011-09-27 10:12 ` [PATCH 8/9] regulator: helper to extract regulator node based on supply name Rajendra Nayak
2011-09-27 10:12 ` Rajendra Nayak
2011-09-27 12:21 ` Mark Brown
2011-09-27 12:21 ` Mark Brown
2011-09-27 14:49 ` Rajendra Nayak
2011-09-27 14:49 ` Rajendra Nayak
2011-09-27 18:59 ` Mark Brown
2011-09-27 18:59 ` Mark Brown
2011-09-28 8:09 ` Cousson, Benoit
2011-09-28 8:09 ` Cousson, Benoit
2011-09-28 8:18 ` Rajendra Nayak
2011-09-28 8:18 ` Rajendra Nayak
2011-09-28 12:26 ` Mark Brown
2011-09-28 12:26 ` Mark Brown
2011-09-30 9:34 ` Rajendra Nayak
2011-09-30 9:34 ` Rajendra Nayak
2011-09-30 10:35 ` Mark Brown
2011-09-30 10:35 ` Mark Brown
2011-10-04 17:00 ` Grant Likely
2011-10-04 17:00 ` Grant Likely
2011-09-28 10:56 ` Rajendra Nayak
2011-09-28 10:56 ` Rajendra Nayak
2011-09-30 1:36 ` Grant Likely
2011-09-30 1:36 ` Grant Likely
2011-09-27 10:12 ` [PATCH 9/9] regulator: map consumer regulator based on device tree Rajendra Nayak
2011-09-27 10:12 ` Rajendra Nayak
2011-09-27 12:23 ` Mark Brown
2011-09-27 12:23 ` Mark Brown
2011-09-27 14:49 ` Rajendra Nayak
2011-09-27 14:49 ` Rajendra Nayak
[not found] ` <1317118372-17052-10-git-send-email-rnayak-l0cyMroinI0@public.gmane.org>
2011-09-30 1:38 ` Grant Likely
2011-09-30 1:38 ` Grant Likely
2011-09-30 9:29 ` Rajendra Nayak [this message]
2011-09-30 9:29 ` Rajendra Nayak
2011-09-30 1:39 ` [PATCH 0/9] Device tree support for regulators Grant Likely
2011-09-30 1:39 ` Grant Likely
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=4E858C0F.5070405@ti.com \
--to=rnayak@ti.com \
--cc=b-cousson@ti.com \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=grant.likely@secretlab.ca \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=lrg@ti.com \
--cc=patches@linaro.org \
--cc=tony@atomide.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 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.