From nobody Thu Apr 9 21:52:24 2026 Received: from mail-dy1-f182.google.com (mail-dy1-f182.google.com [74.125.82.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1EC313C2798 for ; Thu, 5 Mar 2026 19:22:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772738524; cv=none; b=FRwSOHMCQtuIzTnzenJ+9mVQLL2YFfMVvaFjyaFexQcgbawMAC+uWZ/arss2hqclhpaR1DA+RphaSyyRazyCaMxNsdNtSNljlbmmsSJVtlxErXWg1RMQNc2EhdNNCUbWaU557jARdT3AwC/awp1zx0joZrWyjV25UgBgMTYomJU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772738524; c=relaxed/simple; bh=SMEngmxi+V1iJrnKbLYWEzqidqgepXSPtcgppjiDGDE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kYnLPnPx7B6EZ/it9OqkNI4RzVu9hmC9jbyZW18DbFwESsMAZYc/7te+PzNVKtYwe+a8wv8QOjRec5edBDc20Xp4ILrttaNGGWDIDA2/iUJ1to0Yu9tRpp2ckeTg/YIIwQzrlTFRp1qmJilzoBUYFbI2KRPdDrDoh6wr237PijY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ihwEtfTg; arc=none smtp.client-ip=74.125.82.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ihwEtfTg" Received: by mail-dy1-f182.google.com with SMTP id 5a478bee46e88-2bdd40d3c61so6975141eec.1 for ; Thu, 05 Mar 2026 11:22:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772738522; x=1773343322; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=8e4srTG2w8Nmq6WFaWd7C/J5fjQdqqF7reTkmwpcgV8=; b=ihwEtfTggp4E/FNI2rnOefIKzZ8MaYJShfY1zbObJFN5BM1eyO6optv+dWuglUQXl5 ICSEKmsRKfOsruVCDtrlbEtVxvU7qKhcfiHqCMJGUW92b/W089Ega+zsFTqEK+1bc4wn +9e9gm8ECdD/1Mr+rzdjj752L4Et5MX9dFDSAszI1eFqdG9vnWf9fnD3tl6AuO4r/gKI tCWMX2yH5EnPqXi+/+0mYviN0WIYu8TLtBylcGP0vSruYSR2i2DpE+K41YenefaNIcPX YzslLHY7RMKbeQpAJ20uRf4BfcSH1++QB4rK7HKJ2e7PVuCtq1p5QZEHK9wVCL9pp7xs rIjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772738522; x=1773343322; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=8e4srTG2w8Nmq6WFaWd7C/J5fjQdqqF7reTkmwpcgV8=; b=Slm3YojX1bjZ7dJSkhF3y65mAC21EKmcuS1srmiJOGSpdM0g1DnrZmW2Rua4elWZLb p+hYWY8cGlW+RJNSaU0akHQn3LszHxtx+38lgbBnmSgxMTJacstJOy/a2ogTiMj1S6bC Nh1jLvy2mQnxYpg658c4bgUtCDGC0N/CwK39krtR6CKKHOR5s5MansJJDoBQnqNlDFxK 0Y/1muhYkpYbGeAEQGYbP7boBiQO/n/6OK1eybi4ZHxxZU/WQCk5qUB7YWHn9SFZBNRq tNOaAomcocXkjIAB5Dw8vJgMF5b/p+rSQ/Ekgzf4t6BDPwA8sr8VI155CTZKvtBpDe+j AzTw== X-Forwarded-Encrypted: i=1; AJvYcCU5RJUgSp9tBqKPcrAEgJW9DuqKH4JjF/u/eebW8RorPV3IVBVO79ZhOiAcD7syll/FdbrwXcNyFWFmM44=@vger.kernel.org X-Gm-Message-State: AOJu0YyWFELFjoUCB9hEow4zcTb+LalzxQjtYnPgjgHKvMUlmncBGHrp 5BTA8NimdA26U4pSXjk/Pqkd7d+StR4f7fHE5Y+F/rE0jECv0fvNM0+n X-Gm-Gg: ATEYQzy3JKLpw3NmqVIFvbEhXe5TVU1HEs/mOC+VxJRT8IBgUZ2BBz2ZRr66okkmNPo gRsFGEvFNcK3+PZqsee46nw5+8Ix0FlPF1oBlNQCSJ5/TUbTQz5t8mXPF5sLDvIQ7Su86vfht80 sDYRSbSjRo1+QTJIIbLz7lVNUdKINpq/2k8SWgy7EcjYzrOgBcVG2seEyCNcO8xxb+ZNtKilwgF sRC4cXY97ROVKXfGcXMEbTR2cdfRo83GS+HI9U7TPN4KwzIt1oXSU7VgaghQcO47zsDQg+ErfFq fkqJBjZBmpfhBK17OkW7h3ulZVSzS/iSnGfhsD/AGQTLGrNdG432O6OR8zqxnUfJexPnnOx7L75 A/lXxSQhjSPxnsnr7QskHor+QviwobTgdnIRDKGXuwVnqxXw3dCQqY8kCU3ZTmHPYtFBYUdqFut 7/bbnxhGCkt79cjY1F/UEdu1L+YIhHDItHVm4BM6eIR3SIyRqVk/I7MYzvbCnwwzeK/Wb9/rrwV n1ubSf79MI8pJ8= X-Received: by 2002:a05:7300:fb96:b0:2be:10a6:647e with SMTP id 5a478bee46e88-2be310a2a47mr2640901eec.19.1772738522033; Thu, 05 Mar 2026 11:22:02 -0800 (PST) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:7788:d145:a740:ca06]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be1281ff70sm10800980eec.14.2026.03.05.11.22.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 11:22:01 -0800 (PST) From: Dmitry Torokhov Date: Thu, 05 Mar 2026 11:21:56 -0800 Subject: [PATCH v3 5/6] iio: adc: ti-ads7950: switch to using devm_regulator_get_enable_read_voltage() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260305-ti-ads7950-facelift-v3-5-a23fdd1a079e@gmail.com> References: <20260305-ti-ads7950-facelift-v3-0-a23fdd1a079e@gmail.com> In-Reply-To: <20260305-ti-ads7950-facelift-v3-0-a23fdd1a079e@gmail.com> To: Jonathan Cameron , David Lechner Cc: =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Linus Walleij , Bartosz Golaszewski , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Jonathan Cameron X-Mailer: b4 0.15-dev-94184 The regulator is enabled for the entire time the driver is bound to the device, and we only need to access it to fetch voltage, which can be done at probe time. Switch to using devm_regulator_get_enable_read_voltage() which simplifies probing and unbinding code. Suggested-by: David Lechner Signed-off-by: Dmitry Torokhov --- drivers/iio/adc/ti-ads7950.c | 45 +++++++++++-----------------------------= ---- 1 file changed, 11 insertions(+), 34 deletions(-) diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index 273c35e03185..847e83baa876 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -341,19 +341,9 @@ static int ti_ads7950_scan_direct(struct iio_dev *indi= o_dev, unsigned int ch) return st->single_rx; } =20 -static int ti_ads7950_get_range(struct ti_ads7950_state *st) +static unsigned int ti_ads7950_get_range(struct ti_ads7950_state *st) { - int vref; - - if (st->vref_mv) { - vref =3D st->vref_mv; - } else { - vref =3D regulator_get_voltage(st->reg); - if (vref < 0) - return vref; - - vref /=3D 1000; - } + unsigned int vref =3D st->vref_mv; =20 if (st->cmd_settings_bitmask & TI_ADS7950_CR_RANGE_5V) vref *=3D 2; @@ -382,11 +372,7 @@ static int ti_ads7950_read_raw(struct iio_dev *indio_d= ev, =20 return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: - ret =3D ti_ads7950_get_range(st); - if (ret < 0) - return ret; - - *val =3D ret; + *val =3D ti_ads7950_get_range(st); *val2 =3D (1 << chan->scan_type.realbits) - 1; =20 return IIO_VAL_FRACTIONAL; @@ -580,30 +566,24 @@ static int ti_ads7950_probe(struct spi_device *spi) spi_message_init_with_transfers(&st->scan_single_msg, st->scan_single_xfer, 3); =20 + ret =3D devm_regulator_get_enable_read_voltage(&spi->dev, "vref"); + if (ret < 0) + return dev_err_probe(&spi->dev, ret, + "Failed to get regulator \"vref\"\n"); + /* Use hard coded value for reference voltage in ACPI case */ if (ACPI_COMPANION(&spi->dev)) st->vref_mv =3D TI_ADS7950_VA_MV_ACPI_DEFAULT; + else + st->vref_mv =3D ret / 1000; =20 mutex_init(&st->slock); =20 - st->reg =3D devm_regulator_get(&spi->dev, "vref"); - if (IS_ERR(st->reg)) { - ret =3D dev_err_probe(&spi->dev, PTR_ERR(st->reg), - "Failed to get regulator \"vref\"\n"); - goto error_destroy_mutex; - } - - ret =3D regulator_enable(st->reg); - if (ret) { - dev_err(&spi->dev, "Failed to enable regulator \"vref\"\n"); - goto error_destroy_mutex; - } - ret =3D iio_triggered_buffer_setup(indio_dev, NULL, &ti_ads7950_trigger_handler, NULL); if (ret) { dev_err(&spi->dev, "Failed to setup triggered buffer\n"); - goto error_disable_reg; + goto error_destroy_mutex; } =20 ret =3D ti_ads7950_init_hw(st); @@ -643,8 +623,6 @@ static int ti_ads7950_probe(struct spi_device *spi) iio_device_unregister(indio_dev); error_cleanup_ring: iio_triggered_buffer_cleanup(indio_dev); -error_disable_reg: - regulator_disable(st->reg); error_destroy_mutex: mutex_destroy(&st->slock); =20 @@ -659,7 +637,6 @@ static void ti_ads7950_remove(struct spi_device *spi) gpiochip_remove(&st->chip); iio_device_unregister(indio_dev); iio_triggered_buffer_cleanup(indio_dev); - regulator_disable(st->reg); mutex_destroy(&st->slock); } =20 --=20 2.53.0.473.g4a7958ca14-goog