On Tue, Sep 17, 2019 at 09:52:45AM -0700, Dmitry Torokhov wrote: > On Tue, Sep 17, 2019 at 07:35:36PM +0300, Andy Shevchenko wrote: > > On Tue, Sep 17, 2019 at 05:58:08PM +0200, Marco Felsch wrote: > > > Currently the driver do not care about the regulator which supplies the > > > controller. This can lead into problems since we support (deep-)sleep > > > because the regulator can be turned off before we send the (deep-)sleep > > > command to the controller. Using a own regulator improves the power > > > consumption during sleep even more. > > > > > + tsdata->vdd = devm_regulator_get(&client->dev, "vdd"); > > > + if (IS_ERR(tsdata->vdd)) { > > > + error = PTR_ERR(tsdata->vdd); > > > + if (error == -EPROBE_DEFER) > > > + return error; > > > > Before it worked w/o regulator. You have to make it optional. > > No, regulators are funky this way. If there isn't one declared in the > device tree then a dummy is created automatically. Optional regulators > are only to be used when parts of an IC can be powered up separately. It depends if platform has full constrains or not. For the former, indeed, you are right, for the latter, we will get -ENODEV. -- With Best Regards, Andy Shevchenko