* [PATCH 0/3] Fix compilation issue on regulator_common file
@ 2025-12-10 21:24 Julien Stephan
2025-12-10 21:24 ` [PATCH 1/3] power: regulator: common: remove unnecessary debug trace Julien Stephan
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Julien Stephan @ 2025-12-10 21:24 UTC (permalink / raw)
To: u-boot
Cc: Jaehoon Chung, Peng Fan, Tom Rini, Tanmay Kathpalia, Ye Li,
Dragan Simic, Jonas Karlman, David Lechner,
GSS_MTK_Uboot_upstream, Julien Stephan
Hello,
If CONFIG_DM_GPIO is not enabled, compilation of
drivers/power/regulator/regulator_common.c fails with the following
errors:
aarch64-none-linux-gnu-ld: drivers/power/regulator/regulator_common.o: in function `regulator_common_of_to_plat':
<...>/u-boot/drivers/power/regulator/regulator_common.c:30: undefined reference to `gpio_request_by_name'
aarch64-none-linux-gnu-ld: drivers/power/regulator/regulator_common.o: in function `regulator_common_get_enable':
<...>/u-boot/drivers/power/regulator/regulator_common.c:57: undefined reference to `dm_gpio_get_value'
aarch64-none-linux-gnu-ld: drivers/power/regulator/regulator_common.o: in function `regulator_common_set_enable':
<...>/u-boot/drivers/power/regulator/regulator_common.c:92: undefined reference to `dm_gpio_set_value'
make: *** [Makefile:2029: u-boot] Error 139
Since the enable gpio is optional we can conditionally skip these calls.
While at it, use dm_gpio_is_valid() helper function in
regulator_common_get_enable, and remove a debug message that checkpatch
--strict complains about:
WARNING: Unnecessary ftrace-like logging - prefer using ftrace
The 2 fixes are done before the compilation issue fix in order to easily
cherry-pick them if needed
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
Julien Stephan (3):
power: regulator: common: remove unnecessary debug trace
power: regulator: common: use dm_gpio_is_valid helper
power: regulator: common: fix compilation issue
drivers/power/regulator/regulator_common.c | 89 +++++++++++++++---------------
1 file changed, 45 insertions(+), 44 deletions(-)
---
base-commit: c5e6d2ab7eba68cbfb600cdc131c0c375ced2ec9
change-id: 20251209-power-regulator-fix-compilation-5232b0365c7b
Best regards,
--
Julien Stephan <jstephan@baylibre.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/3] power: regulator: common: remove unnecessary debug trace
2025-12-10 21:24 [PATCH 0/3] Fix compilation issue on regulator_common file Julien Stephan
@ 2025-12-10 21:24 ` Julien Stephan
2025-12-11 8:27 ` Peng Fan
2025-12-10 21:24 ` [PATCH 2/3] power: regulator: common: use dm_gpio_is_valid helper Julien Stephan
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Julien Stephan @ 2025-12-10 21:24 UTC (permalink / raw)
To: u-boot
Cc: Jaehoon Chung, Peng Fan, Tom Rini, Tanmay Kathpalia, Ye Li,
Dragan Simic, Jonas Karlman, David Lechner,
GSS_MTK_Uboot_upstream, Julien Stephan
Drop the ftrace like debug() that checkpatch --strict complains about:
WARNING: Unnecessary ftrace-like logging - prefer using ftrace
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
drivers/power/regulator/regulator_common.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/power/regulator/regulator_common.c b/drivers/power/regulator/regulator_common.c
index 685d8735fa5c9a6f98cb6154cd13afcabaeab1ac..ce3d80670de045dde7e263c5301bccd744abd2f5 100644
--- a/drivers/power/regulator/regulator_common.c
+++ b/drivers/power/regulator/regulator_common.c
@@ -98,7 +98,6 @@ int regulator_common_set_enable(const struct udevice *dev,
if (enable && plat->startup_delay_us)
udelay(plat->startup_delay_us);
- debug("%s: done\n", __func__);
if (!enable && plat->off_on_delay_us)
udelay(plat->off_on_delay_us);
--
2.50.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] power: regulator: common: use dm_gpio_is_valid helper
2025-12-10 21:24 [PATCH 0/3] Fix compilation issue on regulator_common file Julien Stephan
2025-12-10 21:24 ` [PATCH 1/3] power: regulator: common: remove unnecessary debug trace Julien Stephan
@ 2025-12-10 21:24 ` Julien Stephan
2025-12-11 8:29 ` Peng Fan
2025-12-10 21:24 ` [PATCH 3/3] power: regulator: common: fix compilation issue Julien Stephan
2025-12-10 21:38 ` [PATCH 0/3] Fix compilation issue on regulator_common file Tom Rini
3 siblings, 1 reply; 9+ messages in thread
From: Julien Stephan @ 2025-12-10 21:24 UTC (permalink / raw)
To: u-boot
Cc: Jaehoon Chung, Peng Fan, Tom Rini, Tanmay Kathpalia, Ye Li,
Dragan Simic, Jonas Karlman, David Lechner,
GSS_MTK_Uboot_upstream, Julien Stephan
Use dm_gpio_is_valid() helper function instead of manually checking the
gpio.
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
drivers/power/regulator/regulator_common.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/power/regulator/regulator_common.c b/drivers/power/regulator/regulator_common.c
index ce3d80670de045dde7e263c5301bccd744abd2f5..cf98998579aa8a3cb7f09dccd2124207a58d8b00 100644
--- a/drivers/power/regulator/regulator_common.c
+++ b/drivers/power/regulator/regulator_common.c
@@ -51,7 +51,7 @@ int regulator_common_get_enable(const struct udevice *dev,
struct regulator_common_plat *plat)
{
/* Enable GPIO is optional */
- if (!plat->gpio.dev)
+ if (!dm_gpio_is_valid(&plat->gpio))
return true;
return dm_gpio_get_value(&plat->gpio);
--
2.50.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] power: regulator: common: fix compilation issue
2025-12-10 21:24 [PATCH 0/3] Fix compilation issue on regulator_common file Julien Stephan
2025-12-10 21:24 ` [PATCH 1/3] power: regulator: common: remove unnecessary debug trace Julien Stephan
2025-12-10 21:24 ` [PATCH 2/3] power: regulator: common: use dm_gpio_is_valid helper Julien Stephan
@ 2025-12-10 21:24 ` Julien Stephan
2025-12-11 8:33 ` Peng Fan
2025-12-10 21:38 ` [PATCH 0/3] Fix compilation issue on regulator_common file Tom Rini
3 siblings, 1 reply; 9+ messages in thread
From: Julien Stephan @ 2025-12-10 21:24 UTC (permalink / raw)
To: u-boot
Cc: Jaehoon Chung, Peng Fan, Tom Rini, Tanmay Kathpalia, Ye Li,
Dragan Simic, Jonas Karlman, David Lechner,
GSS_MTK_Uboot_upstream, Julien Stephan
If CONFIG_DM_GPIO is not enabled, compilation fails with the following
errors:
aarch64-none-linux-gnu-ld: drivers/power/regulator/regulator_common.o: in function `regulator_common_of_to_plat':
<...>/u-boot/drivers/power/regulator/regulator_common.c:30: undefined reference to `gpio_request_by_name'
aarch64-none-linux-gnu-ld: drivers/power/regulator/regulator_common.o: in function `regulator_common_get_enable':
<...>/u-boot/drivers/power/regulator/regulator_common.c:57: undefined reference to `dm_gpio_get_value'
aarch64-none-linux-gnu-ld: drivers/power/regulator/regulator_common.o: in function `regulator_common_set_enable':
<...>/u-boot/drivers/power/regulator/regulator_common.c:92: undefined reference to `dm_gpio_set_value'
make: *** [Makefile:2029: u-boot] Error 139
Since the enable gpio is optional we can conditionally skip these calls.
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
drivers/power/regulator/regulator_common.c | 88 +++++++++++++++---------------
1 file changed, 45 insertions(+), 43 deletions(-)
diff --git a/drivers/power/regulator/regulator_common.c b/drivers/power/regulator/regulator_common.c
index cf98998579aa8a3cb7f09dccd2124207a58d8b00..fcf19253e048995fdcd952a48a6976cf86991ca8 100644
--- a/drivers/power/regulator/regulator_common.c
+++ b/drivers/power/regulator/regulator_common.c
@@ -27,12 +27,14 @@ int regulator_common_of_to_plat(struct udevice *dev,
/* Get optional enable GPIO desc */
gpio = &plat->gpio;
- ret = gpio_request_by_name(dev, enable_gpio_name, 0, gpio, flags);
- if (ret) {
- debug("Regulator '%s' optional enable GPIO - not found! Error: %d\n",
- dev->name, ret);
- if (ret != -ENOENT)
- return ret;
+ if (IS_ENABLED(CONFIG_DM_GPIO)) {
+ ret = gpio_request_by_name(dev, enable_gpio_name, 0, gpio, flags);
+ if (ret) {
+ debug("Regulator '%s' optional enable GPIO - not found! Error: %d\n",
+ dev->name, ret);
+ if (ret != -ENOENT)
+ return ret;
+ }
}
/* Get optional ramp up delay */
@@ -51,10 +53,10 @@ int regulator_common_get_enable(const struct udevice *dev,
struct regulator_common_plat *plat)
{
/* Enable GPIO is optional */
- if (!dm_gpio_is_valid(&plat->gpio))
- return true;
+ if (IS_ENABLED(CONFIG_DM_GPIO) && dm_gpio_is_valid(&plat->gpio))
+ return dm_gpio_get_value(&plat->gpio);
- return dm_gpio_get_value(&plat->gpio);
+ return true;
}
int regulator_common_set_enable(const struct udevice *dev,
@@ -65,47 +67,47 @@ int regulator_common_set_enable(const struct udevice *dev,
debug("%s: dev='%s', enable=%d, delay=%d, has_gpio=%d\n", __func__,
dev->name, enable, plat->startup_delay_us,
dm_gpio_is_valid(&plat->gpio));
+
/* Enable GPIO is optional */
- if (!dm_gpio_is_valid(&plat->gpio)) {
- if (!enable)
- return -ENOSYS;
- return 0;
- }
+ if (IS_ENABLED(CONFIG_DM_GPIO) && dm_gpio_is_valid(&plat->gpio)) {
+ /* If previously enabled, increase count */
+ if (enable && plat->enable_count > 0) {
+ plat->enable_count++;
+ return -EALREADY;
+ }
- /* If previously enabled, increase count */
- if (enable && plat->enable_count > 0) {
- plat->enable_count++;
- return -EALREADY;
- }
+ if (!enable) {
+ if (plat->enable_count > 1) {
+ /* If enabled multiple times, decrease count */
+ plat->enable_count--;
+ return -EBUSY;
+ } else if (!plat->enable_count) {
+ /* If already disabled, do nothing */
+ return -EALREADY;
+ }
+ }
- if (!enable) {
- if (plat->enable_count > 1) {
- /* If enabled multiple times, decrease count */
- plat->enable_count--;
- return -EBUSY;
- } else if (!plat->enable_count) {
- /* If already disabled, do nothing */
- return -EALREADY;
+ ret = dm_gpio_set_value(&plat->gpio, enable);
+ if (ret) {
+ pr_err("Can't set regulator : %s gpio to: %d\n", dev->name,
+ enable);
+ return ret;
}
- }
- ret = dm_gpio_set_value(&plat->gpio, enable);
- if (ret) {
- pr_err("Can't set regulator : %s gpio to: %d\n", dev->name,
- enable);
- return ret;
- }
+ if (enable && plat->startup_delay_us)
+ udelay(plat->startup_delay_us);
- if (enable && plat->startup_delay_us)
- udelay(plat->startup_delay_us);
+ if (!enable && plat->off_on_delay_us)
+ udelay(plat->off_on_delay_us);
- if (!enable && plat->off_on_delay_us)
- udelay(plat->off_on_delay_us);
+ if (enable)
+ plat->enable_count++;
+ else
+ plat->enable_count--;
- if (enable)
- plat->enable_count++;
- else
- plat->enable_count--;
+ } else {
+ ret = enable ? 0 : -ENOSYS;
+ }
- return 0;
+ return ret;
}
--
2.50.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 0/3] Fix compilation issue on regulator_common file
2025-12-10 21:24 [PATCH 0/3] Fix compilation issue on regulator_common file Julien Stephan
` (2 preceding siblings ...)
2025-12-10 21:24 ` [PATCH 3/3] power: regulator: common: fix compilation issue Julien Stephan
@ 2025-12-10 21:38 ` Tom Rini
2025-12-11 8:39 ` Peng Fan
3 siblings, 1 reply; 9+ messages in thread
From: Tom Rini @ 2025-12-10 21:38 UTC (permalink / raw)
To: Julien Stephan
Cc: u-boot, Jaehoon Chung, Peng Fan, Tanmay Kathpalia, Ye Li,
Dragan Simic, Jonas Karlman, David Lechner,
GSS_MTK_Uboot_upstream
[-- Attachment #1: Type: text/plain, Size: 451 bytes --]
On Wed, Dec 10, 2025 at 10:24:21PM +0100, Julien Stephan wrote:
> Hello,
>
> If CONFIG_DM_GPIO is not enabled, compilation of
> drivers/power/regulator/regulator_common.c fails with the following
> errors:
How did you get this condition exactly? I'm inclined to say DM_REGULATOR
&& !DM_GPIO shouldn't be allowed today, and I see what looks like a
Kconfig bug where SPL_DM_REGULATOR depends on SPL_GPIO and not
SPL_DM_GPIO.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] power: regulator: common: remove unnecessary debug trace
2025-12-10 21:24 ` [PATCH 1/3] power: regulator: common: remove unnecessary debug trace Julien Stephan
@ 2025-12-11 8:27 ` Peng Fan
0 siblings, 0 replies; 9+ messages in thread
From: Peng Fan @ 2025-12-11 8:27 UTC (permalink / raw)
To: Julien Stephan
Cc: u-boot, Jaehoon Chung, Peng Fan, Tom Rini, Tanmay Kathpalia,
Ye Li, Dragan Simic, Jonas Karlman, David Lechner,
GSS_MTK_Uboot_upstream
On Wed, Dec 10, 2025 at 10:24:22PM +0100, Julien Stephan wrote:
>Drop the ftrace like debug() that checkpatch --strict complains about:
>
> WARNING: Unnecessary ftrace-like logging - prefer using ftrace
>
>Signed-off-by: Julien Stephan <jstephan@baylibre.com>
>---
Reviewed-by: Peng Fan <peng.fan@nxp.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] power: regulator: common: use dm_gpio_is_valid helper
2025-12-10 21:24 ` [PATCH 2/3] power: regulator: common: use dm_gpio_is_valid helper Julien Stephan
@ 2025-12-11 8:29 ` Peng Fan
0 siblings, 0 replies; 9+ messages in thread
From: Peng Fan @ 2025-12-11 8:29 UTC (permalink / raw)
To: Julien Stephan
Cc: u-boot, Jaehoon Chung, Peng Fan, Tom Rini, Tanmay Kathpalia,
Ye Li, Dragan Simic, Jonas Karlman, David Lechner,
GSS_MTK_Uboot_upstream
On Wed, Dec 10, 2025 at 10:24:23PM +0100, Julien Stephan wrote:
>Use dm_gpio_is_valid() helper function instead of manually checking the
>gpio.
>
>Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] power: regulator: common: fix compilation issue
2025-12-10 21:24 ` [PATCH 3/3] power: regulator: common: fix compilation issue Julien Stephan
@ 2025-12-11 8:33 ` Peng Fan
0 siblings, 0 replies; 9+ messages in thread
From: Peng Fan @ 2025-12-11 8:33 UTC (permalink / raw)
To: Julien Stephan
Cc: u-boot, Jaehoon Chung, Peng Fan, Tom Rini, Tanmay Kathpalia,
Ye Li, Dragan Simic, Jonas Karlman, David Lechner,
GSS_MTK_Uboot_upstream
On Wed, Dec 10, 2025 at 10:24:24PM +0100, Julien Stephan wrote:
>If CONFIG_DM_GPIO is not enabled, compilation fails with the following
>errors:
>
>aarch64-none-linux-gnu-ld: drivers/power/regulator/regulator_common.o: in function `regulator_common_of_to_plat':
><...>/u-boot/drivers/power/regulator/regulator_common.c:30: undefined reference to `gpio_request_by_name'
>aarch64-none-linux-gnu-ld: drivers/power/regulator/regulator_common.o: in function `regulator_common_get_enable':
><...>/u-boot/drivers/power/regulator/regulator_common.c:57: undefined reference to `dm_gpio_get_value'
>aarch64-none-linux-gnu-ld: drivers/power/regulator/regulator_common.o: in function `regulator_common_set_enable':
><...>/u-boot/drivers/power/regulator/regulator_common.c:92: undefined reference to `dm_gpio_set_value'
>make: *** [Makefile:2029: u-boot] Error 139
>
>Since the enable gpio is optional we can conditionally skip these calls.
>
>Signed-off-by: Julien Stephan <jstephan@baylibre.com>
>---
> drivers/power/regulator/regulator_common.c | 88 +++++++++++++++---------------
> 1 file changed, 45 insertions(+), 43 deletions(-)
>
>diff --git a/drivers/power/regulator/regulator_common.c b/drivers/power/regulator/regulator_common.c
>index cf98998579aa8a3cb7f09dccd2124207a58d8b00..fcf19253e048995fdcd952a48a6976cf86991ca8 100644
>--- a/drivers/power/regulator/regulator_common.c
>+++ b/drivers/power/regulator/regulator_common.c
>@@ -27,12 +27,14 @@ int regulator_common_of_to_plat(struct udevice *dev,
>
> /* Get optional enable GPIO desc */
> gpio = &plat->gpio;
>- ret = gpio_request_by_name(dev, enable_gpio_name, 0, gpio, flags);
>- if (ret) {
>- debug("Regulator '%s' optional enable GPIO - not found! Error: %d\n",
>- dev->name, ret);
>- if (ret != -ENOENT)
>- return ret;
>+ if (IS_ENABLED(CONFIG_DM_GPIO)) {
This should be CONFIG_IS_ENABLED(DM_GPIO)
>- if (!dm_gpio_is_valid(&plat->gpio))
>- return true;
>+ if (IS_ENABLED(CONFIG_DM_GPIO) && dm_gpio_is_valid(&plat->gpio))
Ditto.
>+ return dm_gpio_get_value(&plat->gpio);
>
>- return dm_gpio_get_value(&plat->gpio);
>+ return true;
> }
>
> int regulator_common_set_enable(const struct udevice *dev,
>@@ -65,47 +67,47 @@ int regulator_common_set_enable(const struct udevice *dev,
> debug("%s: dev='%s', enable=%d, delay=%d, has_gpio=%d\n", __func__,
> dev->name, enable, plat->startup_delay_us,
> dm_gpio_is_valid(&plat->gpio));
>+
> /* Enable GPIO is optional */
>- if (!dm_gpio_is_valid(&plat->gpio)) {
>- if (!enable)
>- return -ENOSYS;
>- return 0;
>- }
>+ if (IS_ENABLED(CONFIG_DM_GPIO) && dm_gpio_is_valid(&plat->gpio)) {
Ditto.
Regards
Peng
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/3] Fix compilation issue on regulator_common file
2025-12-10 21:38 ` [PATCH 0/3] Fix compilation issue on regulator_common file Tom Rini
@ 2025-12-11 8:39 ` Peng Fan
0 siblings, 0 replies; 9+ messages in thread
From: Peng Fan @ 2025-12-11 8:39 UTC (permalink / raw)
To: Tom Rini
Cc: Julien Stephan, u-boot, Jaehoon Chung, Peng Fan, Tanmay Kathpalia,
Ye Li, Dragan Simic, Jonas Karlman, David Lechner,
GSS_MTK_Uboot_upstream
Hi Tom,
On Wed, Dec 10, 2025 at 03:38:26PM -0600, Tom Rini wrote:
>On Wed, Dec 10, 2025 at 10:24:21PM +0100, Julien Stephan wrote:
>
>> Hello,
>>
>> If CONFIG_DM_GPIO is not enabled, compilation of
>> drivers/power/regulator/regulator_common.c fails with the following
>> errors:
>
>How did you get this condition exactly? I'm inclined to say DM_REGULATOR
>&& !DM_GPIO shouldn't be allowed today, and I see what looks like a
DM_GPIO is not a must for DM_REGULATOR. Only DM_REGULATOR_GPIO needs DM_GPIO.
>Kconfig bug where SPL_DM_REGULATOR depends on SPL_GPIO and not
>SPL_DM_GPIO.
I think you are saying SPL_DM_REGULATOR_GPIO, not SPL_DM_REGULATOR.
Regards
Peng
>
>--
>Tom
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-12-11 10:08 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-10 21:24 [PATCH 0/3] Fix compilation issue on regulator_common file Julien Stephan
2025-12-10 21:24 ` [PATCH 1/3] power: regulator: common: remove unnecessary debug trace Julien Stephan
2025-12-11 8:27 ` Peng Fan
2025-12-10 21:24 ` [PATCH 2/3] power: regulator: common: use dm_gpio_is_valid helper Julien Stephan
2025-12-11 8:29 ` Peng Fan
2025-12-10 21:24 ` [PATCH 3/3] power: regulator: common: fix compilation issue Julien Stephan
2025-12-11 8:33 ` Peng Fan
2025-12-10 21:38 ` [PATCH 0/3] Fix compilation issue on regulator_common file Tom Rini
2025-12-11 8:39 ` Peng Fan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox