Received: by 2002:a25:ca44:0:0:0:0:0 with SMTP id a65csp566813ybg; Tue, 28 Jul 2020 13:00:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx6Zyv4oN+1TbynUzz2D+ltbZx1eo2Zv9r9lackK4XzsmsNE9jOHtbGsUJnKMJDJWJBrddM X-Received: by 2002:a05:6402:31ba:: with SMTP id dj26mr28385802edb.181.1595966451408; Tue, 28 Jul 2020 13:00:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595966451; cv=none; d=google.com; s=arc-20160816; b=j7OYUA1NRWFGNnsyEGnhNYheMLjV9YxUzo3S0YPC7G0wmspiSQaN6m8eMVIxbQ8Hkv 7jR5aHTjJa5FsSlWrZiGPUEhZ9r4v6OY7+5imButxiTuHBsIELiGBxHwzQZ4hTqJvKmb kl66smaKg8nYVIeHnMs33bpBDqx0pcuwUiq8Qul8o2AdsZe2nyxEVGXXRLK/8YMeH9Pv ZlrlzeVujD5YqlGOHRisFy/cLZ/T9QWzWJ2P9nDBTT3XZFsS48VeI77av2MVg+Ddu+9I cGNLIhkwlYeQWNM7/s6xv7KR4cb487fDxtA0V641ACdXqKCwxf18bGR4mMqbbhh+OMoM bBew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=xBNFTWpWvbuyYttTx5FJzXMGIoQ5ioCfp2lUjYaRrnY=; b=ZTT71STUKT0rKPbrA65ga5PBvZITzDJydZoD6zqYgXAxn3SV2Jgum8BGHkUdZ9Vs4d RZ8YyB15ATQc2rZ4Sh4ypqZtbkEnIO5jTmR+uAsXMzIE/LRZ1bZ9DIMYh7OvLcxuk94V GIRbJbyzheKBPyn0SsLtqyz1qgYMM8xmkTKetSY9BjQztttj6bVA+EzLB1T9izGmutmH R7mlg4yVpGJDe1asPDFDrTrziwe+Cs+4DvLnof2Ii2MA+YId0lk0NwelhgZmTmFVqbBx h0lXaFknfAfLOAkzItDoHK04MAlgP18bd+rCAk7IiRa2mKUJeDP1qxrZBg0WKjGjk9mO UQkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=r8M0BeTA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e26si9082018edv.66.2020.07.28.13.00.28; Tue, 28 Jul 2020 13:00:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=r8M0BeTA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732230AbgG1SVX (ORCPT + 99 others); Tue, 28 Jul 2020 14:21:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43362 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728886AbgG1SVW (ORCPT ); Tue, 28 Jul 2020 14:21:22 -0400 Received: from mail-pf1-x443.google.com (mail-pf1-x443.google.com [IPv6:2607:f8b0:4864:20::443]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BE71BC061794; Tue, 28 Jul 2020 11:21:22 -0700 (PDT) Received: by mail-pf1-x443.google.com with SMTP id l2so5080076pff.0; Tue, 28 Jul 2020 11:21:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=xBNFTWpWvbuyYttTx5FJzXMGIoQ5ioCfp2lUjYaRrnY=; b=r8M0BeTAbK7MU3O/JzGv8BetoHJjwe74GKR5eBzjwBtUixkGTnzPJulv8DoiD3z0M+ 4cbsGiwrbXTjReT++CKT9dpb5yZnxX0AkMu1zaE1p3vGgvEn343GDrS/fihDAwDJ4QXT as/vsiHkN5wpWaT6Q0vUOyRJfRJDdcXK17MaP/ZMiCz5hsSaQoym6+VDNdzX4Z8zjYVn pC1ccgdRQmFQUQURw/RXsWVKj+ZT2UGziMEGMvWDR4z60RX6TOzL7+VkkyHSjDHnmE1p fpNScszPS06stwU7LOSXR3yjYeLYCBNtWwQcsPQnqBixwGj/ftP4l8W50Z9syEEluI6B 40Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=xBNFTWpWvbuyYttTx5FJzXMGIoQ5ioCfp2lUjYaRrnY=; b=WrWKpAJfUGAyUM+QTmBRKbf3jQX16tAp7IO8z60ez70Gf0CpXznFAO9aZUnXtnnTsV MlerEa+wEZSTEujcHhN8MgwnAaSWRnTII6HQyMzT2XDj8x43uhXDiA2ktT4ouJ5Xd3Hv 76R969R5gSQYbCrEkzeHn1C4O4bDBdLTpoKqflTj6KM8llU+iZI+xUWvF+9yFKxYpQVt cL3kZtOfpwbonBqmS/SgiKg/XrTMDLFTL+86YsF7A0FzIRvvxX6rHJxAbgf1f5VY6Ofv 6n+ggjp/wpMEbHJXhj4572D3Hv+boR/g28ol3WHVbwCwjI+sL64lB4QSwaPMdELGaeo/ wSgQ== X-Gm-Message-State: AOAM530sx9lNTzKliha+8C9zmOXj5Yop5HyrKmzjHchtTOJrwuQP6n4t OU1L/25TPlOaolKI4nJIvmM8SVzroSJXPOBhjoY= X-Received: by 2002:a63:a05f:: with SMTP id u31mr25056868pgn.4.1595960482322; Tue, 28 Jul 2020 11:21:22 -0700 (PDT) MIME-Version: 1.0 References: <20200724183954.1.I2e29ae25368ba8a72a9e44121cfbc36ead8ecc6b@changeid> <20200728151258.1222876-1-campello@chromium.org> <20200728091057.15.Iaf4d717d1908ef22c88922b556e1eb803ae019c6@changeid> In-Reply-To: <20200728091057.15.Iaf4d717d1908ef22c88922b556e1eb803ae019c6@changeid> From: Andy Shevchenko Date: Tue, 28 Jul 2020 21:21:05 +0300 Message-ID: Subject: Re: [PATCH 15/15] iio: sx9310: Enable vdd and svdd regulators at probe To: Daniel Campello Cc: LKML , LKML , Jonathan Cameron , Stephen Boyd , Douglas Anderson , Enrico Granata , Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , linux-iio Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jul 28, 2020 at 6:14 PM Daniel Campello wrote: > > From: Stephen Boyd > > Enable the main power supply (vdd) and digital IO power supply (svdd) > during probe so that the i2c communication and device works properly on > boards that aggressively power gate these supplies. > > Reviewed-by: Douglas Anderson > Signed-off-by: Stephen Boyd > Signed-off-by: Daniel Campello Again wrong order. After fixing, Reviewed-by: Andy Shevchenko > --- > > drivers/iio/proximity/sx9310.c | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/drivers/iio/proximity/sx9310.c b/drivers/iio/proximity/sx9310.c > index 202018b726e32f..24a2360b6314ef 100644 > --- a/drivers/iio/proximity/sx9310.c > +++ b/drivers/iio/proximity/sx9310.c > @@ -18,6 +18,7 @@ > #include > #include > #include > +#include > #include > > #include > @@ -118,6 +119,7 @@ struct sx9310_data { > struct i2c_client *client; > struct iio_trigger *trig; > struct regmap *regmap; > + struct regulator_bulk_data supplies[2]; > /* > * Last reading of the proximity status for each channel. > * We only send an event to user space when this changes. > @@ -873,6 +875,13 @@ static int sx9310_set_indio_dev_name(struct device *dev, > return 0; > } > > +static void sx9310_regulator_disable(void *_data) > +{ > + struct sx9310_data *data = _data; > + > + regulator_bulk_disable(ARRAY_SIZE(data->supplies), data->supplies); > +} > + > static int sx9310_probe(struct i2c_client *client) > { > int ret; > @@ -886,6 +895,8 @@ static int sx9310_probe(struct i2c_client *client) > > data = iio_priv(indio_dev); > data->client = client; > + data->supplies[0].supply = "vdd"; > + data->supplies[1].supply = "svdd"; > mutex_init(&data->mutex); > init_completion(&data->completion); > > @@ -893,6 +904,21 @@ static int sx9310_probe(struct i2c_client *client) > if (IS_ERR(data->regmap)) > return PTR_ERR(data->regmap); > > + ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(data->supplies), > + data->supplies); > + if (ret) > + return ret; > + > + ret = regulator_bulk_enable(ARRAY_SIZE(data->supplies), data->supplies); > + if (ret) > + return ret; > + /* Must wait for Tpor time after initial power up */ > + usleep_range(1000, 1100); > + > + ret = devm_add_action_or_reset(dev, sx9310_regulator_disable, data); > + if (ret) > + return ret; > + > ret = regmap_read(data->regmap, SX9310_REG_WHOAMI, &data->whoami); > if (ret) { > dev_err(dev, "error in reading WHOAMI register: %d\n", ret); > -- > 2.28.0.rc0.142.g3c755180ce-goog > -- With Best Regards, Andy Shevchenko