linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: "Heiko Stübner" <heiko@sntech.de>, linux-input@vger.kernel.org
Cc: Andreas Kemnade <andreas@kemnade.info>, linux-kernel@vger.kernel.org
Subject: [PATCH 14/18] Input: zforce_ts - stop treating VDD regulator as optional
Date: Fri, 23 Aug 2024 22:50:38 -0700	[thread overview]
Message-ID: <20240824055047.1706392-15-dmitry.torokhov@gmail.com> (raw)
In-Reply-To: <20240824055047.1706392-1-dmitry.torokhov@gmail.com>

This regulator is not optional from the controller point of view,
so stop treating it as such. For hard-wired designs that omit the
regulator from their device trees regulator subsystem will create
a dummy instance.

This may introduce unnecessary delay of 100us in case of dummy
regulator, but if it is important the driver should be marked as
using asynchronous probing to avoid even longer delays waiting for
the command completions.

Also use usleep_range() instead of udelay() to avoid spinning.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
 drivers/input/touchscreen/zforce_ts.c | 28 +++++++++++++--------------
 1 file changed, 13 insertions(+), 15 deletions(-)

diff --git a/drivers/input/touchscreen/zforce_ts.c b/drivers/input/touchscreen/zforce_ts.c
index 2ae079db8884..c6b506a01b2a 100644
--- a/drivers/input/touchscreen/zforce_ts.c
+++ b/drivers/input/touchscreen/zforce_ts.c
@@ -742,23 +742,21 @@ static int zforce_probe(struct i2c_client *client)
 					     "failed to request reset GPIO\n");
 	}
 
-	ts->reg_vdd = devm_regulator_get_optional(&client->dev, "vdd");
+	ts->reg_vdd = devm_regulator_get(&client->dev, "vdd");
 	error = PTR_ERR_OR_ZERO(ts->gpio_rst);
-	if (error) {
-		if (error != -ENOENT)
-			return dev_err_probe(&client->dev, error,
-					     "failed to request vdd supply\n");
-	} else {
-		error = regulator_enable(ts->reg_vdd);
-		if (error)
-			return error;
+	if (error)
+		return dev_err_probe(&client->dev, error,
+				     "failed to request vdd supply\n");
 
-		/*
-		 * according to datasheet add 100us grace time after regular
-		 * regulator enable delay.
-		 */
-		udelay(100);
-	}
+	error = regulator_enable(ts->reg_vdd);
+	if (error)
+		return error;
+
+	/*
+	 * According to datasheet add 100us grace time after regular
+	 * regulator enable delay.
+	 */
+	usleep_range(100, 200);
 
 	error = devm_add_action_or_reset(&client->dev, zforce_reset, ts);
 	if (error)
-- 
2.46.0.295.g3b9ea8a38a-goog


  parent reply	other threads:[~2024-08-24  5:51 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-24  5:50 [PATCH 00/18] zforse_ts: assorted cleanups Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 01/18] Input: zforce_ts - use devm_add_action_or_reset() Dmitry Torokhov
2024-08-24 11:13   ` Heiko Stübner
2024-08-29 17:54     ` Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 02/18] Input: zforce_ts - simplify reporting of slot state Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 03/18] Input: zforce_ts - remove support for platfrom data Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 04/18] Input: zforce_ts - do not explicitly set EV_SYN, etc bits Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 05/18] Input: zforce_ts - handle errors from input_mt_init_sots() Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 06/18] Input: zforce_ts - remove unneeded locking Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 07/18] Input: zforce_ts - ensure that pm_stay_awake() and pm_relax() are balanced Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 08/18] Input: zforce_ts - use guard notation when acquiring mutexes Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 09/18] Input: zforce_ts - switch to using get_unaligned_le16 Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 10/18] Input: zforce_ts - make parsing of contacts less confusing Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 11/18] Input: zforce_ts - do not ignore errors when acquiring regulator Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 12/18] Input: zforce_ts - use dev_err_probe() where appropriate Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 13/18] Input: zforce_ts - make zforce_idtable constant Dmitry Torokhov
2024-08-24  5:50 ` Dmitry Torokhov [this message]
2024-08-24  5:50 ` [PATCH 15/18] Input: zforce_ts - switch to using devm_regulator_get_enable() Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 16/18] Input: zforce_ts - do not hardcode interrupt level Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 17/18] Input: zforce_ts - remove assert/deassert wrappers Dmitry Torokhov
2024-08-24  5:50 ` [PATCH 18/18] Input: zforce_ts - switch to using asynchronous probing Dmitry Torokhov
2024-09-02  8:08 ` [PATCH 00/18] zforse_ts: assorted cleanups Andreas Kemnade
2024-09-06  5:49   ` Dmitry Torokhov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240824055047.1706392-15-dmitry.torokhov@gmail.com \
    --to=dmitry.torokhov@gmail.com \
    --cc=andreas@kemnade.info \
    --cc=heiko@sntech.de \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).