* [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