Hi Peng, > According to code: > if (uc_pdata->flags & REGULATOR_FLAG_AUTOSET_UV) > ret = regulator_set_value(dev, uc_pdata->min_uV); > if (!ret && (uc_pdata->flags & REGULATOR_FLAG_AUTOSET_UA)) > ret = regulator_set_current(dev, uc_pdata->min_uA); > > So you get -ENOSYS from the upper code?
Yes, for fixed regulators, the following if clause evaluates to true in regulator_pre_probe: /* Those values are optional (-ENODATA if unset) */ if ((uc_pdata->min_uV != -ENODATA) && (uc_pdata->max_uV != -ENODATA) && (uc_pdata->min_uV == uc_pdata->max_uV)) uc_pdata->flags |= REGULATOR_FLAG_AUTOSET_UV; However, in regulator_set_value, there is this section: if (!ops || !ops->set_value) return -ENOSYS; So for fixed regulators, which don’t have a set_value, we’ll always get a -ENOSYS. Sven _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot