From nobody Thu Feb 12 10:55:42 2026 Received: from mail-oi1-f177.google.com (mail-oi1-f177.google.com [209.85.167.177]) (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 14DF1126F0A for ; Wed, 12 Jun 2024 21:03:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718226202; cv=none; b=mm+s2QgX6tSyeYa4PFczm1IuTLF4Ijz7kGdkb56HvlpFUVaCYTNpe9U0i4j7VzsHStPy1gcseYNWe5yyKGLCUqE18G3oQNe7UdlLE/Kg7MoyT97uoH4PdgZeavpodH0xFicjtKTLaGUGZtqC/EaYaYoQMX5dBSu7a/5E3BIZpB4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718226202; c=relaxed/simple; bh=vc0wQLAQuMRAyELjvGU21hVTnrdkk+B+80Fp46TOhLA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=NinVmGVdagqPgoD3LB8sZON8s6upUuAiS7/dVMyxCyJAd0PdLvtBLZYwYBObb6dfQM8qSbcmV6hn+g0sEbXESGLOwE2cdGxjV0BxqqudC3805/90njL0OS9kzHt6p0Gkhjx5Xb7AGMMhEshZ9KW7ySioqt8mchw4dDdiVE6sg/4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=ODTpRE24; arc=none smtp.client-ip=209.85.167.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="ODTpRE24" Received: by mail-oi1-f177.google.com with SMTP id 5614622812f47-3c9cc681ee4so112596b6e.0 for ; Wed, 12 Jun 2024 14:03:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1718226200; x=1718831000; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=V6phvgA6PKlI7Rsgp8QhIcT0Puar9wQt5/4QK7wk+xs=; b=ODTpRE24Yyq7TCx0ziq4zsUDnttyP4NQNmw6qjMDHu6Gmh+qcCpm3qpqCGyH4SLVcK XkRA9BnBLPzKg5Wrd5zAmyk1FqpXojUNqhEZgMNpXciNaofqqnXOTVc0nVW9lruKEs/k COQQxBMfNPcvSwbkchtOY8eMhTh+rSh/8pi/sfk7IA7ZTW8NLX6HnU2aaXmSfWY2z1/5 X/VYr0JvOekKb9MsFyJZu9Qo6gQsn/UURE48nwIXQuHLDb2FJWCxz1VZddvd7jHYJilo p6yIEQ4QLYeBxswV9FPTT1f7NFzm0RF8WdprLKvbAXdaOid34/pDmm/rcjlV6tfE0od9 Ju6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718226200; x=1718831000; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=V6phvgA6PKlI7Rsgp8QhIcT0Puar9wQt5/4QK7wk+xs=; b=eyb2jH282GJd9QoNjuyWmX2NKCgPl/NoBORNfg3/M3eCjaqntPhqezuGXykHOcJkFC ytno2V6ZO/lSIulMj5SxWurJui0Btpn4KTWQZfHXEFZ+taBmKX44VXD1Eb8gL8vMlkBj MQ96TjvXtGeMPiTPh+nKVvciBEaFc5DtxkMxdV0yvDA4JtZGi5nR280yWbG4DqePyg8I T2THoLvv9cTr+kRmgU7+MS6608I90OznwL11wDSuWqiFjvPDLkGB8M+fGtkVn9tXoSL/ oMVDiJl9IgoBY6N6xPbkWQQRuJzO1y96/w+tZAcfNxjyzjNfmCh1wnNGhLNt2uNqWqmc xKoA== X-Forwarded-Encrypted: i=1; AJvYcCWthCkjhN/ni/NFA1kIh/4yIKJuPWKcZOoDsPH0gIQ9jnE36Z5xoXyaOaxUJjr1J6BiJkqtkccFAwy3IcZK1jUwkbGY5WcqHh3ZYXbc X-Gm-Message-State: AOJu0YyRw/G2oKYcJBO0YC3YISBhzvxq2WZEb0ZOGZp7JIDxxN0AGiHh UzEfpScu/Yo+70wmZ3FgXnDliAAGvwGfWU8h5RgXIzethkmR5+J6WvF9WELH9FU= X-Google-Smtp-Source: AGHT+IEnh8HX9zJsqhJ8nU/HGtmIfcg8BsqljTsGbB9Qo4c5ZfFEkouPBvBHLlNZasDRiQIrBh4oDg== X-Received: by 2002:a05:6808:2288:b0:3d2:2334:67e5 with SMTP id 5614622812f47-3d23dfd9dd9mr3384141b6e.4.1718226200044; Wed, 12 Jun 2024 14:03:20 -0700 (PDT) Received: from freyr.lechnology.com (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3d20b68f5a1sm2433368b6e.23.2024.06.12.14.03.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jun 2024 14:03:19 -0700 (PDT) From: David Lechner To: Jonathan Cameron Cc: David Lechner , Marcelo Schmitt , =?utf-8?q?Nuno_S=C3=A1?= , Michael Hennerich , Mark Brown , Liam Girdwood , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/5] iio: adc: ad7192: use devm_regulator_get_enable_read_voltage Date: Wed, 12 Jun 2024 16:03:05 -0500 Message-ID: <20240612-iio-adc-ref-supply-refactor-v2-1-fa622e7354e9@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240612-iio-adc-ref-supply-refactor-v2-0-fa622e7354e9@baylibre.com> References: <20240612-iio-adc-ref-supply-refactor-v2-0-fa622e7354e9@baylibre.com> 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" X-Mailer: b4 0.12.4 Content-Transfer-Encoding: quoted-printable This makes use of the new devm_regulator_get_enable_read_voltage() function to reduce boilerplate code. Error messages have changed slightly since there are now fewer places where we print an error. The rest of the logic of selecting which supply to use as the reference voltage remains the same. Also 1000 is replaced by MILLI in a few places for consistency. Signed-off-by: David Lechner Reviewed-by: Nuno Sa --- v2 changes: - avoid using else on return value check of "aincom" regulator - also fall back to dummy regulator on "avdd" in case of ENODEV --- drivers/iio/adc/ad7192.c | 100 +++++++++++++++++--------------------------= ---- 1 file changed, 35 insertions(+), 65 deletions(-) diff --git a/drivers/iio/adc/ad7192.c b/drivers/iio/adc/ad7192.c index 0789121236d6..409c73d16460 100644 --- a/drivers/iio/adc/ad7192.c +++ b/drivers/iio/adc/ad7192.c @@ -200,8 +200,6 @@ struct ad7192_chip_info { =20 struct ad7192_state { const struct ad7192_chip_info *chip_info; - struct regulator *avdd; - struct regulator *vref; struct clk *mclk; u16 int_vref_mv; u32 aincom_mv; @@ -1189,17 +1187,11 @@ static const struct ad7192_chip_info ad7192_chip_in= fo_tbl[] =3D { }, }; =20 -static void ad7192_reg_disable(void *reg) -{ - regulator_disable(reg); -} - static int ad7192_probe(struct spi_device *spi) { struct ad7192_state *st; struct iio_dev *indio_dev; - struct regulator *aincom; - int ret; + int ret, avdd_mv; =20 if (!spi->irq) { dev_err(&spi->dev, "no IRQ?\n"); @@ -1219,74 +1211,52 @@ static int ad7192_probe(struct spi_device *spi) * Newer firmware should provide a zero volt fixed supply if wired to * ground. */ - aincom =3D devm_regulator_get_optional(&spi->dev, "aincom"); - if (IS_ERR(aincom)) { - if (PTR_ERR(aincom) !=3D -ENODEV) - return dev_err_probe(&spi->dev, PTR_ERR(aincom), - "Failed to get AINCOM supply\n"); - - st->aincom_mv =3D 0; - } else { - ret =3D regulator_enable(aincom); + ret =3D devm_regulator_get_enable_read_voltage(&spi->dev, "aincom"); + if (ret < 0 && ret !=3D -ENODEV) + return dev_err_probe(&spi->dev, ret, "Failed to get AINCOM voltage\n"); + + st->aincom_mv =3D ret =3D=3D -ENODEV ? 0 : ret / MILLI; + + /* AVDD can optionally be used as reference voltage */ + ret =3D devm_regulator_get_enable_read_voltage(&spi->dev, "avdd"); + if (ret =3D=3D -ENODEV || ret =3D=3D -EINVAL) { + /* + * We get -EINVAL if avdd is a supply with unknown voltage. We + * still need to enable it since it is also a power supply. + */ + ret =3D devm_regulator_get_enable(&spi->dev, "avdd"); if (ret) return dev_err_probe(&spi->dev, ret, - "Failed to enable specified AINCOM supply\n"); + "Failed to enable AVDD supply\n"); =20 - ret =3D devm_add_action_or_reset(&spi->dev, ad7192_reg_disable, aincom); - if (ret) - return ret; - - ret =3D regulator_get_voltage(aincom); - if (ret < 0) - return dev_err_probe(&spi->dev, ret, - "Device tree error, AINCOM voltage undefined\n"); - st->aincom_mv =3D ret / MILLI; + avdd_mv =3D 0; + } else if (ret < 0) { + return dev_err_probe(&spi->dev, ret, "Failed to get AVDD voltage\n"); + } else { + avdd_mv =3D ret / MILLI; } =20 - st->avdd =3D devm_regulator_get(&spi->dev, "avdd"); - if (IS_ERR(st->avdd)) - return PTR_ERR(st->avdd); - - ret =3D regulator_enable(st->avdd); - if (ret) { - dev_err(&spi->dev, "Failed to enable specified AVdd supply\n"); - return ret; - } - - ret =3D devm_add_action_or_reset(&spi->dev, ad7192_reg_disable, st->avdd); - if (ret) - return ret; =20 ret =3D devm_regulator_get_enable(&spi->dev, "dvdd"); if (ret) return dev_err_probe(&spi->dev, ret, "Failed to enable specified DVdd su= pply\n"); =20 - st->vref =3D devm_regulator_get_optional(&spi->dev, "vref"); - if (IS_ERR(st->vref)) { - if (PTR_ERR(st->vref) !=3D -ENODEV) - return PTR_ERR(st->vref); - - ret =3D regulator_get_voltage(st->avdd); - if (ret < 0) - return dev_err_probe(&spi->dev, ret, - "Device tree error, AVdd voltage undefined\n"); + /* + * This is either REFIN1 or REFIN2 depending on adi,refin2-pins-enable. + * If this supply is not present, fall back to AVDD as reference. + */ + ret =3D devm_regulator_get_enable_read_voltage(&spi->dev, "vref"); + if (ret =3D=3D -ENODEV) { + if (avdd_mv =3D=3D 0) + return dev_err_probe(&spi->dev, -ENODEV, + "No reference voltage available\n"); + + st->int_vref_mv =3D avdd_mv; + } else if (ret < 0) { + return ret; } else { - ret =3D regulator_enable(st->vref); - if (ret) { - dev_err(&spi->dev, "Failed to enable specified Vref supply\n"); - return ret; - } - - ret =3D devm_add_action_or_reset(&spi->dev, ad7192_reg_disable, st->vref= ); - if (ret) - return ret; - - ret =3D regulator_get_voltage(st->vref); - if (ret < 0) - return dev_err_probe(&spi->dev, ret, - "Device tree error, Vref voltage undefined\n"); + st->int_vref_mv =3D ret / MILLI; } - st->int_vref_mv =3D ret / 1000; =20 st->chip_info =3D spi_get_device_match_data(spi); indio_dev->name =3D st->chip_info->name; --=20 2.45.2 From nobody Thu Feb 12 10:55:42 2026 Received: from mail-oi1-f182.google.com (mail-oi1-f182.google.com [209.85.167.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 55F5E126F02 for ; Wed, 12 Jun 2024 21:03:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718226206; cv=none; b=FKoi1rlHFaVPJu4J08Cj2GblcDobFSJnXilNp0MDCrxtIZ3du9DNzjxjNm3WEnL8wSpWOMD1GYCltTUOQIgrZ5rgkv4VuteCrL9JgC4TBG638gQnOT9yIRS9SVmDih4lDe3THwOojMnhGXHr2tJPnmRZW4NelxxkCx7YRm8Yws4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718226206; c=relaxed/simple; bh=xZMj+Tp3hfugjb8DvqlKp+tQ02YG9Qbq10/c7lYjPNM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Ru4IIJ2QaKQlyhqn9SXFky6ThyRG+14wAncg+CHBlNwwAZJHqTLGHpI33OnDGJCSSeW5/GW/50CXCYEXRTVqOfN1kV99X+ZW6XcgLo1Lj7GBB+pLtZul4p11KMJBHCRRq/mgxVEHoLxhtUaeZGyBN4DDYf+8gVjNhz5j0dH6/7I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=WMtQYTWP; arc=none smtp.client-ip=209.85.167.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="WMtQYTWP" Received: by mail-oi1-f182.google.com with SMTP id 5614622812f47-3d2220a11a8so133658b6e.0 for ; Wed, 12 Jun 2024 14:03:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1718226202; x=1718831002; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4hWOcNN+TXQI0vHdkxWXGyQx3IUvNG0BoVco9Tkt4lU=; b=WMtQYTWPPAPiKOeMyzal1EOjqkkz761SLE62WWRTdznahkKHVO7+FxLxGLxy1l3YAE C5IG36NAUu8hv2v6QT/ZsQaMoNOH2sOmwwgJMwAe98lokLT9xn+dYEhIzoTmEBaXIYps dDxueaP5Lp5fAkcSGg1tIOJYm4NFgNKyZN8da0f/OBHkg//z7WyumIhYwrJkOohKMjeZ hDL/NduMXdiDVqq8dxBEbUO3UdBoit0wPKGi4xHRnSknbaJ/e946VJXmuctqzm4hMFGP 0sbpyjBeEipjIZvgQdTQaU8ZG3S9alER5Z9QVphXlzWAP57wpTQp4gIxl1k9HpMWcgh/ Xrsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718226202; x=1718831002; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4hWOcNN+TXQI0vHdkxWXGyQx3IUvNG0BoVco9Tkt4lU=; b=OM9/GDXQxIfKfitXU8WxDZiHm+Lcta0CR+mhd8kMTPLGXpZ8bW8hoCq2yUdEGykmsR U0fCuXy2OInu9+U1m0Y9t5BfVhWyC08DrvvAKyi0oxaRuQj0NhDZKm1t3kV3zexmpd+M WsR2QVUEgWbXLmUjTKLOOhBokzL70qmtbOFFJHI5X31/r1sZ2Isaygplpg1ecUJgoDH0 ys+SnL+VTCNmjCP5Uh328ZTMDh05k6R88VD9GMOSzu7v07HxwJY1HjSF4UyiE2PfSRVl K7QvtiDa85ffeJeRDsF3il+URIQmmH7yqXNddLMa6k+uyNs9Lj4UJtuOabHGDIE8IMzf mryA== X-Forwarded-Encrypted: i=1; AJvYcCVzBpBT6zil6ADbp0UthHBayOFMtIpzs36lodWLMOCAoU27nDYUthyf3CTx07HLpSiYEXEZ63pkLiR68itLmmN9Rag+WNbd/+B2iIDb X-Gm-Message-State: AOJu0YwIR88OJwc7wKgRpHEiEd+HLe/fes2tXxlX0x4A7uOX+3qFIIqC KwrCpG5iFegBrMnbAgJZzpK0X32F0nAxefnZmeMHiGdpVJ8PpfMAr2j1VN6Jw4s= X-Google-Smtp-Source: AGHT+IEvviefEF6MK/t/Fpys2OCFvkv65Rxyl1H+DXe8N4+AZUg+8PjNV9RiCoXtmE2DqYHfirZ9Ug== X-Received: by 2002:a05:6808:1456:b0:3d2:303f:ff3a with SMTP id 5614622812f47-3d23e11d1d5mr4109776b6e.51.1718226200831; Wed, 12 Jun 2024 14:03:20 -0700 (PDT) Received: from freyr.lechnology.com (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3d20b68f5a1sm2433368b6e.23.2024.06.12.14.03.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jun 2024 14:03:20 -0700 (PDT) From: David Lechner To: Jonathan Cameron Cc: David Lechner , Marcelo Schmitt , =?utf-8?q?Nuno_S=C3=A1?= , Michael Hennerich , Mark Brown , Liam Girdwood , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/5] iio: adc: ad7266: use devm_regulator_get_enable_read_voltage Date: Wed, 12 Jun 2024 16:03:06 -0500 Message-ID: <20240612-iio-adc-ref-supply-refactor-v2-2-fa622e7354e9@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240612-iio-adc-ref-supply-refactor-v2-0-fa622e7354e9@baylibre.com> References: <20240612-iio-adc-ref-supply-refactor-v2-0-fa622e7354e9@baylibre.com> 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" X-Mailer: b4 0.12.4 Content-Transfer-Encoding: quoted-printable This makes use of the new devm_regulator_get_enable_read_voltage() function to reduce boilerplate code. Signed-off-by: David Lechner Reviewed-by: Nuno Sa --- v2 changes: - avoid else in return value check - use macro instead of comment to explain internal reference voltage --- drivers/iio/adc/ad7266.c | 33 ++++++--------------------------- 1 file changed, 6 insertions(+), 27 deletions(-) diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c index 353a97f9c086..874d2dc34f92 100644 --- a/drivers/iio/adc/ad7266.c +++ b/drivers/iio/adc/ad7266.c @@ -23,9 +23,10 @@ =20 #include =20 +#define AD7266_INTERNAL_REF_MV 2500 + struct ad7266_state { struct spi_device *spi; - struct regulator *reg; unsigned long vref_mv; =20 struct spi_transfer single_xfer[3]; @@ -377,11 +378,6 @@ static const char * const ad7266_gpio_labels[] =3D { "ad0", "ad1", "ad2", }; =20 -static void ad7266_reg_disable(void *reg) -{ - regulator_disable(reg); -} - static int ad7266_probe(struct spi_device *spi) { struct ad7266_platform_data *pdata =3D spi->dev.platform_data; @@ -396,28 +392,11 @@ static int ad7266_probe(struct spi_device *spi) =20 st =3D iio_priv(indio_dev); =20 - st->reg =3D devm_regulator_get_optional(&spi->dev, "vref"); - if (!IS_ERR(st->reg)) { - ret =3D regulator_enable(st->reg); - if (ret) - return ret; - - ret =3D devm_add_action_or_reset(&spi->dev, ad7266_reg_disable, st->reg); - if (ret) - return ret; - - ret =3D regulator_get_voltage(st->reg); - if (ret < 0) - return ret; + ret =3D devm_regulator_get_enable_read_voltage(&spi->dev, "vref"); + if (ret < 0 && ret !=3D -ENODEV) + return ret; =20 - st->vref_mv =3D ret / 1000; - } else { - /* Any other error indicates that the regulator does exist */ - if (PTR_ERR(st->reg) !=3D -ENODEV) - return PTR_ERR(st->reg); - /* Use internal reference */ - st->vref_mv =3D 2500; - } + st->vref_mv =3D ret =3D=3D -ENODEV ? AD7266_INTERNAL_REF_MV : ret / 1000; =20 if (pdata) { st->fixed_addr =3D pdata->fixed_addr; --=20 2.45.2 From nobody Thu Feb 12 10:55:42 2026 Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com [209.85.167.169]) (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 A33798526C for ; Wed, 12 Jun 2024 21:03:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718226204; cv=none; b=XmDM2YhQwFJAyoZapKd36/n7ONJflndORNrFbxxZSg59YJ5gfuPQHSHI4hzTU1jLxJnsS1j8aZHurx12e/jMQtK/17tWuTOZ4FrWLMbVvKJnIlVAQI2YrnFML0h79jpkzk1gP4K99zwGtbo+KDVz8fT+i2guqIkiOmX14TGjgY0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718226204; c=relaxed/simple; bh=RQGZCDhf9GURnEWrVzA4GpPy1QAW6p5jP0M4N6GMfTg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=PSh6gct984RtsLapX6167esUpVAQ3cZYluJKQt6DLmyzDesxZiFLJCZOv/0nvKkTdNhG5xxDtVJK3FRhn9Bbo2JZE9dml9qj6YpMS+4AKxMqnl3i96nEI4jnsjfGehGbIAOzv+S68bl+0+RlZdFc4YLhWOcaVvyDf6pcCEjpF58= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=QvEJEsnu; arc=none smtp.client-ip=209.85.167.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="QvEJEsnu" Received: by mail-oi1-f169.google.com with SMTP id 5614622812f47-3d229826727so125902b6e.1 for ; Wed, 12 Jun 2024 14:03:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1718226201; x=1718831001; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=60rjWI/eWg2WwJP9vLG2m5CtLQt8gZzyCnXFhPgOW24=; b=QvEJEsnugo+ABtWMy+Zbcwf6AtHFgzFzNbd6mBRt3kjdm7phaR6c7T2teLs6MjAcYb rSwea3J4oamrk48R75NyxxmG8+AJdf9jbekoNygnxi/FiIu4JkbT9ih2t6gEA1z4oDHV Z6UrSFUc5iIJ2Gl7oi+LgUWVviRYmqKiotfTkNusORisc2wjQvGu3OVca2fGEZ7Dowx1 oHIQKsSCjdEX3mRdOhzTSq1vxtx5lKmXT+7/qKsBtMkit+EAUNsqFdUVi8VtPBDWz+fl grVmC4JybLO+eEhdqcJb6uoJoj2lxAfbQE+ImH4AqvoJ1y/ivwju7xZ1p9+sUZakzwnq nWOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718226202; x=1718831002; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=60rjWI/eWg2WwJP9vLG2m5CtLQt8gZzyCnXFhPgOW24=; b=dsvnmSbxG7b6VXBERGj/wPtc6Gc5Mf4t5eXuXhgeCuAk0nVnOb12nakfx4CvU5QTII Ot9GAKn0ff6y+dJrs9mxAfdEfozQF1Kr44ssB20kNJ0wC1rHC5F7EFgALrb8fKaJee1M TWIwdqczjd71UhyCZ0hU1St0fXXoLQigBy/1mJ45Tp22ZEkpVKP7I7KIMnyt50Bypsrl 0c/hcWlOcO8bk3eaP9c33Pg05EEWucmS1YYYIbwN4xJmfZuoCk9WUH7ebDs5ttfVRW3X YAZdT25/dNW6+HyKHVaXwOJVeT1j7B3zyX5HwhsPbf+sbYdzS+fLYgJPH72D8HXKjFDD XPww== X-Forwarded-Encrypted: i=1; AJvYcCWEmxIJB6Bq1YYXgLUYXBRyIrgP1BVCJHE9TRto7KB88AFd55l/WgZ6JWdh3t+CjTNTTKyOPLgYcgHNPcn5iNVJ5jyxJvlWHMRhYeRT X-Gm-Message-State: AOJu0YwVG+5V8VCMQUsSO7GGV45v+HRIiED6Ufll02fAP6TNrSvtbYrX /NVfyziwTEOviRR9Llz7QgncncmFPmXANHajvAzPSm9R4aX5W8DmyhUjlY6ium0= X-Google-Smtp-Source: AGHT+IGENQe4ez4Gwyda3rsmnSjRQps4X8hzl0vGRVzINVJNtM7Np1gleBLWblptPg91hq9vLRK58g== X-Received: by 2002:a05:6808:1b11:b0:3d2:231e:4b30 with SMTP id 5614622812f47-3d23dfdef65mr3638602b6e.13.1718226201601; Wed, 12 Jun 2024 14:03:21 -0700 (PDT) Received: from freyr.lechnology.com (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3d20b68f5a1sm2433368b6e.23.2024.06.12.14.03.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jun 2024 14:03:21 -0700 (PDT) From: David Lechner To: Jonathan Cameron Cc: David Lechner , Marcelo Schmitt , =?utf-8?q?Nuno_S=C3=A1?= , Michael Hennerich , Mark Brown , Liam Girdwood , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 3/5] iio: adc: ad7292: use devm_regulator_get_enable_read_voltage Date: Wed, 12 Jun 2024 16:03:07 -0500 Message-ID: <20240612-iio-adc-ref-supply-refactor-v2-3-fa622e7354e9@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240612-iio-adc-ref-supply-refactor-v2-0-fa622e7354e9@baylibre.com> References: <20240612-iio-adc-ref-supply-refactor-v2-0-fa622e7354e9@baylibre.com> 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" X-Mailer: b4 0.12.4 Content-Transfer-Encoding: quoted-printable This makes use of the new devm_regulator_get_enable_read_voltage() function to reduce boilerplate code. Signed-off-by: David Lechner Reviewed-by: Nuno Sa --- v2 changes: * avoid else in return value check * use macro instead of comment to document internal reference voltage --- drivers/iio/adc/ad7292.c | 36 ++++++------------------------------ 1 file changed, 6 insertions(+), 30 deletions(-) diff --git a/drivers/iio/adc/ad7292.c b/drivers/iio/adc/ad7292.c index 6aadd14f459d..87ffe66058a1 100644 --- a/drivers/iio/adc/ad7292.c +++ b/drivers/iio/adc/ad7292.c @@ -17,6 +17,8 @@ =20 #define ADI_VENDOR_ID 0x0018 =20 +#define AD7292_INTERNAL_REF_MV 1250 + /* AD7292 registers definition */ #define AD7292_REG_VENDOR_ID 0x00 #define AD7292_REG_CONF_BANK 0x05 @@ -79,7 +81,6 @@ static const struct iio_chan_spec ad7292_channels_diff[] = =3D { =20 struct ad7292_state { struct spi_device *spi; - struct regulator *reg; unsigned short vref_mv; =20 __be16 d16 __aligned(IIO_DMA_MINALIGN); @@ -250,13 +251,6 @@ static const struct iio_info ad7292_info =3D { .read_raw =3D ad7292_read_raw, }; =20 -static void ad7292_regulator_disable(void *data) -{ - struct ad7292_state *st =3D data; - - regulator_disable(st->reg); -} - static int ad7292_probe(struct spi_device *spi) { struct ad7292_state *st; @@ -277,29 +271,11 @@ static int ad7292_probe(struct spi_device *spi) return -EINVAL; } =20 - st->reg =3D devm_regulator_get_optional(&spi->dev, "vref"); - if (!IS_ERR(st->reg)) { - ret =3D regulator_enable(st->reg); - if (ret) { - dev_err(&spi->dev, - "Failed to enable external vref supply\n"); - return ret; - } - - ret =3D devm_add_action_or_reset(&spi->dev, - ad7292_regulator_disable, st); - if (ret) - return ret; - - ret =3D regulator_get_voltage(st->reg); - if (ret < 0) - return ret; + ret =3D devm_regulator_get_enable_read_voltage(&spi->dev, "vref"); + if (ret < 0 && ret =3D=3D -ENODEV) + return ret; =20 - st->vref_mv =3D ret / 1000; - } else { - /* Use the internal voltage reference. */ - st->vref_mv =3D 1250; - } + st->vref_mv =3D ret =3D=3D -ENODEV ? AD7292_INTERNAL_REF_MV : ret / 1000; =20 indio_dev->name =3D spi_get_device_id(spi)->name; indio_dev->modes =3D INDIO_DIRECT_MODE; --=20 2.45.2 From nobody Thu Feb 12 10:55:42 2026 Received: from mail-oi1-f176.google.com (mail-oi1-f176.google.com [209.85.167.176]) (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 4FC8E127B56 for ; Wed, 12 Jun 2024 21:03:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718226204; cv=none; b=fBedjM2xYauDc46E11IpjzBzmiALD6DF2s/GIix+PQrdI1p8bdTM0XbdN7wAAqBcwqbEppBga7CDSKYzsQ997MqHXN1XXCbhbafqIo3f8qxPlI01dgnUWQCizl0NfF3t6tapS+v4uGU+WJmKpRewwz3PXMKjnpzd1hN99ZyP6E8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718226204; c=relaxed/simple; bh=sezQ4w6PZZve8U3ILWq1Xq5i5J6FPy2Gc64TgHqk4/s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=lO6tlpJh4HGoMIE0HgbCzHtJzVlxP05Y4vAkGda8Zb/vyPwTqqyKFN7OyeNYmVG90ti1VA1eiWzq61ak+B3eNerwf2oIQlqeqenEf6mAH7G0h0CdJBoraryMspJtP5PsWVIuAkNpZFtKdm0k3Rz5tZxYQRD+FzRRuraXc8+e5og= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=YRsdl3nn; arc=none smtp.client-ip=209.85.167.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="YRsdl3nn" Received: by mail-oi1-f176.google.com with SMTP id 5614622812f47-3d218ea7750so112098b6e.3 for ; Wed, 12 Jun 2024 14:03:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1718226202; x=1718831002; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2w2EhrQZ4+BmCMfRs36lFVBfa5pXsiS+VLdsM94tNmk=; b=YRsdl3nncMccG/IArtSdxOuiHewELH9I3v7S2k8Up3fEH+vc2rsZ6uxFu/biQi9zxd //JQioJIOhBrs66ud2SwArFWtR9pWGyuRUk8KS4ZIRQZhZdqKwv6rRQNMeHieowSnVIc KqcDBfZ9hY0U6vRNHphZBXIj1rywQgQ0yxIZIXUr9Kufv1lTGPmGLoc39rZ8QVevIBIY p3t8DZW/TgASb5xBWcc/9xwqvHgw1ftw1AfxJ5y9B4zpPkImL8j9SV80TOMH+gTW0xSy vJ/Vo68iW96AlJUV7xH9VW/FqXuGctlaEb+yezYqvd9TkOByl+eM8lvilX84VvALUrJl 7R2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718226202; x=1718831002; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2w2EhrQZ4+BmCMfRs36lFVBfa5pXsiS+VLdsM94tNmk=; b=Sde/RCWPAjbe7XzC+WskeiUHiWYJ5OSQBNxmMIBfK8ec8lu/1E1dgXZR70OH+7dhxd SWqswfQMF+hBCkCx+lOrMuGaiqaNeTeGv/tzQgLjNI8xzMh8ALRM+st+H7QMjF9kSO3H KoU7DLMYAmQA7l4be10GIVFWKyraABIPdpHVnYPl4Yyg6S958M4jl20le2V132qan1YD xKaq4cRoni3FYgVFMW6pEuqx2VsX6LSm4UwLpgMHMYbhruhsZyFGfE1U4PYEnp8F07RS 6R+Z1hhvNTl2DBUZazan56d595dFJckBfRhEAsSPixusWUPSEMDCRFOcf818DOq8AjVR CqUw== X-Forwarded-Encrypted: i=1; AJvYcCUFLISOZkjFhTV6aohFPN3cOMgMFZo894TYQlg1A2qQWQ9jvBdxnK8wUXwcKyZkTmoBuMHeM3R+urhbfRB3V1EUUuJ3Z44m85IfRWbi X-Gm-Message-State: AOJu0YzJrZu9jLDgJth1IKUD1BMju5krHb4prxWTNzhSFXe2aqZNRrrE 3zF2uBrH2Tpsw+7UKeobr1oESOwQmGpN0rpYY+bqxMcNH44H6spkNrVh4oRsSoo= X-Google-Smtp-Source: AGHT+IH+n9V+MzaCy4aZHHNtHPMSXI+bS8hlK5eCVyi4DOF1NPWgoBSrSmEm04QGkU67m4l1Ly1jZw== X-Received: by 2002:a05:6808:1282:b0:3d2:304c:982e with SMTP id 5614622812f47-3d23e0800a9mr4381718b6e.42.1718226202413; Wed, 12 Jun 2024 14:03:22 -0700 (PDT) Received: from freyr.lechnology.com (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3d20b68f5a1sm2433368b6e.23.2024.06.12.14.03.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jun 2024 14:03:22 -0700 (PDT) From: David Lechner To: Jonathan Cameron Cc: David Lechner , Marcelo Schmitt , =?utf-8?q?Nuno_S=C3=A1?= , Michael Hennerich , Mark Brown , Liam Girdwood , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 4/5] iio: adc: ad7793: use devm_regulator_get_enable_read_voltage Date: Wed, 12 Jun 2024 16:03:08 -0500 Message-ID: <20240612-iio-adc-ref-supply-refactor-v2-4-fa622e7354e9@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240612-iio-adc-ref-supply-refactor-v2-0-fa622e7354e9@baylibre.com> References: <20240612-iio-adc-ref-supply-refactor-v2-0-fa622e7354e9@baylibre.com> 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" X-Mailer: b4 0.12.4 Content-Transfer-Encoding: quoted-printable This makes use of the new devm_regulator_get_enable_read_voltage() function to reduce boilerplate code. Signed-off-by: David Lechner Reviewed-by: Nuno Sa --- v2 changes: none --- drivers/iio/adc/ad7793.c | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/drivers/iio/adc/ad7793.c b/drivers/iio/adc/ad7793.c index 5f8cb9aaac70..d4ad7e0b515a 100644 --- a/drivers/iio/adc/ad7793.c +++ b/drivers/iio/adc/ad7793.c @@ -152,7 +152,6 @@ struct ad7793_chip_info { =20 struct ad7793_state { const struct ad7793_chip_info *chip_info; - struct regulator *reg; u16 int_vref_mv; u16 mode; u16 conf; @@ -769,11 +768,6 @@ static const struct ad7793_chip_info ad7793_chip_info_= tbl[] =3D { }, }; =20 -static void ad7793_reg_disable(void *reg) -{ - regulator_disable(reg); -} - static int ad7793_probe(struct spi_device *spi) { const struct ad7793_platform_data *pdata =3D spi->dev.platform_data; @@ -800,23 +794,11 @@ static int ad7793_probe(struct spi_device *spi) ad_sd_init(&st->sd, indio_dev, spi, &ad7793_sigma_delta_info); =20 if (pdata->refsel !=3D AD7793_REFSEL_INTERNAL) { - st->reg =3D devm_regulator_get(&spi->dev, "refin"); - if (IS_ERR(st->reg)) - return PTR_ERR(st->reg); - - ret =3D regulator_enable(st->reg); - if (ret) - return ret; - - ret =3D devm_add_action_or_reset(&spi->dev, ad7793_reg_disable, st->reg); - if (ret) + ret =3D devm_regulator_get_enable_read_voltage(&spi->dev, "refin"); + if (ret < 0) return ret; =20 - vref_mv =3D regulator_get_voltage(st->reg); - if (vref_mv < 0) - return vref_mv; - - vref_mv /=3D 1000; + vref_mv =3D ret / 1000; } else { vref_mv =3D 1170; /* Build-in ref */ } --=20 2.45.2 From nobody Thu Feb 12 10:55:42 2026 Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com [209.85.167.169]) (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 2F5F9129E86 for ; Wed, 12 Jun 2024 21:03:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718226205; cv=none; b=NOZdDcaOPC7mp1VU0ZeFSvxhY0ghztdpUM/1WJlAmqHZxM+W3pt0Veg1w79r8Q3IAAsT5tQebOk0psDNS8P19PLl/6xrowhYevk6/vdSvB4F/ZR3AhmV69e5f8zNnls164+Hwfpo3ITGe/r/9/j4WTnYL2+IU1qb8c30YW1uAbI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718226205; c=relaxed/simple; bh=LHX54IPohUPO/ja4UGsPmeS+kesms5VmpdxF3oWqNgk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fv/QCKg2vhS6VzRZGFseRBC3RKRIQuAM+boGiquNMJeWDC09OLZ3T2CnKJ8UdGtub71l3NlRfzIzSTCRhWOz6hmDuUttiS0kHt4yRwGVtmRb7BC5gocMvQ5jovoegYbWPN9qL54/Gmb26Y52rPKVu9h79y6ccxIcYidLR5Zm1oc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=Y8bxFewT; arc=none smtp.client-ip=209.85.167.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="Y8bxFewT" Received: by mail-oi1-f169.google.com with SMTP id 5614622812f47-3d21e00d9cfso111963b6e.2 for ; Wed, 12 Jun 2024 14:03:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1718226203; x=1718831003; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cfd4KKhAKeSc8nJGyWlf0fHOe2Cz1V6aByHicOapUF8=; b=Y8bxFewTnYQT8RbeWQtF4iyaxR/XkICY/Mn4/LwcGymSLG6kemamvCxN8mCvEmjU27 P33Qr+UYB81awreVVQDCGnBdU25JTCeOhYCf/V6N7apxZ2Dp5cdBqWMWh+/S+iXE36lH aVJB3CxhXe0yv1LaQ7rMHZK4i6uTjz5XD5/7RoYlSBvsaWM3V4tyY+7PBVsibWaYng+v CRDbA6J2l/fqYcwzfcTbQA27kwaBUdKZjeWw/Zn/Yhavi6vpTC/l8GhFfuG0aPGwULmz FOLugfIl6huzseIBcI1mFwMEdqCrP2wMgeEfTz75G2uTJXerkta/BRpcO2DtLMP831JF MK8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718226203; x=1718831003; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cfd4KKhAKeSc8nJGyWlf0fHOe2Cz1V6aByHicOapUF8=; b=urzmmzUJ0+ffO1CK1isr+jldyzNltXxjglav4371e53WFeXHpm5N0c7Bmmycty0pRr g7ZvxRwXmzlgruIr4MT8RQDD8E9hzWXD/rNrsSqcTMdKaL2v/9d5Sm+qQfHqlWiGV/g3 pfrcPlV/6fm1bI+RLQJ3KBAi6NglnF7IATuaoM2XrC+hGvibYT/v/v/AhuLmdBch2NXg WBydYQraxg9bhIToIlNSxGHHwTJFlUDjd174nr0knY4P0Y8VIVKbGB4HyFIkzTCQ7BQI cAcck8h+r7qeg3qapCfUcbIGcyGrKcJlBmZyb9SOHhEKdI9/eIhkDN15zBdfSk3aRgBT sQHg== X-Forwarded-Encrypted: i=1; AJvYcCUYKyOe4GbkrVRqfLAscji8qpBmzB7LrVOQcOwkecJqgL7o8H2khE6BHzVthyTutp+rKbQDUHPgcuDLd08s14z8/seReS6Q3EZrsLSn X-Gm-Message-State: AOJu0YxD2ViNe4HI0MmG7TyEcPMojpMBe063LDePdBhjWlt/wIQFTO+e OBlD6ND1mlehQds6jW3UhkNg1DSzn6qjWbecIVmThXvADrOVDp81s66cw9Z13XP8uB5bo9tprpB B X-Google-Smtp-Source: AGHT+IFqU/5rjB/9qgNYmiXyV9btPuQJBs/CvDCI2j8yxhXc9NcK7vXOFCo903edhIGqelGT2FOyeg== X-Received: by 2002:a05:6808:2f0e:b0:3d2:1cfa:94d3 with SMTP id 5614622812f47-3d23e108174mr3327209b6e.47.1718226203250; Wed, 12 Jun 2024 14:03:23 -0700 (PDT) Received: from freyr.lechnology.com (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3d20b68f5a1sm2433368b6e.23.2024.06.12.14.03.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jun 2024 14:03:22 -0700 (PDT) From: David Lechner To: Jonathan Cameron Cc: David Lechner , Marcelo Schmitt , =?utf-8?q?Nuno_S=C3=A1?= , Michael Hennerich , Mark Brown , Liam Girdwood , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 5/5] iio: adc: ad7944: use devm_regulator_get_enable_read_voltage Date: Wed, 12 Jun 2024 16:03:09 -0500 Message-ID: <20240612-iio-adc-ref-supply-refactor-v2-5-fa622e7354e9@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240612-iio-adc-ref-supply-refactor-v2-0-fa622e7354e9@baylibre.com> References: <20240612-iio-adc-ref-supply-refactor-v2-0-fa622e7354e9@baylibre.com> 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" X-Mailer: b4 0.12.4 Content-Transfer-Encoding: quoted-printable This makes use of the new devm_regulator_get_enable_read_voltage() function to reduce boilerplate code. Signed-off-by: David Lechner Reviewed-by: Nuno Sa --- v2 changes: - don't read voltage from refin regulator - avoid else in return value checks --- drivers/iio/adc/ad7944.c | 54 +++++++++++---------------------------------= ---- 1 file changed, 12 insertions(+), 42 deletions(-) diff --git a/drivers/iio/adc/ad7944.c b/drivers/iio/adc/ad7944.c index e2cb64cef476..f8bf03feba07 100644 --- a/drivers/iio/adc/ad7944.c +++ b/drivers/iio/adc/ad7944.c @@ -464,23 +464,17 @@ static const char * const ad7944_power_supplies[] =3D= { "avdd", "dvdd", "bvdd", "vio" }; =20 -static void ad7944_ref_disable(void *ref) -{ - regulator_disable(ref); -} - static int ad7944_probe(struct spi_device *spi) { const struct ad7944_chip_info *chip_info; struct device *dev =3D &spi->dev; struct iio_dev *indio_dev; struct ad7944_adc *adc; - bool have_refin =3D false; - struct regulator *ref; + bool have_refin; struct iio_chan_spec *chain_chan; unsigned long *chain_scan_masks; u32 n_chain_dev; - int ret; + int ret, ref_mv; =20 indio_dev =3D devm_iio_device_alloc(dev, sizeof(*adc)); if (!indio_dev) @@ -531,47 +525,23 @@ static int ad7944_probe(struct spi_device *spi) * - external reference: REF is connected, REFIN is not connected */ =20 - ref =3D devm_regulator_get_optional(dev, "ref"); - if (IS_ERR(ref)) { - if (PTR_ERR(ref) !=3D -ENODEV) - return dev_err_probe(dev, PTR_ERR(ref), - "failed to get REF supply\n"); + ret =3D devm_regulator_get_enable_read_voltage(dev, "ref"); + if (ret < 0 && ret !=3D -ENODEV) + return dev_err_probe(dev, ret, "failed to get REF voltage\n"); =20 - ref =3D NULL; - } + ref_mv =3D ret =3D=3D -ENODEV ? 0 : ret / 1000; =20 ret =3D devm_regulator_get_enable_optional(dev, "refin"); - if (ret =3D=3D 0) - have_refin =3D true; - else if (ret !=3D -ENODEV) - return dev_err_probe(dev, ret, - "failed to get and enable REFIN supply\n"); + if (ret < 0 && ret =3D=3D -ENODEV) + return dev_err_probe(dev, ret, "failed to get REFIN voltage\n"); + + have_refin =3D ret !=3D -ENODEV; =20 - if (have_refin && ref) + if (have_refin && ref_mv) return dev_err_probe(dev, -EINVAL, "cannot have both refin and ref supplies\n"); =20 - if (ref) { - ret =3D regulator_enable(ref); - if (ret) - return dev_err_probe(dev, ret, - "failed to enable REF supply\n"); - - ret =3D devm_add_action_or_reset(dev, ad7944_ref_disable, ref); - if (ret) - return ret; - - ret =3D regulator_get_voltage(ref); - if (ret < 0) - return dev_err_probe(dev, ret, - "failed to get REF voltage\n"); - - /* external reference */ - adc->ref_mv =3D ret / 1000; - } else { - /* internal reference */ - adc->ref_mv =3D AD7944_INTERNAL_REF_MV; - } + adc->ref_mv =3D ref_mv ?: AD7944_INTERNAL_REF_MV; =20 adc->cnv =3D devm_gpiod_get_optional(dev, "cnv", GPIOD_OUT_LOW); if (IS_ERR(adc->cnv)) --=20 2.45.2