power: regulator: Use dev_read_size in gpio-regulator

Change-Id: Iff2e643d6dad6975fe0838dc439a31ecd5299f41
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
This commit is contained in:
Shawn Lin 2021-01-07 11:48:38 +08:00 committed by Jianhong Chen
parent ec7aa9fc77
commit fae486e407
1 changed files with 8 additions and 7 deletions

View File

@ -29,8 +29,7 @@ static int gpio_regulator_ofdata_to_platdata(struct udevice *dev)
struct dm_regulator_uclass_platdata *uc_pdata; struct dm_regulator_uclass_platdata *uc_pdata;
struct gpio_regulator_platdata *dev_pdata; struct gpio_regulator_platdata *dev_pdata;
struct gpio_desc *gpio; struct gpio_desc *gpio;
const void *blob = gd->fdt_blob; int ret, len, i, j;
int ret, count, i, j;
u32 states_array[8]; u32 states_array[8];
dev_pdata = dev_get_platdata(dev); dev_pdata = dev_get_platdata(dev);
@ -53,15 +52,17 @@ static int gpio_regulator_ofdata_to_platdata(struct udevice *dev)
if (ret) if (ret)
debug("regulator gpio - not found! Error: %d", ret); debug("regulator gpio - not found! Error: %d", ret);
blob = dev_read_prop(dev, "states", &count); len = dev_read_size(dev, "states");
if (!blob) if (len < 0)
return -EINVAL; return len;
ret = dev_read_u32_array(dev, "states", states_array, count / 4); len /= sizeof(fdt32_t);
ret = dev_read_u32_array(dev, "states", states_array, len);
if (ret) if (ret)
return -EINVAL; return -EINVAL;
for (i = 0, j = 0; i < count / 4; i += 2) { for (i = 0, j = 0; i < len; i += 2) {
dev_pdata->voltages[j] = states_array[i]; dev_pdata->voltages[j] = states_array[i];
dev_pdata->states[j] = states_array[i + 1]; dev_pdata->states[j] = states_array[i + 1];
j++; j++;