From: "Andrew F. Davis" <afd@ti.com>
To: Mark Brown <broonie@kernel.org>
Cc: Rob Herring <robh+dt@kernel.org>, Pawel Moll <pawel.moll@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Kumar Gala <galak@codeaurora.org>,
Lee Jones <lee.jones@linaro.org>,
Linus Walleij <linus.walleij@linaro.org>,
Alexandre Courbot <gnurou@gmail.com>,
Samuel Ortiz <sameo@linux.intel.com>,
Liam Girdwood <lgirdwood@gmail.com>,
linux-gpio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 4/5] regulators: tps65912: Add regulator driver for the TPS65912 PMIC
Date: Wed, 30 Sep 2015 18:32:14 -0500 [thread overview]
Message-ID: <560C70FE.6000909@ti.com> (raw)
In-Reply-To: <20150930222022.GC15635@sirena.org.uk>
On 09/30/2015 05:20 PM, Mark Brown wrote:
> On Wed, Sep 30, 2015 at 03:29:30PM -0500, Andrew F. Davis wrote:
>> On 09/30/2015 12:28 PM, Mark Brown wrote:
>
>>> No, you don't need to use regulator-compatible - that's deprecated.
>>> Just use the node names.
>
>> Are we sure matching on node names is a good idea? Most are just arbitrary
>> names meant to be human readable and reference-able, giving them function
>> may lead to confusion. This seems to be why we have "compatible", for specific
>> identification of node function. But I'm new so maybe I'm wrong?
>
> Yes, I'm sure. The regulators are just properties on the device, they
> are not devices themselves.
>
OK
>>> I'm not sure what there is to add... if the regulator is only
>>> instantiated when it features in the device tree then obviously it must
>>> be included in the device to be instantiated.
>
>> This is already the case then, missing regulator nodes in old drivers will not
>> get instantiated ether. And old drivers don't always store any more info about
>> available regulators than mine does.
>
> No, well implemented older drivers will still unconditionally register
> everything.
>
Is this desired? If they are not in the DT could this be used to signal
we don't want to register this regulator?
>>> Only getting probed for device is in DT is exactly the problem here, and
>>> nothing prevents us having separate modules for things without
>>> enumerating everything in DT.
>
>> Sure, but then we have to do some fiddling with MFD_CORE to do that work,
>> why not remove the dependency and let DT do that for DT only drivers?
>
> For the reasons I've outlined repeatedly.
>
>>> Putting everything in DT means more work for people integrating the
>>> device and means that we have to have a full and complete understanding
>>> of the device at the time we write the DT, including decions about how
>>> we split the functionality of the device between subsystems.
>
>> We are not adding anything extra to the DT node, we just use the "compatible"
>> string to identify and match the node vs. "regulator-name", or the nodes name,
>> or whatever else has been used. The node is then just filled with the standard
>> optional properties just like every other driver's node.
>
> No, you are missing the point. The point is that only regulators
> explicitly listed in the DT will be instantiated.
>
Same questions as above. ^^^
>> Newer than a lot, I chose to base my driver off of that not just because
>> it is a similar TI part, but because it was the cleanest, simplest looking
>> one IMHO. The helpers would require more code (you need to know how many
>> regulators you have and call the helpers in a loop).
>
> You're talking about a trivial loop that takes perhaps a couple of lines
> to open and close the for loop and another line to declare an iterator
> variable.
>
Adding any extra code and complexity to use a helper that does something
that already works with less doesn't make much sense to me, but if that's
the API you want I'll use it.
> Look, please stop arguing about this. There appears to be nothing
> special about this device that makes it different to other devices.
>
I'm sorry if I sounded overly argumentative about this, I'm just trying to make
points in favor of me not having to re-write my driver.
The new framework helpers do not help my driver as it does things differently.
You signed off on this different way of doing things just last year with the
TPS65218.
If you no longer want it done this way then I'll go and change my driver.
>> I have another PMIC I'm about to push a driver for when this gets figured out
>> that does the same thing, and it's more important I think to do it this way for
>> this new part. Some of the new regulators are designed without a dedicated
>> SOC or board to power in mind, so they will have a whole bunch for different
>> regulator types on one chip and it will be up to the designer to pick which ones
>> to turn on and use. With this DT approach you can just list the ones you want,
>> and we may even be able to split different types into different modules, then
>> we can use the same regulator driver in different spins of the PMIC with more
>> or less of that type of regulator, we just add that same node under a different
>> parent PMIC driver.
>
> This sounds exactly the same as the majority of PMIC drivers, there is
> nothing remarkable here.
>
Nothing meant to be remarkable, I was pointing out uses.
>> I could use the helper with this style and save a couple lines of code if we
>> could make regulator_of_get_init_data to also match on "compatible", it
>> currently only matches on "regulator-compatible" or the node name. I could make
>> this addition and send the patch if you would like to see what I have in mind.
>
> No, this would be broken - devices are instantiated via the driver
> model.
>
OK
WARNING: multiple messages have this Message-ID (diff)
From: "Andrew F. Davis" <afd@ti.com>
To: Mark Brown <broonie@kernel.org>
Cc: Rob Herring <robh+dt@kernel.org>, Pawel Moll <pawel.moll@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Kumar Gala <galak@codeaurora.org>,
Lee Jones <lee.jones@linaro.org>,
Linus Walleij <linus.walleij@linaro.org>,
Alexandre Courbot <gnurou@gmail.com>,
Samuel Ortiz <sameo@linux.intel.com>,
Liam Girdwood <lgirdwood@gmail.com>, <linux-gpio@vger.kernel.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 4/5] regulators: tps65912: Add regulator driver for the TPS65912 PMIC
Date: Wed, 30 Sep 2015 18:32:14 -0500 [thread overview]
Message-ID: <560C70FE.6000909@ti.com> (raw)
In-Reply-To: <20150930222022.GC15635@sirena.org.uk>
On 09/30/2015 05:20 PM, Mark Brown wrote:
> On Wed, Sep 30, 2015 at 03:29:30PM -0500, Andrew F. Davis wrote:
>> On 09/30/2015 12:28 PM, Mark Brown wrote:
>
>>> No, you don't need to use regulator-compatible - that's deprecated.
>>> Just use the node names.
>
>> Are we sure matching on node names is a good idea? Most are just arbitrary
>> names meant to be human readable and reference-able, giving them function
>> may lead to confusion. This seems to be why we have "compatible", for specific
>> identification of node function. But I'm new so maybe I'm wrong?
>
> Yes, I'm sure. The regulators are just properties on the device, they
> are not devices themselves.
>
OK
>>> I'm not sure what there is to add... if the regulator is only
>>> instantiated when it features in the device tree then obviously it must
>>> be included in the device to be instantiated.
>
>> This is already the case then, missing regulator nodes in old drivers will not
>> get instantiated ether. And old drivers don't always store any more info about
>> available regulators than mine does.
>
> No, well implemented older drivers will still unconditionally register
> everything.
>
Is this desired? If they are not in the DT could this be used to signal
we don't want to register this regulator?
>>> Only getting probed for device is in DT is exactly the problem here, and
>>> nothing prevents us having separate modules for things without
>>> enumerating everything in DT.
>
>> Sure, but then we have to do some fiddling with MFD_CORE to do that work,
>> why not remove the dependency and let DT do that for DT only drivers?
>
> For the reasons I've outlined repeatedly.
>
>>> Putting everything in DT means more work for people integrating the
>>> device and means that we have to have a full and complete understanding
>>> of the device at the time we write the DT, including decions about how
>>> we split the functionality of the device between subsystems.
>
>> We are not adding anything extra to the DT node, we just use the "compatible"
>> string to identify and match the node vs. "regulator-name", or the nodes name,
>> or whatever else has been used. The node is then just filled with the standard
>> optional properties just like every other driver's node.
>
> No, you are missing the point. The point is that only regulators
> explicitly listed in the DT will be instantiated.
>
Same questions as above. ^^^
>> Newer than a lot, I chose to base my driver off of that not just because
>> it is a similar TI part, but because it was the cleanest, simplest looking
>> one IMHO. The helpers would require more code (you need to know how many
>> regulators you have and call the helpers in a loop).
>
> You're talking about a trivial loop that takes perhaps a couple of lines
> to open and close the for loop and another line to declare an iterator
> variable.
>
Adding any extra code and complexity to use a helper that does something
that already works with less doesn't make much sense to me, but if that's
the API you want I'll use it.
> Look, please stop arguing about this. There appears to be nothing
> special about this device that makes it different to other devices.
>
I'm sorry if I sounded overly argumentative about this, I'm just trying to make
points in favor of me not having to re-write my driver.
The new framework helpers do not help my driver as it does things differently.
You signed off on this different way of doing things just last year with the
TPS65218.
If you no longer want it done this way then I'll go and change my driver.
>> I have another PMIC I'm about to push a driver for when this gets figured out
>> that does the same thing, and it's more important I think to do it this way for
>> this new part. Some of the new regulators are designed without a dedicated
>> SOC or board to power in mind, so they will have a whole bunch for different
>> regulator types on one chip and it will be up to the designer to pick which ones
>> to turn on and use. With this DT approach you can just list the ones you want,
>> and we may even be able to split different types into different modules, then
>> we can use the same regulator driver in different spins of the PMIC with more
>> or less of that type of regulator, we just add that same node under a different
>> parent PMIC driver.
>
> This sounds exactly the same as the majority of PMIC drivers, there is
> nothing remarkable here.
>
Nothing meant to be remarkable, I was pointing out uses.
>> I could use the helper with this style and save a couple lines of code if we
>> could make regulator_of_get_init_data to also match on "compatible", it
>> currently only matches on "regulator-compatible" or the node name. I could make
>> this addition and send the patch if you would like to see what I have in mind.
>
> No, this would be broken - devices are instantiated via the driver
> model.
>
OK
next prev parent reply other threads:[~2015-09-30 23:32 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-24 14:52 [PATCH v3 0/5] mfd: tps65912: Driver rewrite with DT support Andrew F. Davis
2015-09-24 14:52 ` Andrew F. Davis
2015-09-24 14:52 ` [PATCH v3 1/5] Documentation: tps65912: Add DT bindings for the TPS65912 PMIC Andrew F. Davis
2015-09-24 14:52 ` Andrew F. Davis
2015-10-02 11:12 ` Linus Walleij
2015-09-24 14:52 ` [PATCH v3 2/5] mfd: tps65912: Remove old driver in preparation for new driver Andrew F. Davis
2015-09-24 14:52 ` Andrew F. Davis
[not found] ` <1443106374-4126-3-git-send-email-afd-l0cyMroinI0@public.gmane.org>
2015-09-25 16:52 ` Lee Jones
2015-09-25 16:52 ` Lee Jones
2015-10-02 12:16 ` Linus Walleij
2015-09-24 14:52 ` [PATCH v3 3/5] mfd: tps65912: Add driver for the TPS65912 PMIC Andrew F. Davis
2015-09-24 14:52 ` Andrew F. Davis
[not found] ` <1443106374-4126-4-git-send-email-afd-l0cyMroinI0@public.gmane.org>
2015-09-25 16:50 ` Lee Jones
2015-09-25 16:50 ` Lee Jones
2015-09-25 19:13 ` Andrew F. Davis
2015-09-25 19:13 ` Andrew F. Davis
[not found] ` <56059CDA.4020004-l0cyMroinI0@public.gmane.org>
2015-09-25 21:24 ` Lee Jones
2015-09-25 21:24 ` Lee Jones
2015-09-28 15:43 ` Andrew F. Davis
2015-09-28 15:43 ` Andrew F. Davis
2015-09-29 7:19 ` Lee Jones
2015-09-29 15:50 ` Andrew F. Davis
2015-09-29 15:50 ` Andrew F. Davis
2015-09-28 16:01 ` Grygorii Strashko
2015-09-28 16:01 ` Grygorii Strashko
2015-09-29 18:16 ` Andrew F. Davis
2015-09-29 18:16 ` Andrew F. Davis
2015-09-24 14:52 ` [PATCH v3 4/5] regulators: tps65912: Add regulator " Andrew F. Davis
2015-09-24 14:52 ` Andrew F. Davis
[not found] ` <1443106374-4126-5-git-send-email-afd-l0cyMroinI0@public.gmane.org>
2015-09-25 18:05 ` Mark Brown
2015-09-25 18:05 ` Mark Brown
2015-09-25 20:10 ` Andrew F. Davis
2015-09-25 20:10 ` Andrew F. Davis
2015-09-29 15:13 ` Mark Brown
2015-09-29 18:08 ` Andrew F. Davis
2015-09-29 18:08 ` Andrew F. Davis
2015-09-29 18:38 ` Mark Brown
2015-09-29 18:58 ` Andrew F. Davis
2015-09-29 18:58 ` Andrew F. Davis
2015-09-30 17:28 ` Mark Brown
2015-09-30 20:29 ` Andrew F. Davis
2015-09-30 20:29 ` Andrew F. Davis
2015-09-30 22:20 ` Mark Brown
2015-09-30 23:32 ` Andrew F. Davis [this message]
2015-09-30 23:32 ` Andrew F. Davis
2015-10-01 10:53 ` Mark Brown
2015-10-01 15:33 ` Grygorii Strashko
2015-10-01 15:33 ` Grygorii Strashko
2015-10-01 16:08 ` Andrew F. Davis
2015-10-01 16:08 ` Andrew F. Davis
2015-10-01 16:25 ` Mark Brown
2015-09-24 14:52 ` [PATCH v3 5/5] gpio: tps65912: Add GPIO " Andrew F. Davis
2015-09-24 14:52 ` Andrew F. Davis
2015-09-28 2:54 ` Alexandre Courbot
[not found] ` <CAAVeFuKu8R5GCQo3NySCOVLUew4_1qpYydHPAz9tfNorj27-NA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-28 15:52 ` Andrew F. Davis
2015-09-28 15:52 ` Andrew F. Davis
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=560C70FE.6000909@ti.com \
--to=afd@ti.com \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=gnurou@gmail.com \
--cc=ijc+devicetree@hellion.org.uk \
--cc=lee.jones@linaro.org \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=robh+dt@kernel.org \
--cc=sameo@linux.intel.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.