* [PATCH] power: regulator: scmi: Move regulator subnode hack to scmi_regulator
@ 2025-03-22 1:44 Marek Vasut
2025-04-03 10:56 ` 回复: [EXT] " Alice Guo (OSS)
2025-04-23 16:05 ` Peng Fan (OSS)
0 siblings, 2 replies; 7+ messages in thread
From: Marek Vasut @ 2025-03-22 1:44 UTC (permalink / raw)
To: u-boot; +Cc: Marek Vasut, Alice Guo, Ilias Apalodimas, Jaehoon Chung, Tom Rini
The current code attempts to bind scmi_voltage_domain to regulator subnode
of the SCMI protocol node, so scmi_voltage_domain can then bind regulators
directly to subnodes of its node. This kind of behavior should not be in
core code, move it into scmi_voltage_domain driver code. Let the driver
descend into regulator node and bind regulators to its subnodes.
Fixes: 1f213ee4dbf2 ("firmware: scmi: voltage regulator")
Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: Alice Guo <alice.guo@nxp.com>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: u-boot@lists.denx.de
---
drivers/firmware/scmi/scmi_agent-uclass.c | 8 +-------
drivers/power/regulator/scmi_regulator.c | 6 ++++++
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/firmware/scmi/scmi_agent-uclass.c b/drivers/firmware/scmi/scmi_agent-uclass.c
index 8c907c3b032..e6e43ae936a 100644
--- a/drivers/firmware/scmi/scmi_agent-uclass.c
+++ b/drivers/firmware/scmi/scmi_agent-uclass.c
@@ -427,14 +427,8 @@ static int scmi_bind_protocols(struct udevice *dev)
break;
case SCMI_PROTOCOL_ID_VOLTAGE_DOMAIN:
if (IS_ENABLED(CONFIG_DM_REGULATOR_SCMI) &&
- scmi_protocol_is_supported(dev, protocol_id)) {
- node = ofnode_find_subnode(node, "regulators");
- if (!ofnode_valid(node)) {
- dev_err(dev, "no regulators node\n");
- return -ENXIO;
- }
+ scmi_protocol_is_supported(dev, protocol_id))
drv = DM_DRIVER_GET(scmi_voltage_domain);
- }
break;
default:
break;
diff --git a/drivers/power/regulator/scmi_regulator.c b/drivers/power/regulator/scmi_regulator.c
index 99f6506f162..2550b27246f 100644
--- a/drivers/power/regulator/scmi_regulator.c
+++ b/drivers/power/regulator/scmi_regulator.c
@@ -178,6 +178,12 @@ static int scmi_regulator_bind(struct udevice *dev)
ofnode node;
int ret;
+ node = ofnode_find_subnode(node, "regulators");
+ if (!ofnode_valid(node)) {
+ dev_err(dev, "no regulators node\n");
+ return -ENXIO;
+ }
+
drv = DM_DRIVER_GET(scmi_regulator);
ofnode_for_each_subnode(node, dev_ofnode(dev)) {
--
2.47.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* 回复: [EXT] [PATCH] power: regulator: scmi: Move regulator subnode hack to scmi_regulator
2025-03-22 1:44 [PATCH] power: regulator: scmi: Move regulator subnode hack to scmi_regulator Marek Vasut
@ 2025-04-03 10:56 ` Alice Guo (OSS)
2025-04-08 18:30 ` Marek Vasut
2025-04-23 16:05 ` Peng Fan (OSS)
1 sibling, 1 reply; 7+ messages in thread
From: Alice Guo (OSS) @ 2025-04-03 10:56 UTC (permalink / raw)
To: Marek Vasut, u-boot@lists.denx.de
Cc: Alice Guo, Ilias Apalodimas, Jaehoon Chung, Tom Rini
> -----邮件原件-----
> 发件人: Marek Vasut <marex@denx.de>
> 发送时间: 2025年3月22日 9:45
> 收件人: u-boot@lists.denx.de
> 抄送: Marek Vasut <marex@denx.de>; Alice Guo <alice.guo@nxp.com>; Ilias
> Apalodimas <ilias.apalodimas@linaro.org>; Jaehoon Chung
> <jh80.chung@samsung.com>; Tom Rini <trini@konsulko.com>
> 主题: [EXT] [PATCH] power: regulator: scmi: Move regulator subnode hack to
> scmi_regulator
>
> Caution: This is an external email. Please take care when clicking links or
> opening attachments. When in doubt, report the message using the 'Report this
> email' button
>
>
> The current code attempts to bind scmi_voltage_domain to regulator subnode
> of the SCMI protocol node, so scmi_voltage_domain can then bind regulators
> directly to subnodes of its node. This kind of behavior should not be in core code,
> move it into scmi_voltage_domain driver code. Let the driver descend into
> regulator node and bind regulators to its subnodes.
>
> Fixes: 1f213ee4dbf2 ("firmware: scmi: voltage regulator")
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---
> Cc: Alice Guo <alice.guo@nxp.com>
> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Cc: Jaehoon Chung <jh80.chung@samsung.com>
> Cc: Tom Rini <trini@konsulko.com>
> Cc: u-boot@lists.denx.de
> ---
> drivers/firmware/scmi/scmi_agent-uclass.c | 8 +-------
> drivers/power/regulator/scmi_regulator.c | 6 ++++++
> 2 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/firmware/scmi/scmi_agent-uclass.c
> b/drivers/firmware/scmi/scmi_agent-uclass.c
> index 8c907c3b032..e6e43ae936a 100644
> --- a/drivers/firmware/scmi/scmi_agent-uclass.c
> +++ b/drivers/firmware/scmi/scmi_agent-uclass.c
> @@ -427,14 +427,8 @@ static int scmi_bind_protocols(struct udevice *dev)
> break;
> case SCMI_PROTOCOL_ID_VOLTAGE_DOMAIN:
> if (IS_ENABLED(CONFIG_DM_REGULATOR_SCMI)
> &&
> - scmi_protocol_is_supported(dev, protocol_id))
> {
> - node = ofnode_find_subnode(node,
> "regulators");
> - if (!ofnode_valid(node)) {
> - dev_err(dev, "no regulators
> node\n");
> - return -ENXIO;
> - }
> + scmi_protocol_is_supported(dev,
> + protocol_id))
> drv =
> DM_DRIVER_GET(scmi_voltage_domain);
> - }
> break;
> default:
> break;
> diff --git a/drivers/power/regulator/scmi_regulator.c
> b/drivers/power/regulator/scmi_regulator.c
> index 99f6506f162..2550b27246f 100644
> --- a/drivers/power/regulator/scmi_regulator.c
> +++ b/drivers/power/regulator/scmi_regulator.c
> @@ -178,6 +178,12 @@ static int scmi_regulator_bind(struct udevice *dev)
> ofnode node;
> int ret;
>
> + node = ofnode_find_subnode(node, "regulators");
> + if (!ofnode_valid(node)) {
> + dev_err(dev, "no regulators node\n");
> + return -ENXIO;
> + }
> +
> drv = DM_DRIVER_GET(scmi_regulator);
>
> ofnode_for_each_subnode(node, dev_ofnode(dev)) {
> --
> 2.47.2
Hi Marek,
Is there a problem in your patch? Should it be changed like this:
--- a/drivers/power/regulator/scmi_regulator.c
+++ b/drivers/power/regulator/scmi_regulator.c
@@ -175,12 +175,19 @@ U_BOOT_DRIVER(scmi_regulator) = {
static int scmi_regulator_bind(struct udevice *dev)
{
struct driver *drv;
+ ofnode regul_node;
ofnode node;
int ret;
+ regul_node = ofnode_find_subnode(dev_ofnode(dev), "regulators");
+ if (!ofnode_valid(node)) {
+ dev_err(dev, "no regulators node\n");
+ return -ENXIO;
+ }
+
drv = DM_DRIVER_GET(scmi_regulator);
- ofnode_for_each_subnode(node, dev_ofnode(dev)) {
+ ofnode_for_each_subnode(node, regul_node) {
ret = device_bind(dev, drv, ofnode_get_name(node),
NULL, node, NULL);
if (ret)
Best Regards,
Alice Guo
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 回复: [EXT] [PATCH] power: regulator: scmi: Move regulator subnode hack to scmi_regulator
2025-04-03 10:56 ` 回复: [EXT] " Alice Guo (OSS)
@ 2025-04-08 18:30 ` Marek Vasut
2025-04-09 6:42 ` 回复: " Alice Guo (OSS)
0 siblings, 1 reply; 7+ messages in thread
From: Marek Vasut @ 2025-04-08 18:30 UTC (permalink / raw)
To: Alice Guo (OSS), u-boot@lists.denx.de
Cc: Alice Guo, Ilias Apalodimas, Jaehoon Chung, Tom Rini
On 4/3/25 12:56 PM, Alice Guo (OSS) wrote:
>> -----邮件原件-----
>> 发件人: Marek Vasut <marex@denx.de>
>> 发送时间: 2025年3月22日 9:45
>> 收件人: u-boot@lists.denx.de
>> 抄送: Marek Vasut <marex@denx.de>; Alice Guo <alice.guo@nxp.com>; Ilias
>> Apalodimas <ilias.apalodimas@linaro.org>; Jaehoon Chung
>> <jh80.chung@samsung.com>; Tom Rini <trini@konsulko.com>
>> 主题: [EXT] [PATCH] power: regulator: scmi: Move regulator subnode hack to
>> scmi_regulator
>>
>> Caution: This is an external email. Please take care when clicking links or
>> opening attachments. When in doubt, report the message using the 'Report this
>> email' button
>>
>>
>> The current code attempts to bind scmi_voltage_domain to regulator subnode
>> of the SCMI protocol node, so scmi_voltage_domain can then bind regulators
>> directly to subnodes of its node. This kind of behavior should not be in core code,
>> move it into scmi_voltage_domain driver code. Let the driver descend into
>> regulator node and bind regulators to its subnodes.
>>
>> Fixes: 1f213ee4dbf2 ("firmware: scmi: voltage regulator")
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> ---
>> Cc: Alice Guo <alice.guo@nxp.com>
>> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
>> Cc: Jaehoon Chung <jh80.chung@samsung.com>
>> Cc: Tom Rini <trini@konsulko.com>
>> Cc: u-boot@lists.denx.de
>> ---
>> drivers/firmware/scmi/scmi_agent-uclass.c | 8 +-------
>> drivers/power/regulator/scmi_regulator.c | 6 ++++++
>> 2 files changed, 7 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/firmware/scmi/scmi_agent-uclass.c
>> b/drivers/firmware/scmi/scmi_agent-uclass.c
>> index 8c907c3b032..e6e43ae936a 100644
>> --- a/drivers/firmware/scmi/scmi_agent-uclass.c
>> +++ b/drivers/firmware/scmi/scmi_agent-uclass.c
>> @@ -427,14 +427,8 @@ static int scmi_bind_protocols(struct udevice *dev)
>> break;
>> case SCMI_PROTOCOL_ID_VOLTAGE_DOMAIN:
>> if (IS_ENABLED(CONFIG_DM_REGULATOR_SCMI)
>> &&
>> - scmi_protocol_is_supported(dev, protocol_id))
>> {
>> - node = ofnode_find_subnode(node,
>> "regulators");
>> - if (!ofnode_valid(node)) {
>> - dev_err(dev, "no regulators
>> node\n");
>> - return -ENXIO;
>> - }
>> + scmi_protocol_is_supported(dev,
>> + protocol_id))
>> drv =
>> DM_DRIVER_GET(scmi_voltage_domain);
>> - }
>> break;
>> default:
>> break;
>> diff --git a/drivers/power/regulator/scmi_regulator.c
>> b/drivers/power/regulator/scmi_regulator.c
>> index 99f6506f162..2550b27246f 100644
>> --- a/drivers/power/regulator/scmi_regulator.c
>> +++ b/drivers/power/regulator/scmi_regulator.c
>> @@ -178,6 +178,12 @@ static int scmi_regulator_bind(struct udevice *dev)
>> ofnode node;
>> int ret;
>>
>> + node = ofnode_find_subnode(node, "regulators");
>> + if (!ofnode_valid(node)) {
>> + dev_err(dev, "no regulators node\n");
>> + return -ENXIO;
>> + }
>> +
>> drv = DM_DRIVER_GET(scmi_regulator);
>>
>> ofnode_for_each_subnode(node, dev_ofnode(dev)) {
>> --
>> 2.47.2
>
> Hi Marek,
>
> Is there a problem in your patch? Should it be changed like this:
What kind of problem ? Can you please elaborate ?
^ permalink raw reply [flat|nested] 7+ messages in thread
* 回复: 回复: [EXT] [PATCH] power: regulator: scmi: Move regulator subnode hack to scmi_regulator
2025-04-08 18:30 ` Marek Vasut
@ 2025-04-09 6:42 ` Alice Guo (OSS)
2025-04-18 2:52 ` Peng Fan
0 siblings, 1 reply; 7+ messages in thread
From: Alice Guo (OSS) @ 2025-04-09 6:42 UTC (permalink / raw)
To: Marek Vasut, Alice Guo (OSS), u-boot@lists.denx.de
Cc: Alice Guo, Ilias Apalodimas, Jaehoon Chung, Tom Rini
> -----邮件原件-----
> 发件人: Marek Vasut <marex@denx.de>
> 发送时间: 2025年4月9日 2:31
> 收件人: Alice Guo (OSS) <alice.guo@oss.nxp.com>; u-boot@lists.denx.de
> 抄送: Alice Guo <alice.guo@nxp.com>; Ilias Apalodimas
> <ilias.apalodimas@linaro.org>; Jaehoon Chung <jh80.chung@samsung.com>;
> Tom Rini <trini@konsulko.com>
> 主题: Re: 回复: [EXT] [PATCH] power: regulator: scmi: Move regulator
> subnode hack to scmi_regulator
>
> On 4/3/25 12:56 PM, Alice Guo (OSS) wrote:
> >> -----邮件原件-----
> >> 发件人: Marek Vasut <marex@denx.de>
> >> 发送时间: 2025年3月22日 9:45
> >> 收件人: u-boot@lists.denx.de
> >> 抄送: Marek Vasut <marex@denx.de>; Alice Guo <alice.guo@nxp.com>;
> Ilias
> >> Apalodimas <ilias.apalodimas@linaro.org>; Jaehoon Chung
> >> <jh80.chung@samsung.com>; Tom Rini <trini@konsulko.com>
> >> 主题: [EXT] [PATCH] power: regulator: scmi: Move regulator subnode hack
> >> to scmi_regulator
> >>
> >> Caution: This is an external email. Please take care when clicking
> >> links or opening attachments. When in doubt, report the message using
> >> the 'Report this email' button
> >>
> >>
> >> The current code attempts to bind scmi_voltage_domain to regulator
> >> subnode of the SCMI protocol node, so scmi_voltage_domain can then
> >> bind regulators directly to subnodes of its node. This kind of
> >> behavior should not be in core code, move it into scmi_voltage_domain
> >> driver code. Let the driver descend into regulator node and bind regulators to
> its subnodes.
> >>
> >> Fixes: 1f213ee4dbf2 ("firmware: scmi: voltage regulator")
> >> Signed-off-by: Marek Vasut <marex@denx.de>
> >> ---
> >> Cc: Alice Guo <alice.guo@nxp.com>
> >> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> >> Cc: Jaehoon Chung <jh80.chung@samsung.com>
> >> Cc: Tom Rini <trini@konsulko.com>
> >> Cc: u-boot@lists.denx.de
> >> ---
> >> drivers/firmware/scmi/scmi_agent-uclass.c | 8 +-------
> >> drivers/power/regulator/scmi_regulator.c | 6 ++++++
> >> 2 files changed, 7 insertions(+), 7 deletions(-)
> >>
> >> diff --git a/drivers/firmware/scmi/scmi_agent-uclass.c
> >> b/drivers/firmware/scmi/scmi_agent-uclass.c
> >> index 8c907c3b032..e6e43ae936a 100644
> >> --- a/drivers/firmware/scmi/scmi_agent-uclass.c
> >> +++ b/drivers/firmware/scmi/scmi_agent-uclass.c
> >> @@ -427,14 +427,8 @@ static int scmi_bind_protocols(struct udevice *dev)
> >> break;
> >> case SCMI_PROTOCOL_ID_VOLTAGE_DOMAIN:
> >> if
> (IS_ENABLED(CONFIG_DM_REGULATOR_SCMI)
> >> &&
> >> - scmi_protocol_is_supported(dev,
> protocol_id))
> >> {
> >> - node = ofnode_find_subnode(node,
> >> "regulators");
> >> - if (!ofnode_valid(node)) {
> >> - dev_err(dev, "no
> regulators
> >> node\n");
> >> - return -ENXIO;
> >> - }
> >> + scmi_protocol_is_supported(dev,
> >> + protocol_id))
> >> drv =
> >> DM_DRIVER_GET(scmi_voltage_domain);
> >> - }
> >> break;
> >> default:
> >> break;
> >> diff --git a/drivers/power/regulator/scmi_regulator.c
> >> b/drivers/power/regulator/scmi_regulator.c
> >> index 99f6506f162..2550b27246f 100644
> >> --- a/drivers/power/regulator/scmi_regulator.c
> >> +++ b/drivers/power/regulator/scmi_regulator.c
> >> @@ -178,6 +178,12 @@ static int scmi_regulator_bind(struct udevice *dev)
> >> ofnode node;
> >> int ret;
> >>
> >> + node = ofnode_find_subnode(node, "regulators");
> >> + if (!ofnode_valid(node)) {
> >> + dev_err(dev, "no regulators node\n");
> >> + return -ENXIO;
> >> + }
> >> +
> >> drv = DM_DRIVER_GET(scmi_regulator);
> >>
> >> ofnode_for_each_subnode(node, dev_ofnode(dev)) {
> >> --
> >> 2.47.2
> >
> > Hi Marek,
> >
> > Is there a problem in your patch? Should it be changed like this:
> What kind of problem ? Can you please elaborate ?
I think that in the scmi_regulator_bind() function, the second parameter passed into ofnode_for_each_subnode() should be the node named "regulators".
static int scmi_regulator_bind(struct udevice *dev)
{
struct driver *drv;
ofnode regul_node;
ofnode node;
int ret;
regul_node = ofnode_find_subnode(dev_ofnode(dev), "regulators");
if (!ofnode_valid(regul_node)) {
dev_err(dev, "no regulators node\n");
return -ENXIO;
}
drv = DM_DRIVER_GET(scmi_regulator);
ofnode_for_each_subnode(node, regul_node) {
ret = device_bind(dev, drv, ofnode_get_name(node),
NULL, node, NULL);
if (ret)
return ret;
}
return 0;
}
Best Regards,
Alice Guo
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 回复: 回复: [EXT] [PATCH] power: regulator: scmi: Move regulator subnode hack to scmi_regulator
2025-04-09 6:42 ` 回复: " Alice Guo (OSS)
@ 2025-04-18 2:52 ` Peng Fan
2025-04-23 3:18 ` Peng Fan
0 siblings, 1 reply; 7+ messages in thread
From: Peng Fan @ 2025-04-18 2:52 UTC (permalink / raw)
To: Alice Guo (OSS)
Cc: Marek Vasut, u-boot@lists.denx.de, Alice Guo, Ilias Apalodimas,
Jaehoon Chung, Tom Rini
On Wed, Apr 09, 2025 at 06:42:14AM +0000, Alice Guo (OSS) wrote:
>> -----邮件原件-----
>> 发件人: Marek Vasut <marex@denx.de>
>> 发送时间: 2025年4月9日 2:31
>> 收件人: Alice Guo (OSS) <alice.guo@oss.nxp.com>; u-boot@lists.denx.de
>> 抄送: Alice Guo <alice.guo@nxp.com>; Ilias Apalodimas
>> <ilias.apalodimas@linaro.org>; Jaehoon Chung <jh80.chung@samsung.com>;
>> Tom Rini <trini@konsulko.com>
>> 主题: Re: 回复: [EXT] [PATCH] power: regulator: scmi: Move regulator
>> subnode hack to scmi_regulator
>>
>> On 4/3/25 12:56 PM, Alice Guo (OSS) wrote:
>> >> -----邮件原件-----
>> >> 发件人: Marek Vasut <marex@denx.de>
>> >> 发送时间: 2025年3月22日 9:45
>> >> 收件人: u-boot@lists.denx.de
>> >> 抄送: Marek Vasut <marex@denx.de>; Alice Guo <alice.guo@nxp.com>;
>> Ilias
>> >> Apalodimas <ilias.apalodimas@linaro.org>; Jaehoon Chung
>> >> <jh80.chung@samsung.com>; Tom Rini <trini@konsulko.com>
>> >> 主题: [EXT] [PATCH] power: regulator: scmi: Move regulator subnode hack
>> >> to scmi_regulator
>> >>
>> >> Caution: This is an external email. Please take care when clicking
>> >> links or opening attachments. When in doubt, report the message using
>> >> the 'Report this email' button
>> >>
>> >>
>> >> The current code attempts to bind scmi_voltage_domain to regulator
>> >> subnode of the SCMI protocol node, so scmi_voltage_domain can then
>> >> bind regulators directly to subnodes of its node. This kind of
>> >> behavior should not be in core code, move it into scmi_voltage_domain
>> >> driver code. Let the driver descend into regulator node and bind regulators to
>> its subnodes.
>> >>
>> >> Fixes: 1f213ee4dbf2 ("firmware: scmi: voltage regulator")
>> >> Signed-off-by: Marek Vasut <marex@denx.de>
>> >> ---
>> >> Cc: Alice Guo <alice.guo@nxp.com>
>> >> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
>> >> Cc: Jaehoon Chung <jh80.chung@samsung.com>
>> >> Cc: Tom Rini <trini@konsulko.com>
>> >> Cc: u-boot@lists.denx.de
>> >> ---
>> >> drivers/firmware/scmi/scmi_agent-uclass.c | 8 +-------
>> >> drivers/power/regulator/scmi_regulator.c | 6 ++++++
>> >> 2 files changed, 7 insertions(+), 7 deletions(-)
>> >>
>> >> diff --git a/drivers/firmware/scmi/scmi_agent-uclass.c
>> >> b/drivers/firmware/scmi/scmi_agent-uclass.c
>> >> index 8c907c3b032..e6e43ae936a 100644
>> >> --- a/drivers/firmware/scmi/scmi_agent-uclass.c
>> >> +++ b/drivers/firmware/scmi/scmi_agent-uclass.c
>> >> @@ -427,14 +427,8 @@ static int scmi_bind_protocols(struct udevice *dev)
>> >> break;
>> >> case SCMI_PROTOCOL_ID_VOLTAGE_DOMAIN:
>> >> if
>> (IS_ENABLED(CONFIG_DM_REGULATOR_SCMI)
>> >> &&
>> >> - scmi_protocol_is_supported(dev,
>> protocol_id))
>> >> {
>> >> - node = ofnode_find_subnode(node,
>> >> "regulators");
>> >> - if (!ofnode_valid(node)) {
>> >> - dev_err(dev, "no
>> regulators
>> >> node\n");
>> >> - return -ENXIO;
>> >> - }
>> >> + scmi_protocol_is_supported(dev,
>> >> + protocol_id))
>> >> drv =
>> >> DM_DRIVER_GET(scmi_voltage_domain);
>> >> - }
>> >> break;
>> >> default:
>> >> break;
>> >> diff --git a/drivers/power/regulator/scmi_regulator.c
>> >> b/drivers/power/regulator/scmi_regulator.c
>> >> index 99f6506f162..2550b27246f 100644
>> >> --- a/drivers/power/regulator/scmi_regulator.c
>> >> +++ b/drivers/power/regulator/scmi_regulator.c
>> >> @@ -178,6 +178,12 @@ static int scmi_regulator_bind(struct udevice *dev)
>> >> ofnode node;
>> >> int ret;
>> >>
>> >> + node = ofnode_find_subnode(node, "regulators");
>> >> + if (!ofnode_valid(node)) {
>> >> + dev_err(dev, "no regulators node\n");
>> >> + return -ENXIO;
>> >> + }
>> >> +
>> >> drv = DM_DRIVER_GET(scmi_regulator);
>> >>
>> >> ofnode_for_each_subnode(node, dev_ofnode(dev)) {
>> >> --
>> >> 2.47.2
>> >
>> > Hi Marek,
>> >
>> > Is there a problem in your patch? Should it be changed like this:
>> What kind of problem ? Can you please elaborate ?
>
>I think that in the scmi_regulator_bind() function, the second parameter passed into ofnode_for_each_subnode() should be the node named "regulators".
>
>static int scmi_regulator_bind(struct udevice *dev)
>{
> struct driver *drv;
> ofnode regul_node;
> ofnode node;
> int ret;
>
> regul_node = ofnode_find_subnode(dev_ofnode(dev), "regulators");
Right. I could correct this when apply the patch.
Thanks,
Peng
> if (!ofnode_valid(regul_node)) {
> dev_err(dev, "no regulators node\n");
> return -ENXIO;
> }
>
> drv = DM_DRIVER_GET(scmi_regulator);
>
> ofnode_for_each_subnode(node, regul_node) {
> ret = device_bind(dev, drv, ofnode_get_name(node),
> NULL, node, NULL);
> if (ret)
> return ret;
> }
>
> return 0;
>}
>
>Best Regards,
>Alice Guo
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 回复: 回复: [EXT] [PATCH] power: regulator: scmi: Move regulator subnode hack to scmi_regulator
2025-04-18 2:52 ` Peng Fan
@ 2025-04-23 3:18 ` Peng Fan
0 siblings, 0 replies; 7+ messages in thread
From: Peng Fan @ 2025-04-23 3:18 UTC (permalink / raw)
To: Alice Guo (OSS)
Cc: Marek Vasut, u-boot@lists.denx.de, Alice Guo, Ilias Apalodimas,
Jaehoon Chung, Tom Rini
On Fri, Apr 18, 2025 at 10:52:00AM +0800, Peng Fan wrote:
>On Wed, Apr 09, 2025 at 06:42:14AM +0000, Alice Guo (OSS) wrote:
>>> -----邮件原件-----
>>> 发件人: Marek Vasut <marex@denx.de>
>>> 发送时间: 2025年4月9日 2:31
>>> 收件人: Alice Guo (OSS) <alice.guo@oss.nxp.com>; u-boot@lists.denx.de
>>> 抄送: Alice Guo <alice.guo@nxp.com>; Ilias Apalodimas
>>> <ilias.apalodimas@linaro.org>; Jaehoon Chung <jh80.chung@samsung.com>;
>>> Tom Rini <trini@konsulko.com>
>>> 主题: Re: 回复: [EXT] [PATCH] power: regulator: scmi: Move regulator
>>> subnode hack to scmi_regulator
>>>
>>> On 4/3/25 12:56 PM, Alice Guo (OSS) wrote:
>>> >> -----邮件原件-----
>>> >> 发件人: Marek Vasut <marex@denx.de>
>>> >> 发送时间: 2025年3月22日 9:45
>>> >> 收件人: u-boot@lists.denx.de
>>> >> 抄送: Marek Vasut <marex@denx.de>; Alice Guo <alice.guo@nxp.com>;
>>> Ilias
>>> >> Apalodimas <ilias.apalodimas@linaro.org>; Jaehoon Chung
>>> >> <jh80.chung@samsung.com>; Tom Rini <trini@konsulko.com>
>>> >> 主题: [EXT] [PATCH] power: regulator: scmi: Move regulator subnode hack
>>> >> to scmi_regulator
>>> >>
>>> >> Caution: This is an external email. Please take care when clicking
>>> >> links or opening attachments. When in doubt, report the message using
>>> >> the 'Report this email' button
>>> >>
>>> >>
>>> >> The current code attempts to bind scmi_voltage_domain to regulator
>>> >> subnode of the SCMI protocol node, so scmi_voltage_domain can then
>>> >> bind regulators directly to subnodes of its node. This kind of
>>> >> behavior should not be in core code, move it into scmi_voltage_domain
>>> >> driver code. Let the driver descend into regulator node and bind regulators to
>>> its subnodes.
>>> >>
>>> >> Fixes: 1f213ee4dbf2 ("firmware: scmi: voltage regulator")
>>> >> Signed-off-by: Marek Vasut <marex@denx.de>
>>> >> ---
>>> >> Cc: Alice Guo <alice.guo@nxp.com>
>>> >> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
>>> >> Cc: Jaehoon Chung <jh80.chung@samsung.com>
>>> >> Cc: Tom Rini <trini@konsulko.com>
>>> >> Cc: u-boot@lists.denx.de
>>> >> ---
>>> >> drivers/firmware/scmi/scmi_agent-uclass.c | 8 +-------
>>> >> drivers/power/regulator/scmi_regulator.c | 6 ++++++
>>> >> 2 files changed, 7 insertions(+), 7 deletions(-)
>>> >>
>>> >> diff --git a/drivers/firmware/scmi/scmi_agent-uclass.c
>>> >> b/drivers/firmware/scmi/scmi_agent-uclass.c
>>> >> index 8c907c3b032..e6e43ae936a 100644
>>> >> --- a/drivers/firmware/scmi/scmi_agent-uclass.c
>>> >> +++ b/drivers/firmware/scmi/scmi_agent-uclass.c
>>> >> @@ -427,14 +427,8 @@ static int scmi_bind_protocols(struct udevice *dev)
>>> >> break;
>>> >> case SCMI_PROTOCOL_ID_VOLTAGE_DOMAIN:
>>> >> if
>>> (IS_ENABLED(CONFIG_DM_REGULATOR_SCMI)
>>> >> &&
>>> >> - scmi_protocol_is_supported(dev,
>>> protocol_id))
>>> >> {
>>> >> - node = ofnode_find_subnode(node,
>>> >> "regulators");
>>> >> - if (!ofnode_valid(node)) {
>>> >> - dev_err(dev, "no
>>> regulators
>>> >> node\n");
>>> >> - return -ENXIO;
>>> >> - }
>>> >> + scmi_protocol_is_supported(dev,
>>> >> + protocol_id))
>>> >> drv =
>>> >> DM_DRIVER_GET(scmi_voltage_domain);
>>> >> - }
>>> >> break;
>>> >> default:
>>> >> break;
>>> >> diff --git a/drivers/power/regulator/scmi_regulator.c
>>> >> b/drivers/power/regulator/scmi_regulator.c
>>> >> index 99f6506f162..2550b27246f 100644
>>> >> --- a/drivers/power/regulator/scmi_regulator.c
>>> >> +++ b/drivers/power/regulator/scmi_regulator.c
>>> >> @@ -178,6 +178,12 @@ static int scmi_regulator_bind(struct udevice *dev)
>>> >> ofnode node;
>>> >> int ret;
>>> >>
>>> >> + node = ofnode_find_subnode(node, "regulators");
>>> >> + if (!ofnode_valid(node)) {
>>> >> + dev_err(dev, "no regulators node\n");
>>> >> + return -ENXIO;
>>> >> + }
>>> >> +
>>> >> drv = DM_DRIVER_GET(scmi_regulator);
>>> >>
>>> >> ofnode_for_each_subnode(node, dev_ofnode(dev)) {
>>> >> --
>>> >> 2.47.2
>>> >
>>> > Hi Marek,
>>> >
>>> > Is there a problem in your patch? Should it be changed like this:
>>> What kind of problem ? Can you please elaborate ?
>>
>>I think that in the scmi_regulator_bind() function, the second parameter passed into ofnode_for_each_subnode() should be the node named "regulators".
>>
>>static int scmi_regulator_bind(struct udevice *dev)
>>{
>> struct driver *drv;
>> ofnode regul_node;
>> ofnode node;
>> int ret;
>>
>> regul_node = ofnode_find_subnode(dev_ofnode(dev), "regulators");
>
>Right. I could correct this when apply the patch.
>
>Thanks,
>Peng
>
>> if (!ofnode_valid(regul_node)) {
>> dev_err(dev, "no regulators node\n");
This patch has issue, it will always return failure here.
Regards,
Peng
>> return -ENXIO;
>> }
>>
>> drv = DM_DRIVER_GET(scmi_regulator);
>>
>> ofnode_for_each_subnode(node, regul_node) {
>> ret = device_bind(dev, drv, ofnode_get_name(node),
>> NULL, node, NULL);
>> if (ret)
>> return ret;
>> }
>>
>> return 0;
>>}
>>
>>Best Regards,
>>Alice Guo
>>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] power: regulator: scmi: Move regulator subnode hack to scmi_regulator
2025-03-22 1:44 [PATCH] power: regulator: scmi: Move regulator subnode hack to scmi_regulator Marek Vasut
2025-04-03 10:56 ` 回复: [EXT] " Alice Guo (OSS)
@ 2025-04-23 16:05 ` Peng Fan (OSS)
1 sibling, 0 replies; 7+ messages in thread
From: Peng Fan (OSS) @ 2025-04-23 16:05 UTC (permalink / raw)
To: u-boot, Marek Vasut
Cc: Peng Fan, Alice Guo, Ilias Apalodimas, Jaehoon Chung, Tom Rini
From: Peng Fan <peng.fan@nxp.com>
On Sat, 22 Mar 2025 02:44:40 +0100, Marek Vasut wrote:
> The current code attempts to bind scmi_voltage_domain to regulator subnode
> of the SCMI protocol node, so scmi_voltage_domain can then bind regulators
> directly to subnodes of its node. This kind of behavior should not be in
> core code, move it into scmi_voltage_domain driver code. Let the driver
> descend into regulator node and bind regulators to its subnodes.
>
>
> [...]
After apply a fix from Alice Guo, applied, thanks!
[1/1] power: regulator: scmi: Move regulator subnode hack to scmi_regulator
commit: 2a8e7ea4f948e3de7033b297fd827fe082cd63da
Best regards,
--
Peng Fan <peng.fan@nxp.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-04-23 14:57 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-22 1:44 [PATCH] power: regulator: scmi: Move regulator subnode hack to scmi_regulator Marek Vasut
2025-04-03 10:56 ` 回复: [EXT] " Alice Guo (OSS)
2025-04-08 18:30 ` Marek Vasut
2025-04-09 6:42 ` 回复: " Alice Guo (OSS)
2025-04-18 2:52 ` Peng Fan
2025-04-23 3:18 ` Peng Fan
2025-04-23 16:05 ` Peng Fan (OSS)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox