From: Vitor Soares <ivitro@gmail.com>
To: Manivannan Sadhasivam <mani@kernel.org>
Cc: "Vignesh Raghavendra" <vigneshr@ti.com>,
"Siddharth Vadapalli" <s-vadapalli@ti.com>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Krzysztof Wilczyński" <kwilczynski@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Vitor Soares" <vitor.soares@toradex.com>,
linux-omap@vger.kernel.org, linux-pci@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 2/2] PCI: j721e: Add support for optional regulator supplies
Date: Mon, 27 Oct 2025 20:24:12 +0000 [thread overview]
Message-ID: <91e8f4346a677a2ea46a210d7422adb99e70b3be.camel@gmail.com> (raw)
In-Reply-To: <p3l2p2raecqqkpdjswiddkthpxzvhm3rl4cw56y2epgcxfiwbb@gsieef3yqvpk>
Hello Mani,
Thank you for the feedback.
On Tue, 2025-10-21 at 07:36 +0530, Manivannan Sadhasivam wrote:
> On Tue, Oct 14, 2025 at 12:25:49PM +0100, Vitor Soares wrote:
> > From: Vitor Soares <vitor.soares@toradex.com>
> >
> > Some boards require external regulators to power PCIe endpoints.
> > Add support for optional 1.5V, 3.3V, and 12V supplies, which may be
> > defined in the device tree as vpcie1v5-supply, vpcie3v3-supply, and
> > vpcie12v-supply.
> >
> > Use devm_regulator_get_enable_optional() to obtain and enable each
> > supply, so it will be automatically disabled when the driver is
> > removed.
> >
> > Signed-off-by: Vitor Soares <vitor.soares@toradex.com>
> > ---
> > drivers/pci/controller/cadence/pci-j721e.c | 13 +++++++++++++
> > 1 file changed, 13 insertions(+)
> >
> > diff --git a/drivers/pci/controller/cadence/pci-j721e.c
> > b/drivers/pci/controller/cadence/pci-j721e.c
> > index 5bc5ab20aa6d..f29ce2aef04e 100644
> > --- a/drivers/pci/controller/cadence/pci-j721e.c
> > +++ b/drivers/pci/controller/cadence/pci-j721e.c
> > @@ -21,6 +21,7 @@
> > #include <linux/platform_device.h>
> > #include <linux/pm_runtime.h>
> > #include <linux/regmap.h>
> > +#include <linux/regulator/consumer.h>
> >
> > #include "../../pci.h"
> > #include "pcie-cadence.h"
> > @@ -467,6 +468,10 @@ static const struct of_device_id of_j721e_pcie_match[]
> > = {
> > };
> > MODULE_DEVICE_TABLE(of, of_j721e_pcie_match);
> >
> > +static const char * const j721e_pcie_supplies[] = {
> > + "vpcie12v", "vpcie3v3", "vpcie1v5"
> > +};
>
> Please don't hardcode the supplies in driver. The DT binding should make sure
> the relevant supplies are passed (including the optional ones). Just use
> of_regulator_bulk_get_all() to acquire all the passed supplies.
>
> - Mani
>
I checked the bulk regulator APIs as suggested and of_regulator_bulk_get_all()
does handle optional supplies correctly, however it is not a managed function
and doesn't enable the regulators automatically.
To use of_regulator_bulk_get_all(), I would need to:
- Manually enable regulators with regulator_bulk_enable()
- Add cleanup/disable logic in remove path
- Handle error cleanup path manually
This would actually make the code more complex and error-prone compared to the
current approach using devm_regulator_get_enable_optional(), which provides
managed cleanup and automatic enable for optional supplies.
I also checked devm_regulator_bulk_get_enable(), it treats all supplies as
required and needs the supplies name as well.
Unless there is a devm_regulator_bulk_get_optional_enable() API I'm not aware
of, the current per-supply approach is the standard kernel pattern for this use
case. Would you still prefer the bulk approach despite these limitations?
Best regards,
Vitor Soares
next prev parent reply other threads:[~2025-10-27 20:24 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-14 11:25 [PATCH v1 0/2] PCI: j721e: Add voltage regulator support Vitor Soares
2025-10-14 11:25 ` [PATCH v1 1/2] dt-bindings: PCI: ti,j721e-pci-host: Add optional regulator supplies Vitor Soares
2025-10-20 11:14 ` Krzysztof Kozlowski
2025-10-27 23:22 ` Vitor Soares
2025-10-28 5:41 ` Manivannan Sadhasivam
2025-10-28 23:35 ` Vitor Soares
2025-10-14 11:25 ` [PATCH v1 2/2] PCI: j721e: Add support for " Vitor Soares
2025-10-21 2:06 ` Manivannan Sadhasivam
2025-10-27 20:24 ` Vitor Soares [this message]
2025-10-28 5:46 ` Manivannan Sadhasivam
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=91e8f4346a677a2ea46a210d7422adb99e70b3be.camel@gmail.com \
--to=ivitro@gmail.com \
--cc=bhelgaas@google.com \
--cc=kwilczynski@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=mani@kernel.org \
--cc=robh@kernel.org \
--cc=s-vadapalli@ti.com \
--cc=vigneshr@ti.com \
--cc=vitor.soares@toradex.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 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).