mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-05 04:36:13 +02:00
power: regulator: scmi: Move regulator subnode hack to scmi_regulator
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>
[Alice Guo: Fix scmi_regulator_bind]
Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
parent
991c9530fc
commit
2a8e7ea4f9
@ -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;
|
||||
|
||||
@ -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(regul_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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user