On Wed, 2020-05-20 at 13:31 +0100, Mark Brown wrote: > On Wed, May 20, 2020 at 11:43:04AM +0800, Andrew-sh.Cheng wrote: > > > + cci_df->proc_reg = devm_regulator_get_optional(cci_dev, "proc"); > > + ret = PTR_ERR_OR_ZERO(cci_df->proc_reg); > > + if (ret) { > > + if (ret != -EPROBE_DEFER) > > + dev_err(cci_dev, "failed to get regulator for CCI: %d\n", > > + ret); > > + return ret; > > + } > > + ret = regulator_enable(cci_df->proc_reg); > > The code appears to require a regulator (and I'm guessing the device > needs power) so why is this using regulator_get_optional()? Hi Mark, Do you mean, why not use regulator_get_exclusive() or regulator_get()? Because cci and cpu litter core shared buck, it cannot use regulator_get_exclusive(). Because both cci and cpu want to tune voltage, it cannot use regulator_get(), otherwise it will get dummy regulator even this buck doesn't register.as regulator. BR, Andrew-sh.Cheng