On Tue, Sep 17, 2019 at 08:12:46PM +0300, Andy Shevchenko wrote: > 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. Full constraints is the default behavior. Do we even have platforms that are not? ACPI and DT are fully-constrained, so that leaves legacy boards... But there isn't a single one in the tree that uses this driver. Thanks. -- Dmitry