From nobody Fri Feb 13 04:42:08 2026 Received: from mail-ot1-f49.google.com (mail-ot1-f49.google.com [209.85.210.49]) (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 4E3F63BB48 for ; Fri, 31 May 2024 21:19:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717190387; cv=none; b=IgAgLe32VbxeFxhZ2cyPPnKUBKj8YcnzUHKYF8hP5rbznPpsGZ366Wx85Vv17xLZJF7VpwSekaEociqZ8ucpT/cWnFcv4i3wFIQ2uj3GbT9kUbVN/aNs7Twg63PBmiW6MzEbiZX5Bwzd/ECenFpjqeqi0c8c4Dr6iauDEfnotAA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717190387; c=relaxed/simple; bh=Qz8pW8yq0GC1/ubfC/aOUI5AKdBL3VfpTv0r8bnNztA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=galnx4tG2hbixSw3Y9MoT4xIPj1HMiPdoFbpmfWFLYMIs7H+db0FntYG2ORPa1aHzawd1gh2HbrGnOvN6p95zUR+Q0lkb1Nzox9/1d4FdipVL3FnU1Yt7Cx2l6l252RC7+km6NB6PxDeflm8cQe8v8Ntb+KxSlGg/t75UxqDCFI= 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=aEqPs0Z1; arc=none smtp.client-ip=209.85.210.49 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="aEqPs0Z1" Received: by mail-ot1-f49.google.com with SMTP id 46e09a7af769-6f12eb91ec7so1387433a34.3 for ; Fri, 31 May 2024 14:19:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1717190384; x=1717795184; 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=ckX290zz5uu8jKssyQCBCI0FA48FwJ1fiAxtXMtJpto=; b=aEqPs0Z11iMwdJcHZZjYcJRw/XhfVKHRqQATw6W9+u77wJ7hqXbaSfCVp34qYAjtJM vG2130og96zqUnX4/26gaAN0G10WNiiqRM1UP8Q+kYTrtiPXAiqgpZwdsn9Yb5OEG9Qj lTFS/vaIrJ9Me2Eb4D3DGZWqZ0cXQ948GpflQuWDIP4h1Usc4tYuz2MU9nFEDCSKMBZN eO9vh78TaY9bq2hmTWj4DKmIt5DCI1OUclod04OH43vdLoygwH2YhOBHAx9Ns2c4YTbQ t+N74neSsR7KVLgswYeBlNjfkqBEsFUMz9vlJt7wwi7OoNybUCn1isr75V1UaW7LKZ+3 9UWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717190384; x=1717795184; 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=ckX290zz5uu8jKssyQCBCI0FA48FwJ1fiAxtXMtJpto=; b=r8syvUIBo2DPTlNs7Hs9OdXh0e3UNCyxxe9tmGl7PdpRQo/PIESdeE/lenB112mFdK 9mVjqCA0sWidt6duc7I/s4ik3F6V25TYP48lYbkSz3EiVpvnihpNspcUVqIKyThSohvg n6ro+bvBYQzF5u342ks+4TgbMxoR4qN6iYl3VfB0rUJFhci08iFaqn0pw4LeaD1xbv81 nQp0kB9/xobisUvXBILtjkln2zkKUbr1/8hy3OEUHV1MMvqZPNnaOekat8Lsq8O5W+wt zYEghaUHcIKIyp3xyovUcOVKpbNnWoFSsBq/KmshzSdLUEv0/oDQeKKT97xZW70A1/Co yxPw== X-Forwarded-Encrypted: i=1; AJvYcCVqMEXGLtSqOCgYZadoka9tFEgfFqVqBF+rmppEoJQgkV7WeGZ0S4ER17kdZ+9p97ybejjNm4QKczCRB3L+8JhwCZl0mK9aKJQQecWF X-Gm-Message-State: AOJu0YwTSxShMkX7YYdHrI/8p15vxf1HaC/B6SuZn5X1H79MKXbeABwv 9BAr17gXUh0JniFMqixq9TNpM1oaMQpS5+GSDeVCd44LpBxzOGZW9WH/Tx8vjuS3L6TUKxmfk4L / X-Google-Smtp-Source: AGHT+IEau7lS2dPKfMn6MIumlMT/ZA8JQPuE5qugKldj0LRxpSaUAlV7RFTk4iq5sKbMb8HEHld1VA== X-Received: by 2002:a9d:6548:0:b0:6f0:cf72:5d80 with SMTP id 46e09a7af769-6f911f9fa84mr2949949a34.30.1717190384232; Fri, 31 May 2024 14:19:44 -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 46e09a7af769-6f91054f6c5sm470176a34.38.2024.05.31.14.19.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 May 2024 14:19:43 -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 1/5] iio: adc: ad7192: use devm_regulator_get_enable_read_voltage Date: Fri, 31 May 2024 16:19:32 -0500 Message-ID: <20240531-iio-adc-ref-supply-refactor-v1-1-4b313c0615ad@baylibre.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240531-iio-adc-ref-supply-refactor-v1-0-4b313c0615ad@baylibre.com> References: <20240531-iio-adc-ref-supply-refactor-v1-0-4b313c0615ad@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 --- drivers/iio/adc/ad7192.c | 98 +++++++++++++++++---------------------------= ---- 1 file changed, 35 insertions(+), 63 deletions(-) diff --git a/drivers/iio/adc/ad7192.c b/drivers/iio/adc/ad7192.c index 0789121236d6..e08bf066b3f6 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,54 @@ 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"); - + ret =3D devm_regulator_get_enable_read_voltage(&spi->dev, "aincom"); + if (ret =3D=3D -ENODEV) st->aincom_mv =3D 0; - } else { - ret =3D regulator_enable(aincom); - if (ret) - return dev_err_probe(&spi->dev, ret, - "Failed to enable specified AINCOM supply\n"); + else if (ret < 0) + return dev_err_probe(&spi->dev, ret, "Failed to get AINCOM voltage\n"); + else + st->aincom_mv =3D ret / MILLI; =20 - ret =3D devm_add_action_or_reset(&spi->dev, ad7192_reg_disable, aincom); + /* AVDD can optionally be used as reference voltage */ + ret =3D devm_regulator_get_enable_read_voltage(&spi->dev, "avdd"); + if (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 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; - } + "Failed to enable AVDD supply\n"); =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; + 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 - 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.1 From nobody Fri Feb 13 04:42:08 2026 Received: from mail-ot1-f50.google.com (mail-ot1-f50.google.com [209.85.210.50]) (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 05D0676413 for ; Fri, 31 May 2024 21:19:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717190387; cv=none; b=Rv9bXDgztHf77y56rG2FoAHIg9jqhby8rokLeWIJwgxVvQNF0Cjyc5kz7VEtzZNv+HOo8Ht2O8KwwQ7IRlTlcrOGflojITM/gPvPm9LZ5IJ7CdeRftw9fwiEN0Pf9RDrIw4pasjAvLPlR3/nAiQdLbONiGDFnh1CtgdbQCSAbk0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717190387; c=relaxed/simple; bh=Js0YVyBPm/E3WxsjG5z4McvboiBRBwpr7xybmk/0tP4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CDX6F2fUf/mknwPMB1T4qUN5qiTUjw/DTMB7DH2BxPtSLFVZMW2RXMaoDugMEAg7TB0bk3LPMiimAyqeM+tSbWxuvoDjI2CzH1vtJJkCCdbvFRb0xSmqmydSQUu3LswLF/tIPi3+MuXQ4div+NRDN93LI/4G6l7mEEHnmITOie4= 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=TagLpnQC; arc=none smtp.client-ip=209.85.210.50 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="TagLpnQC" Received: by mail-ot1-f50.google.com with SMTP id 46e09a7af769-6f120ae1ca3so1361922a34.1 for ; Fri, 31 May 2024 14:19:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1717190385; x=1717795185; 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=h6K6MHKU/orn8S+VKImZw/DZY35U7Zc26RBfAXI+Msw=; b=TagLpnQCDNYhpxS3acth5vPJhgVXybe8PVEs3xxaFsMZEry4W5oOfAQ4lLWzlA5UgH 4LP88Gj+SmwKcd8dA7TamR9BKdUvo/j72PEyq988UxC/ycnpa+aWdMC3QgMC96g0SMDf yZQiqddRzSwWS6bEtmVBPdULaF9ooJkRyir7UYqAxlnpzPfvvusleZM3kZtimTkrpxmz TPDMovmw0ZJJkzKOVcxvexKiyqII/iK1BcYfH0wsPUH/x+lwpRwg4EHrOHUgsOjq5lvU Op7MP7oyvf4v+U4VvtWAP3GVg2FkBQ22IcNSiB+uQPlOZo2lcDfUEp0YrKEVzP/fUU9I ZsSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717190385; x=1717795185; 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=h6K6MHKU/orn8S+VKImZw/DZY35U7Zc26RBfAXI+Msw=; b=MKyEMpHjmjiJe2GZRmknx2DnFoR0RGSqYtKGM0V+N6PLTTW1f54kN7nWybKY/IpZvA ejTorFoji6ypmUpS93n2tdGYmyVKqNOucfcGcOW7Rz3WwtkinFFGmfdyOggS5jzmLj88 qv7+/5ue6K8gsbrMz/8EW1CP9XjaUOMIuQQNfb2RHXwlJESJTwaX+fZgOkBJAlUCLu2o CWlGupNg5inlTKn+RDwMiiy9CgOW/c0jfI15HDxHlsEvftPsoXvpO/49oSafswbsQhwH UXV2sp/BwVQMSgM/FvsaC7IV8bfL+07kBrBEbRqpW5yFhOwyBgNkkknQWeHxulX3AXrT sIuA== X-Forwarded-Encrypted: i=1; AJvYcCVLDBV5s8+ljNnnjFAbEgg+tQY4PR3pHz6rQ2xO84fDZ4td5miwKC8BdL2OpC5a+4yr9ZX2zIvpkiIpmEPTgdftAsYFp37uyYokYCxT X-Gm-Message-State: AOJu0Yzrckr0ROc8h060jBMe2jZqn9HTw5v2yOtdXcYH2KsDjdjFHb4v JZy1/CZed3ZaW7fZjGknjTgYfHvuXQxF4JEl0f5k7Qc3ojR85LbLvX3hgEGMfN0= X-Google-Smtp-Source: AGHT+IE0Vyt+zzbJTkqMnIXs9WS274qnPNRombwHnz/DhsObFIFbFv8rZmMnOeEGBJQY3G9nmBrm3Q== X-Received: by 2002:a9d:6206:0:b0:6f0:e4b1:587a with SMTP id 46e09a7af769-6f911f23d9bmr3449349a34.8.1717190385136; Fri, 31 May 2024 14:19:45 -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 46e09a7af769-6f91054f6c5sm470176a34.38.2024.05.31.14.19.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 May 2024 14:19:44 -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 2/5] iio: adc: ad7266: use devm_regulator_get_enable_read_voltage Date: Fri, 31 May 2024 16:19:33 -0500 Message-ID: <20240531-iio-adc-ref-supply-refactor-v1-2-4b313c0615ad@baylibre.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240531-iio-adc-ref-supply-refactor-v1-0-4b313c0615ad@baylibre.com> References: <20240531-iio-adc-ref-supply-refactor-v1-0-4b313c0615ad@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 --- drivers/iio/adc/ad7266.c | 37 ++++++++++--------------------------- 1 file changed, 10 insertions(+), 27 deletions(-) diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c index 353a97f9c086..026db1bedc0a 100644 --- a/drivers/iio/adc/ad7266.c +++ b/drivers/iio/adc/ad7266.c @@ -25,7 +25,6 @@ =20 struct ad7266_state { struct spi_device *spi; - struct regulator *reg; unsigned long vref_mv; =20 struct spi_transfer single_xfer[3]; @@ -377,11 +376,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 +390,17 @@ 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; - - 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 */ + /* + * Use external reference from vref if present, otherwise use 2.5V + * internal reference. + */ + ret =3D devm_regulator_get_enable_read_voltage(&spi->dev, "vref"); + if (ret =3D=3D -ENODEV) st->vref_mv =3D 2500; - } + else if (ret < 0) + return ret; + else + st->vref_mv =3D ret / 1000; =20 if (pdata) { st->fixed_addr =3D pdata->fixed_addr; --=20 2.45.1 From nobody Fri Feb 13 04:42:08 2026 Received: from mail-ot1-f48.google.com (mail-ot1-f48.google.com [209.85.210.48]) (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 4776E78C6F for ; Fri, 31 May 2024 21:19:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717190389; cv=none; b=jjXx7Q6K3V30t64Z7KT5VAj8z24d5zwlVb0KI8h55pShOb9t9Fc3RsfS7S8cBwBCsogqGTM/ibhP6ixyD52ThEMP2uTi8P8DWHwkp2w3Rns4Gd8NR2I8v94BUkIWGogpdaH36eH1gP5L639y2x7Vr75PWU3yRENxkYKitS0ulGw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717190389; c=relaxed/simple; bh=Rk5dJF2+TsUg7IjzcoRV/lfTyzQjoNRqKiXdm3UK0Cs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=E0Slq3R/qcEzJYnxwI3PNl09+QG9th5is09lj1igDEUnvCotHLk84De+BV9hUBuFGhLPNhlGOIL1FO9Z7OvEF9T72DadJsx0NxhckMr87DsZz/uM4TySX9DkgbAicHQLHqEIhEvqWViF2xnsQrS55Gvze1jdjq8fVxhaozFEYKg= 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=107lfdKu; arc=none smtp.client-ip=209.85.210.48 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="107lfdKu" Received: by mail-ot1-f48.google.com with SMTP id 46e09a7af769-6f8da5e4850so1361608a34.0 for ; Fri, 31 May 2024 14:19:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1717190386; x=1717795186; 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=9A//l2lq6uILJm9YAojX9V6DCWgOioR04paBfYh0fho=; b=107lfdKuw0FJ0OAefK4gEdmGxm68DVH97Usj30qV9cLCS3ZPsiJgJLf2+Lu20P5czW L2hrB5cKF+oK3itpwoQXLTFhbn8bG4PiECdOozsUgYjqqEFIfs9+j78oOWzS1HaIvQUW aBz6s7qo2xrwztNqN/zY5fsShCFPK4v7mXfI2rAD3RIn6Kb3KUaihDrqhMBPGVRtZfoy kYFJmExIcbb0jw53hykMFWbs+1rQ2OnVolRd5eNYf6JmQY4ndWdq8qFXZQ40VMji/e9G u23EGuR+X8qcw01f2H/ew9xSNZJD2eQDE7lV4HXf1NqK1us7fmMUdQe6asYwNl7wD/7s r6sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717190386; x=1717795186; 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=9A//l2lq6uILJm9YAojX9V6DCWgOioR04paBfYh0fho=; b=exKTE6o/qfTmznHQnOA2JbL6yQI6jfwVsyD0nt09bHzemhNdDjRFbB+TbXr4XuEyon sEhHVZ+4j9MIcuAbEyrpOKWhTvk52vmCC21wOhC7++G3C3pvM5wpTOD0yYJqNvU27hzi eT+eBgiE2U9rG8tfVjBlj4ksrClE5Ox6VNwWRi0G7ZSdkINk3jisrDEIJjUjcHewIstF Kc3p3Spwj4y6DDgICB5nwn1LW4SMYugJZBkQnSxL8cl5Pnn7OdK6hsrTBo6OOADGwXtV xbouBMz0SYtCiBdz09bn6+HaVFErIt+8ej8dPQDozqmXlKl5dEaGhuVf2+l2kzXIN4wB VMmQ== X-Forwarded-Encrypted: i=1; AJvYcCXcDbPDFolpde8OhiJ4+NNOLffGxf9GMlo1wnZWQJYfD7EkRXsSj79TT3P3jSpLA0mzUcsdsyaFh4I80fC0Q52pvL0EckIJzJipzIkr X-Gm-Message-State: AOJu0YxjAzU3lDrKB/R6e7Uwr1CSG4UgNdwsDmF6tO0IXtY6CJzA5+yV OIBpYXa2yNMy8LrnX4JLq2y65krHl9P7U5+6Htq2lZDCE80QS6l4AI4EoeREOEA= X-Google-Smtp-Source: AGHT+IFZqCqnS3kUd3hk3iucp3Cuy8ZZvP7npz4Meb1RMFDg8tPygLXtuWL/5NNZMCRB8EHI2oNxdw== X-Received: by 2002:a9d:66c5:0:b0:6f8:f355:8c08 with SMTP id 46e09a7af769-6f911f3fe70mr3122093a34.21.1717190386027; Fri, 31 May 2024 14:19:46 -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 46e09a7af769-6f91054f6c5sm470176a34.38.2024.05.31.14.19.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 May 2024 14:19:45 -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 3/5] iio: adc: ad7292: use devm_regulator_get_enable_read_voltage Date: Fri, 31 May 2024 16:19:34 -0500 Message-ID: <20240531-iio-adc-ref-supply-refactor-v1-3-4b313c0615ad@baylibre.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240531-iio-adc-ref-supply-refactor-v1-0-4b313c0615ad@baylibre.com> References: <20240531-iio-adc-ref-supply-refactor-v1-0-4b313c0615ad@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: Marcelo Schmitt --- drivers/iio/adc/ad7292.c | 40 ++++++++++------------------------------ 1 file changed, 10 insertions(+), 30 deletions(-) diff --git a/drivers/iio/adc/ad7292.c b/drivers/iio/adc/ad7292.c index 6aadd14f459d..aad4b782a3d2 100644 --- a/drivers/iio/adc/ad7292.c +++ b/drivers/iio/adc/ad7292.c @@ -79,7 +79,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 +249,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 +269,17 @@ 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; - - st->vref_mv =3D ret / 1000; - } else { - /* Use the internal voltage reference. */ + /* + * Use external reference from vref if present, otherwise use 1.25V + * internal reference. + */ + ret =3D devm_regulator_get_enable_read_voltage(&spi->dev, "vref"); + if (ret =3D=3D -ENODEV) st->vref_mv =3D 1250; - } + else if (ret < 0) + return ret; + else + st->vref_mv =3D ret / 1000; =20 indio_dev->name =3D spi_get_device_id(spi)->name; indio_dev->modes =3D INDIO_DIRECT_MODE; --=20 2.45.1 From nobody Fri Feb 13 04:42:08 2026 Received: from mail-ot1-f45.google.com (mail-ot1-f45.google.com [209.85.210.45]) (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 E9F4180032 for ; Fri, 31 May 2024 21:19:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717190390; cv=none; b=PLyYGcZKumy/7Ew2Pu99Tc4OSo2mLGKfhfQDlpCYDfMYjIeYEGK6jF51LOLsTNMf8PYrbCS2OfprCuANmxzF1c1NOiUaheal5VetCPHvqR8kM6xMFDv0JA3na93aHqIwlQWrysH2hHT5GSisseRfvcDHBm9ZcAeauPeDEl8er1I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717190390; c=relaxed/simple; bh=djS+IstEEdXks4E5EEDzjApEn0V5RdWip5LOqYcuvWY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=jNNad2nDp2aE61Bqqn9dRC6qVkKEYoLaVMGNT762WiAEm0clGGnMVCdSvut4lMgfd7UUJ4FqP8SuQn6pbZIRoSagujx3GDTV21YKkR9fWu8aQ0GN7An2Iah3GVTI93VuyuXq+tGTz9pdmZs0plINq3XJkn2zKGLRVam8QNmpOIg= 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=tSRAnerk; arc=none smtp.client-ip=209.85.210.45 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="tSRAnerk" Received: by mail-ot1-f45.google.com with SMTP id 46e09a7af769-6f855b2499cso1554678a34.1 for ; Fri, 31 May 2024 14:19:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1717190387; x=1717795187; 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=YbruLAt03fLjpCxeoEnwGhqppmXvGlKTLyJ4VcLSIfs=; b=tSRAnerk5KRJEGjFE5vM/YlwMV836v+xL2j3odbVfO+oWstKhUHtnx0u1G/ZP7Zx7g rSA4oVy9z7Kp/mYpeJfDhBIiga2sYY7V79kZ9QSIWiHTYuABQIDKlEuLq8pd6uY3ZgXb s3Wjnuyt6Df6tvSX4vSmDHK9jLjC22p4Dji0zYTPJJziwfcOpiWx9B4OA9SLQchiz+NY 0qkjCqqpbUPDWGuiRggXxZs+lig9hKmvzxRVEjBOsxgAooLS/NBjRjpJrNMm6eeONmnJ maWYQvHWPj9BoC40kgtlsFrL2qq7399K1WrihnZXqZx6MQaDdstqA7bXkQ11tVHBemNc uM8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717190387; x=1717795187; 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=YbruLAt03fLjpCxeoEnwGhqppmXvGlKTLyJ4VcLSIfs=; b=p0kBu7B+WYk76vADiWY0r7W0eMi/cj7bCz1PTYb7Nww4v79smq5F1wFtVEh+KTggDS vixnZN1VYYIFkmFHGHKw4DvoZjPvk6gscVWouVRFKMsc34YxsMsmKOKEGi+hAGwHf3pr DWSdpFk+3N91rgFTrmMhLjrjMAbnnmR8iqjFQYq1AAV4T/axbDjBHuw+OHzmCNnGfwh5 Ps0utRUFcjbwb1hlD5J0nqSSUnnwtmWmRjLN6Si6vqOWF+qPp56UFvCRyGJeJdD9CFXV KlMXh+xoTXyvHOUdzjWw+kJ/AEvKlEVLGJa4ZMUllYA3mIwx2Sef3Ndk9FiAFtCiJAhy pGVQ== X-Forwarded-Encrypted: i=1; AJvYcCU56yul3N+Y+Y5YQmbujMJFvJjrItIxu1UsLgNhmmEQrBPGc6jqz01aKN1QTaBce0mx2XHkkw8lNxcHEzdFxDhl5bgjKBhowqVyYPmC X-Gm-Message-State: AOJu0YyUTZaqxl8dmb8Kfx23sxB5+9JvdnriW6NcaQhAG7cM6T8lFYW1 mKbovAbsAa+g19DMpKjGEf/AE3E5R7kFozzdWDwb0hRpAtPEBf+taB2ACqCO+Fc= X-Google-Smtp-Source: AGHT+IFkz+cdXrbneX907Jl5UcLu0PioPNnv+0/npiT6mmWiF18kZTPeeLG91XQTRcQYGozZr/qoBw== X-Received: by 2002:a05:6830:1e52:b0:6f0:6864:eee6 with SMTP id 46e09a7af769-6f911f2fea3mr3079003a34.10.1717190387135; Fri, 31 May 2024 14:19:47 -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 46e09a7af769-6f91054f6c5sm470176a34.38.2024.05.31.14.19.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 May 2024 14:19:46 -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 4/5] iio: adc: ad7793: use devm_regulator_get_enable_read_voltage Date: Fri, 31 May 2024 16:19:35 -0500 Message-ID: <20240531-iio-adc-ref-supply-refactor-v1-4-4b313c0615ad@baylibre.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240531-iio-adc-ref-supply-refactor-v1-0-4b313c0615ad@baylibre.com> References: <20240531-iio-adc-ref-supply-refactor-v1-0-4b313c0615ad@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 --- 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.1 From nobody Fri Feb 13 04:42:08 2026 Received: from mail-ot1-f45.google.com (mail-ot1-f45.google.com [209.85.210.45]) (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 1381482498 for ; Fri, 31 May 2024 21:19:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717190390; cv=none; b=RN/kfyo6tU43vSDjKmPjsNWf9k9H2dLh00jxGmQ39/Sd6pFcOmYMy1HzJaB6Q+cyY+114G+2rdx1CZCFSnwrs/6BgUCgNDnPsOkg89zllVbcs6QCf8sodF0N7uIo5m55xtSjx6VZbQGLlcdLmlQ8OUuAoYqy7qWE2z7XOe333Sg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717190390; c=relaxed/simple; bh=cTiNyK1ys4ahQNaXNuf6ikv8kxy/TxXonMWyDgt/QB8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=uMLAJE57TaVtW0LUae8TaBIFzyuUzSUk01QX9wlRdBuysTc4+3xA6bAA+9mWgMmYwY63i39wVRxfO+MsAZjCgVv5ZUDQDXQ4BHVJCIFc+YakYF0DM0S4LIwgE13Mo6Cvm8kRAYmrXQrzbOM61856Jc8TKLrSO9B2kqlukmslN9o= 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=dmRLypdA; arc=none smtp.client-ip=209.85.210.45 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="dmRLypdA" Received: by mail-ot1-f45.google.com with SMTP id 46e09a7af769-6f12ff2da3fso1374738a34.3 for ; Fri, 31 May 2024 14:19:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1717190388; x=1717795188; 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=qx10f6FDnpDWXmsP3ksz4V0Ywa+gZQfSKGlvjoHLNnA=; b=dmRLypdA+V/mDE1CFkoDEtGHeMt499zJ6SlLgJG0P78ZREWzY9dU959JQEQiclukIn T7Jhv0v8qUKab9EpxpdlUQj0VfCjGXcQBYTvhKNcx3d5vtpZHoPpwgA6jSie8s64ryFk 7l6tZfqA+s/FmedYqerBP/elAd5oQ2y2FacPlPCkZMOwvKT/iL1Uf7zYxscxBHaKLdiT +YEPrDT7EpkLiu0O5QP38Xi/sZnHZYbsqQ5eMSnPet/7KblQz8nphDEGWIRAl4Vdl/7h owBlz0z5EKmjUp9JbwCUIJxCz6Kext8AXb0/ocnj7VCyS7g6hnHoG6R/kIf+Wm99iZjm N7hA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717190388; x=1717795188; 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=qx10f6FDnpDWXmsP3ksz4V0Ywa+gZQfSKGlvjoHLNnA=; b=oxUt6uIwdzeG7X4PZEWYLTiYI9q2BhOnis3uXGUgKHlgkvWApGTkhOkBtDtsYlGxLm gkGx0ql0SkMMw6sAXiG1SgSWo/NczfFqdcBWM7eQNEn2SAqMpj1Zm8kj3BIrX+z+KA5w wssdLN+5hhZgvsx3jmkpgQFslij/9+nERppPRqige0WNh7pNyl4mqCvHKs2r069E8pQq HgqLfgR3UD/RXHuVRSBk4412zsXnZVoaWfN/9Fqw1dCQw9J2Jrk0SU656D58b2RevaE4 zy8vQfkUHDxIGPy34GEH3qCd4gtmyJo5vMUZoCh4SVAVgaf69sF9ekEitfWrY9DNBWIZ nLDQ== X-Forwarded-Encrypted: i=1; AJvYcCVEV3BPiRBPFNvEX/a6t7wI7kkCfOd7KPTPqXdwDxNhojq1VPjoyxt5ZFV92H6auGZYoQ745Af2TMhhT6tl3rbLuKAgnOh184Q10bji X-Gm-Message-State: AOJu0YxmnVdOQTwODULJ4hlEIo+PczPtYSaYGBE+JUsHI7fxagtDNuFq va3QV+gtR48GNM95+XUIA1DYaqyRotvmBXvFT27z9pacJdJhi29ZC6Dmxj94oEoMyVGEi9y5rHQ X X-Google-Smtp-Source: AGHT+IHecu+MAUNmrjh2sKi9JnDPh/FwFOg+MlU6Ki9NaEl1LqgtU9wELvhFrSYdVexLapJxPEZI9Q== X-Received: by 2002:a05:6830:151:b0:6f0:5cd9:d5de with SMTP id 46e09a7af769-6f911f3fe26mr3085558a34.18.1717190388071; Fri, 31 May 2024 14:19:48 -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 46e09a7af769-6f91054f6c5sm470176a34.38.2024.05.31.14.19.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 May 2024 14:19:47 -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 5/5] iio: adc: ad7944: use devm_regulator_get_enable_read_voltage Date: Fri, 31 May 2024 16:19:36 -0500 Message-ID: <20240531-iio-adc-ref-supply-refactor-v1-5-4b313c0615ad@baylibre.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240531-iio-adc-ref-supply-refactor-v1-0-4b313c0615ad@baylibre.com> References: <20240531-iio-adc-ref-supply-refactor-v1-0-4b313c0615ad@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 --- drivers/iio/adc/ad7944.c | 62 +++++++++++++++-----------------------------= ---- 1 file changed, 19 insertions(+), 43 deletions(-) diff --git a/drivers/iio/adc/ad7944.c b/drivers/iio/adc/ad7944.c index e2cb64cef476..42bbcb904778 100644 --- a/drivers/iio/adc/ad7944.c +++ b/drivers/iio/adc/ad7944.c @@ -464,23 +464,16 @@ 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; struct iio_chan_spec *chain_chan; unsigned long *chain_scan_masks; u32 n_chain_dev; - int ret; + int ret, ref_mv, refin_mv; =20 indio_dev =3D devm_iio_device_alloc(dev, sizeof(*adc)); if (!indio_dev) @@ -531,47 +524,30 @@ 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"); - - ref =3D NULL; - } + ret =3D devm_regulator_get_enable_read_voltage(dev, "ref"); + if (ret =3D=3D -ENODEV) + ref_mv =3D 0; + else if (ret < 0) + return dev_err_probe(dev, ret, "failed to get REF voltage\n"); + else + ref_mv =3D 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"); + ret =3D devm_regulator_get_enable_read_voltage(dev, "refin"); + if (ret =3D=3D -ENODEV) + refin_mv =3D 0; + else if (ret < 0) + return dev_err_probe(dev, ret, "failed to get REFIN voltage\n"); + else + refin_mv =3D ret / 1000; =20 - if (have_refin && ref) + if (ref_mv && refin_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 */ + if (ref_mv) + adc->ref_mv =3D ref_mv; + else adc->ref_mv =3D 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.1