power: regulator: tps62360_regulator: Convert ofdata_to_platdata to the missing probe
commit29f7d05a34("dm: core: Move ofdata_to_platdata() call earlier") introduces changes in the order of device_probe execution. ofdata_to_platdata now comes before the probe function which resulted in a deadlock and caused boot hang on AM6 devices. Deadlock sequence: tps62360_regulator_ofdata_to_platdata --> i2c_get_chip --> device_probe(tps62360) --> tps62360_regulator_ofdata_to_platdata Hence convert ofdata_to_platdata to the missing probe function to fix the hang. Fixes:22e8f18980("power: regulator: tps6236x: add support for tps6236x regulators") Signed-off-by: Keerthy <j-keerthy@ti.com> Tested-by: Lokesh Vutla <lokeshvutla@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
This commit is contained in:
@@ -77,7 +77,7 @@ static int tps62360_regulator_get_value(struct udevice *dev)
|
|||||||
return (u32)regval * TPS62360_VSEL_STEPSIZE + pdata->config->vmin;
|
return (u32)regval * TPS62360_VSEL_STEPSIZE + pdata->config->vmin;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tps62360_regulator_ofdata_to_platdata(struct udevice *dev)
|
static int tps62360_regulator_probe(struct udevice *dev)
|
||||||
{
|
{
|
||||||
struct tps62360_regulator_pdata *pdata = dev_get_platdata(dev);
|
struct tps62360_regulator_pdata *pdata = dev_get_platdata(dev);
|
||||||
u8 vsel0;
|
u8 vsel0;
|
||||||
@@ -119,5 +119,5 @@ U_BOOT_DRIVER(tps62360_regulator) = {
|
|||||||
.ops = &tps62360_regulator_ops,
|
.ops = &tps62360_regulator_ops,
|
||||||
.of_match = tps62360_regulator_ids,
|
.of_match = tps62360_regulator_ids,
|
||||||
.platdata_auto_alloc_size = sizeof(struct tps62360_regulator_pdata),
|
.platdata_auto_alloc_size = sizeof(struct tps62360_regulator_pdata),
|
||||||
.ofdata_to_platdata = tps62360_regulator_ofdata_to_platdata,
|
.probe = tps62360_regulator_probe,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user