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
Subject: Re: [RFC PATCH 05/11] TWL: regulator: Make twl-regulator driver extract data from DT
Date: Fri, 16 Sep 2011 12:55:07 +0530 [thread overview]
Message-ID: <4E72F9D3.9060304@ti.com> (raw)
In-Reply-To: <20110915221811.GN3523@ponder.secretlab.ca>
On Friday 16 September 2011 03:48 AM, Grant Likely wrote:
> On Thu, Sep 15, 2011 at 04:52:01PM +0530, Rajendra Nayak wrote:
>> Modify the twl regulator driver to extract the regulator_init_data from
>> device tree when passed, instead of getting it through platform_data
>> structures (on non-DT builds)
>>
>> Signed-off-by: Rajendra Nayak<rnayak@ti.com>
>> ---
>> drivers/regulator/twl-regulator.c | 28 +++++++++++++++++++++++++---
>> 1 files changed, 25 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/regulator/twl-regulator.c b/drivers/regulator/twl-regulator.c
>> index ee8747f..df1b95a 100644
>> --- a/drivers/regulator/twl-regulator.c
>> +++ b/drivers/regulator/twl-regulator.c
>> @@ -17,6 +17,8 @@
>> #include<linux/regulator/driver.h>
>> #include<linux/regulator/machine.h>
>> #include<linux/i2c/twl.h>
>> +#include<linux/of.h>
>> +#include<linux/of_regulator.h>
>>
>>
>> /*
>> @@ -1011,6 +1013,9 @@ static int __devinit twlreg_probe(struct platform_device *pdev)
>> struct regulation_constraints *c;
>> struct regulator_dev *rdev;
>>
>> + if (pdev->dev.of_node)
>> + of_property_read_u32(pdev->dev.of_node, "ti,reg-id",&pdev->id);
>> +
>
> Don't do this. As much as possible, don't reply on plaform_device->id
> when using DT. Plus it is illegal to modify pdev->id after the device
> is registered.
yeah, I did this hackery to just get around the drivers per-regulator
lookup table for which it uses the pdev->id as the index.
I will need to do this lookup based on compatible instead I guess.
>
>> for (i = 0, info = NULL; i< ARRAY_SIZE(twl_regs); i++) {
>> if (twl_regs[i].desc.id != pdev->id)
>> continue;
>> @@ -1020,7 +1025,11 @@ static int __devinit twlreg_probe(struct platform_device *pdev)
>> if (!info)
>> return -ENODEV;
>>
>> - initdata = pdev->dev.platform_data;
>> + if (pdev->dev.of_node)
>> + initdata = of_get_regulator_init_data(pdev->dev.of_node);
>> + else
>> + initdata = pdev->dev.platform_data;
>> +
>> if (!initdata)
>> return -EINVAL;
>>
>> @@ -1101,14 +1110,27 @@ static int __devexit twlreg_remove(struct platform_device *pdev)
>>
>> MODULE_ALIAS("platform:twl_reg");
>>
>> +#if defined(CONFIG_OF)
>> +static const struct of_device_id twl_of_match[] __devinitconst = {
>> + { .compatible = "ti,twl-reg", },
>
> This looks rather generic. Is this a specific chip? It should be.
We have multiple chips in the twl family like twl6030/twl6040/twl6025
but just one driver which handles all variants.
>
> g.
>
>> + {},
>> +};
>> +MODULE_DEVICE_TABLE(of, twl_of_match);
>> +#else
>> +#define twl_of_match NULL
>> +#endif
>> +
>> static struct platform_driver twlreg_driver = {
>> .probe = twlreg_probe,
>> .remove = __devexit_p(twlreg_remove),
>> /* NOTE: short name, to work around driver model truncation of
>> * "twl_regulator.12" (and friends) to "twl_regulator.1".
>> */
>> - .driver.name = "twl_reg",
>> - .driver.owner = THIS_MODULE,
>> + .driver = {
>> + .name = "twl_reg",
>> + .owner = THIS_MODULE,
>> + .of_match_table = twl_of_match,
>> + },
>> };
>>
>> static int __init twlreg_init(void)
>> --
>> 1.7.1
>>
WARNING: multiple messages have this Message-ID (diff)
From: rnayak@ti.com (Rajendra Nayak)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 05/11] TWL: regulator: Make twl-regulator driver extract data from DT
Date: Fri, 16 Sep 2011 12:55:07 +0530 [thread overview]
Message-ID: <4E72F9D3.9060304@ti.com> (raw)
In-Reply-To: <20110915221811.GN3523@ponder.secretlab.ca>
On Friday 16 September 2011 03:48 AM, Grant Likely wrote:
> On Thu, Sep 15, 2011 at 04:52:01PM +0530, Rajendra Nayak wrote:
>> Modify the twl regulator driver to extract the regulator_init_data from
>> device tree when passed, instead of getting it through platform_data
>> structures (on non-DT builds)
>>
>> Signed-off-by: Rajendra Nayak<rnayak@ti.com>
>> ---
>> drivers/regulator/twl-regulator.c | 28 +++++++++++++++++++++++++---
>> 1 files changed, 25 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/regulator/twl-regulator.c b/drivers/regulator/twl-regulator.c
>> index ee8747f..df1b95a 100644
>> --- a/drivers/regulator/twl-regulator.c
>> +++ b/drivers/regulator/twl-regulator.c
>> @@ -17,6 +17,8 @@
>> #include<linux/regulator/driver.h>
>> #include<linux/regulator/machine.h>
>> #include<linux/i2c/twl.h>
>> +#include<linux/of.h>
>> +#include<linux/of_regulator.h>
>>
>>
>> /*
>> @@ -1011,6 +1013,9 @@ static int __devinit twlreg_probe(struct platform_device *pdev)
>> struct regulation_constraints *c;
>> struct regulator_dev *rdev;
>>
>> + if (pdev->dev.of_node)
>> + of_property_read_u32(pdev->dev.of_node, "ti,reg-id",&pdev->id);
>> +
>
> Don't do this. As much as possible, don't reply on plaform_device->id
> when using DT. Plus it is illegal to modify pdev->id after the device
> is registered.
yeah, I did this hackery to just get around the drivers per-regulator
lookup table for which it uses the pdev->id as the index.
I will need to do this lookup based on compatible instead I guess.
>
>> for (i = 0, info = NULL; i< ARRAY_SIZE(twl_regs); i++) {
>> if (twl_regs[i].desc.id != pdev->id)
>> continue;
>> @@ -1020,7 +1025,11 @@ static int __devinit twlreg_probe(struct platform_device *pdev)
>> if (!info)
>> return -ENODEV;
>>
>> - initdata = pdev->dev.platform_data;
>> + if (pdev->dev.of_node)
>> + initdata = of_get_regulator_init_data(pdev->dev.of_node);
>> + else
>> + initdata = pdev->dev.platform_data;
>> +
>> if (!initdata)
>> return -EINVAL;
>>
>> @@ -1101,14 +1110,27 @@ static int __devexit twlreg_remove(struct platform_device *pdev)
>>
>> MODULE_ALIAS("platform:twl_reg");
>>
>> +#if defined(CONFIG_OF)
>> +static const struct of_device_id twl_of_match[] __devinitconst = {
>> + { .compatible = "ti,twl-reg", },
>
> This looks rather generic. Is this a specific chip? It should be.
We have multiple chips in the twl family like twl6030/twl6040/twl6025
but just one driver which handles all variants.
>
> g.
>
>> + {},
>> +};
>> +MODULE_DEVICE_TABLE(of, twl_of_match);
>> +#else
>> +#define twl_of_match NULL
>> +#endif
>> +
>> static struct platform_driver twlreg_driver = {
>> .probe = twlreg_probe,
>> .remove = __devexit_p(twlreg_remove),
>> /* NOTE: short name, to work around driver model truncation of
>> * "twl_regulator.12" (and friends) to "twl_regulator.1".
>> */
>> - .driver.name = "twl_reg",
>> - .driver.owner = THIS_MODULE,
>> + .driver = {
>> + .name = "twl_reg",
>> + .owner = THIS_MODULE,
>> + .of_match_table = twl_of_match,
>> + },
>> };
>>
>> static int __init twlreg_init(void)
>> --
>> 1.7.1
>>
next prev parent reply other threads:[~2011-09-16 7:25 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-15 11:21 [RFC PATCH 00/11] Device tree support for regulators Rajendra Nayak
2011-09-15 11:21 ` Rajendra Nayak
2011-09-15 11:21 ` [RFC PATCH 01/11] OMAP: TWL: Clean up mode and ops mask passed from board files Rajendra Nayak
2011-09-15 11:21 ` Rajendra Nayak
2011-09-15 11:21 ` [RFC PATCH 02/11] regulator: Fix error check in set_consumer_device_supply Rajendra Nayak
2011-09-15 11:21 ` Rajendra Nayak
2011-09-15 11:21 ` [RFC PATCH 03/11] DT: regulator: Helper routine to extract regulator_init_data Rajendra Nayak
2011-09-15 11:21 ` Rajendra Nayak
2011-09-15 11:22 ` [RFC PATCH 04/11] omap4: SDP: Pass regulator_init_data from DT Rajendra Nayak
2011-09-15 11:22 ` Rajendra Nayak
2011-09-15 11:22 ` [RFC PATCH 05/11] TWL: regulator: Make twl-regulator driver extract data " Rajendra Nayak
2011-09-15 11:22 ` Rajendra Nayak
2011-09-15 11:22 ` [RFC PATCH 06/11] DT: regulator: Helper routine to extract fixed_voltage_config Rajendra Nayak
2011-09-15 11:22 ` Rajendra Nayak
2011-09-15 11:22 ` [RFC PATCH 07/11] regulator: Make fixed regulator driver extract data from DT Rajendra Nayak
2011-09-15 11:22 ` Rajendra Nayak
2011-09-15 11:22 ` [RFC PATCH 08/11] omap4: panda: Pass fixed regulator " Rajendra Nayak
2011-09-15 11:22 ` Rajendra Nayak
2011-09-15 11:22 ` [RFC PATCH 09/11] DT: regulator: Helper to extract regulator node based on supply name Rajendra Nayak
2011-09-15 11:22 ` Rajendra Nayak
2011-09-15 11:22 ` [RFC PATCH 10/11] regulator: Implement consumer regulator mapping from device tree Rajendra Nayak
2011-09-15 11:22 ` Rajendra Nayak
2011-09-15 11:22 ` [RFC PATCH 11/11] DT: regulator: register regulators as platform devices Rajendra Nayak
2011-09-15 11:22 ` Rajendra Nayak
2011-09-15 14:21 ` Mark Brown
2011-09-15 14:21 ` Mark Brown
2011-09-16 7:22 ` Rajendra Nayak
2011-09-16 7:22 ` Rajendra Nayak
2011-09-15 13:59 ` [RFC PATCH 10/11] regulator: Implement consumer regulator mapping from device tree Mark Brown
2011-09-15 13:59 ` Mark Brown
2011-09-16 7:21 ` Rajendra Nayak
2011-09-16 7:21 ` Rajendra Nayak
[not found] ` <4E72F8E2.3020200-l0cyMroinI0@public.gmane.org>
2011-09-16 9:02 ` Mark Brown
2011-09-16 9:02 ` Mark Brown
2011-09-15 13:54 ` [RFC PATCH 09/11] DT: regulator: Helper to extract regulator node based on supply name Mark Brown
2011-09-15 13:54 ` Mark Brown
2011-09-15 22:50 ` Grant Likely
2011-09-15 22:50 ` Grant Likely
2011-09-15 23:03 ` Mark Brown
2011-09-15 23:03 ` Mark Brown
2011-09-16 7:19 ` Rajendra Nayak
2011-09-16 7:19 ` Rajendra Nayak
2011-09-15 13:51 ` [RFC PATCH 07/11] regulator: Make fixed regulator driver extract data from DT Mark Brown
2011-09-15 13:51 ` Mark Brown
2011-09-15 13:50 ` [RFC PATCH 06/11] DT: regulator: Helper routine to extract fixed_voltage_config Mark Brown
2011-09-15 13:50 ` Mark Brown
2011-09-16 7:19 ` Rajendra Nayak
2011-09-16 7:19 ` Rajendra Nayak
2011-09-16 9:01 ` Mark Brown
2011-09-16 9:01 ` Mark Brown
[not found] ` <20110916090123.GE22062-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2011-09-16 9:26 ` Rajendra Nayak
2011-09-16 9:26 ` Rajendra Nayak
2011-09-15 22:19 ` Grant Likely
2011-09-15 22:19 ` Grant Likely
2011-09-15 22:18 ` [RFC PATCH 05/11] TWL: regulator: Make twl-regulator driver extract data from DT Grant Likely
2011-09-15 22:18 ` Grant Likely
2011-09-16 7:25 ` Rajendra Nayak [this message]
2011-09-16 7:25 ` Rajendra Nayak
2011-09-15 13:46 ` [RFC PATCH 04/11] omap4: SDP: Pass regulator_init_data " Mark Brown
2011-09-15 13:46 ` Mark Brown
2011-09-15 22:16 ` Grant Likely
2011-09-15 22:16 ` Grant Likely
2011-09-16 7:17 ` Rajendra Nayak
2011-09-16 7:17 ` Rajendra Nayak
2011-09-16 9:00 ` Mark Brown
2011-09-16 9:00 ` Mark Brown
2011-09-16 9:26 ` Rajendra Nayak
2011-09-16 9:26 ` Rajendra Nayak
2011-09-15 22:15 ` Grant Likely
2011-09-15 22:15 ` Grant Likely
2011-09-15 13:44 ` [RFC PATCH 03/11] DT: regulator: Helper routine to extract regulator_init_data Mark Brown
2011-09-15 13:44 ` Mark Brown
2011-09-15 18:17 ` Rob Herring
2011-09-15 18:17 ` Rob Herring
2011-09-16 7:15 ` Rajendra Nayak
2011-09-16 7:15 ` Rajendra Nayak
2011-09-16 8:58 ` Mark Brown
2011-09-16 8:58 ` Mark Brown
2011-09-15 18:30 ` Rob Herring
2011-09-15 18:30 ` Rob Herring
2011-09-15 22:12 ` Grant Likely
2011-09-15 22:12 ` Grant Likely
2011-09-16 7:24 ` Rajendra Nayak
2011-09-16 7:24 ` Rajendra Nayak
2011-09-16 9:52 ` Mark Brown
2011-09-16 9:52 ` Mark Brown
2011-09-15 13:33 ` [RFC PATCH 02/11] regulator: Fix error check in set_consumer_device_supply Mark Brown
2011-09-15 13:33 ` Mark Brown
2011-09-16 7:12 ` Rajendra Nayak
2011-09-16 7:12 ` Rajendra Nayak
2011-09-15 13:32 ` [RFC PATCH 01/11] OMAP: TWL: Clean up mode and ops mask passed from board files Mark Brown
2011-09-15 13:32 ` Mark Brown
2011-09-16 7:11 ` Rajendra Nayak
2011-09-16 7:11 ` Rajendra Nayak
2011-09-16 8:57 ` Mark Brown
2011-09-16 8:57 ` Mark Brown
2011-09-16 9:25 ` Rajendra Nayak
2011-09-16 9:25 ` Rajendra Nayak
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=4E72F9D3.9060304@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=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.