Received: by 2002:a89:d88:0:b0:1fa:5c73:8e2d with SMTP id eb8csp2172353lqb; Mon, 27 May 2024 10:03:35 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUYRgH2RjcQ3LLvWOE5pTK6fv8zi71nL2ljMYCYwWCVyyqBWwrTv2yW67OXKIpH9TpjvcO7vDrwJNQJeS2WlZ08I7ffPK2o8+7fIUt/pQ== X-Google-Smtp-Source: AGHT+IHJXJH63fvwIGSBuvMntMCYsFAwSHtEeJTqm4BZ39Ug4st1usbzcMxpF5SCUdCdB91hi4yZ X-Received: by 2002:a50:8d8d:0:b0:572:a0f6:c8a7 with SMTP id 4fb4d7f45d1cf-57851a32698mr5133815a12.42.1716829415361; Mon, 27 May 2024 10:03:35 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1716829415; cv=pass; d=google.com; s=arc-20160816; b=h0oz7Jakcdh+oMBlzIRyD1Y4xodG/JqyBWf9E4bo3Z/jR9bD1rNgNPoq+HjxPO/RbL MmfuPvKhDJoKNxiJAE85ZAG6Ou/wfUTNqsakiiYvWi5s98lMNJxITqHEuEqArkGXx8cE VMgNzfTY7/rNAjiRc6aHhVM58Y7+/9KHRfDIr/GXXTL9POqzcJO9fWFOQsmcnmGK302t KETARdRlDaB7iVJwTPxHIQyTXg5ih24Z+b3OHUJvcfqdVSNqQINWe+GSX8eFGWLKPhlZ HbfuIdfh14FOLgodABzPjLVFS+XHHwFeDbBVQPD8zqijW8ZImQLQZmMUc5dj0oP+rIDe wWJg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=reply-to:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:subject:date:from:dkim-signature; bh=aOXoMWZ4LkGsM9eK+vlAUCwk+NxcPgclYulggR0l3c0=; fh=LhdatDguh+IuN1lDyS6rzhx9ubttSYYZpDCGFgekH1E=; b=pk26gLn4reZxO3ICNeXtsGMi18dJE1dVATFAn0c+2KF/d3c8X67DhrHt4EQQUB3jPW m1fly+30ffmZ1wcOhY+y+4Q2H2tubAikJZJ2URScJwYHgWBzs+omFdcpDaWWQFEpGk5D rLYadlkro0ODa/7tW0g4J2BMeUiubLSVGRWCBOKb8lKbmmhtN8V8Yh68SQJ9rwOCS3Kk xQ6RdMguVkMPKK/u33OiMxwSrQvffBzm+G2OJqqdsxfCQvUFM7vGqmsA+MCft/CoayLm GosswKfQxt1gq6s33cFOasQYgxmd7MT0NHClLRdT5d19YlzripXEVuwqBo1u31BX3An7 /r3g==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=WyZkKXII; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-191274-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-191274-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id 4fb4d7f45d1cf-57862928629si3332150a12.23.2024.05.27.10.03.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 May 2024 10:03:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-191274-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=WyZkKXII; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-191274-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-191274-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id E86B61F20EAD for ; Mon, 27 May 2024 17:03:30 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 45C9315FA7C; Mon, 27 May 2024 17:02:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WyZkKXII" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 306AA15EFC2; Mon, 27 May 2024 17:02:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716829361; cv=none; b=adIYDljgim8gH1M0VMPHEuPJm32qqGoyBhXaqqTkjgANKU5xf70TeUBSNRwsCZBdNjvt7Xj4kggv9nlsTY9WfZqXsmIf9yJdS+Qcwf57F2KDT9S/+s5ErPv8+podNW+ulyNxdNGVR5GOke7xvtVpGmxSenmUPUbh2wylU+u9aDM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716829361; c=relaxed/simple; bh=F0lzZ14fTXQrTxKyI8DjrGPHhCUno1OsDNbUvitqXhw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XcKgC1+95zrYASC51IPcCYXfaSbz9jJqBTolav3bjURqWxLZ1Q0Mu1h7XY/xMg4mln1VkOd5W3HTDaBx08LXJ7rZFgUc2BUuu+76FCy2wtZaEGyueI6qDho24xkfbvsmOY4+JL7c2SumI6+QKc3EwY4Oe4sygMn0LP1cYu0jI7w= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WyZkKXII; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPS id D5495C4AF0E; Mon, 27 May 2024 17:02:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1716829360; bh=F0lzZ14fTXQrTxKyI8DjrGPHhCUno1OsDNbUvitqXhw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=WyZkKXII8QokgdRtMUTyHYA+dURVg4TBJekC8eQ9umm0fHl2rOCeFtVKy5Ia7/iBQ qj2j5Zdm0qb7L56CVGZwkj5dbc6b6eaJTASvZ7fnTzDIOienEFvTH7f+Pn9FOp3NJq 5nqryn9SURtNZ1T9FpwO3n/qed5Hv/XtedIMFFgGFMnVIN98YlsDb8azK1Tkjbr8iv RUWp8bcp4Ckov51jdgyQus0mV3VMA9UeTkZNnt3vqmbjvf1qE5xbOMtr/crX647EZJ 5PdRMTS0Q97scjBoSUkDlgQ0/vCGi9A1bfv5mZfJjl0HgiHKSUfgx1PpFqWa56SxQi rC/goRvBwX2GA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id C93BAC25B74; Mon, 27 May 2024 17:02:40 +0000 (UTC) From: Dumitru Ceclan via B4 Relay Date: Mon, 27 May 2024 20:02:37 +0300 Subject: [PATCH v3 4/6] iio: adc: ad7173: add support for special inputs 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: 8bit Message-Id: <20240527-ad4111-v3-4-7e9eddbbd3eb@analog.com> References: <20240527-ad4111-v3-0-7e9eddbbd3eb@analog.com> In-Reply-To: <20240527-ad4111-v3-0-7e9eddbbd3eb@analog.com> To: Ceclan Dumitru Cc: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Rob Herring , Krzysztof Kozlowski , Conor Dooley , David Lechner , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Dumitru Ceclan X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1716829358; l=3852; i=dumitru.ceclan@analog.com; s=20240313; h=from:subject:message-id; bh=MRZQD3ZIgMLGillTt7a6yf7hgjX5HZgUNfhbQgcmjz8=; b=97SV4ZcceTfhjZr8VFafOTz30DxaJpzMSLfeNzIbuf9lvaZfKzxuPBJnUuJ365+Rsvj+6xcUr vnMYGNtt6p9BFooYk4lIvdqKHs7B2yhTI/nh43kwvW5gqbTdu2EY9zH X-Developer-Key: i=dumitru.ceclan@analog.com; a=ed25519; pk=HdqMlVyrcazwoiai7oN6ghU+Bj1pusGUFRl30jhS7Bo= X-Endpoint-Received: by B4 Relay for dumitru.ceclan@analog.com/20240313 with auth_id=140 X-Original-From: Dumitru Ceclan Reply-To: dumitru.ceclan@analog.com From: Dumitru Ceclan Add support for selecting REF+ and REF- inputs on all models. Add support for selecting ((AVDD1 − AVSS)/5) inputs on supported models. Signed-off-by: Dumitru Ceclan --- drivers/iio/adc/ad7173.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/iio/adc/ad7173.c b/drivers/iio/adc/ad7173.c index 8a53821c8e58..106a50dbabd4 100644 --- a/drivers/iio/adc/ad7173.c +++ b/drivers/iio/adc/ad7173.c @@ -65,6 +65,10 @@ FIELD_PREP(AD7173_CH_SETUP_AINNEG_MASK, neg)) #define AD7173_AIN_TEMP_POS 17 #define AD7173_AIN_TEMP_NEG 18 +#define AD7173_AIN_COM_IN_POS 19 +#define AD7173_AIN_COM_IN_NEG 20 +#define AD7173_AIN_REF_POS 21 +#define AD7173_AIN_REF_NEG 22 #define AD7172_2_ID 0x00d0 #define AD7175_ID 0x0cd0 @@ -145,6 +149,8 @@ struct ad7173_device_info { unsigned int id; char *name; bool has_temp; + /* ((AVDD1 − AVSS)/5) */ + bool has_common_input; bool has_input_buf; bool has_int_ref; bool has_ref2; @@ -215,6 +221,7 @@ static const struct ad7173_device_info ad7173_device_info[] = { .has_temp = true, .has_input_buf = true, .has_int_ref = true, + .has_common_input = true, .clock = 2 * HZ_PER_MHZ, .sinc5_data_rates = ad7173_sinc5_data_rates, .num_sinc5_data_rates = ARRAY_SIZE(ad7173_sinc5_data_rates), @@ -229,6 +236,7 @@ static const struct ad7173_device_info ad7173_device_info[] = { .has_temp = false, .has_input_buf = true, .has_ref2 = true, + .has_common_input = true, .clock = 2 * HZ_PER_MHZ, .sinc5_data_rates = ad7173_sinc5_data_rates, .num_sinc5_data_rates = ARRAY_SIZE(ad7173_sinc5_data_rates), @@ -244,6 +252,7 @@ static const struct ad7173_device_info ad7173_device_info[] = { .has_input_buf = true, .has_int_ref = true, .has_ref2 = true, + .has_common_input = false, .clock = 2 * HZ_PER_MHZ, .sinc5_data_rates = ad7173_sinc5_data_rates, .num_sinc5_data_rates = ARRAY_SIZE(ad7173_sinc5_data_rates), @@ -258,6 +267,7 @@ static const struct ad7173_device_info ad7173_device_info[] = { .has_temp = true, .has_input_buf = true, .has_int_ref = true, + .has_common_input = true, .clock = 16 * HZ_PER_MHZ, .sinc5_data_rates = ad7175_sinc5_data_rates, .num_sinc5_data_rates = ARRAY_SIZE(ad7175_sinc5_data_rates), @@ -273,6 +283,7 @@ static const struct ad7173_device_info ad7173_device_info[] = { .has_input_buf = true, .has_int_ref = true, .has_ref2 = true, + .has_common_input = true, .clock = 16 * HZ_PER_MHZ, .sinc5_data_rates = ad7175_sinc5_data_rates, .num_sinc5_data_rates = ARRAY_SIZE(ad7175_sinc5_data_rates), @@ -287,6 +298,7 @@ static const struct ad7173_device_info ad7173_device_info[] = { .has_temp = false, .has_input_buf = false, .has_int_ref = true, + .has_common_input = false, .clock = 16 * HZ_PER_MHZ, .sinc5_data_rates = ad7175_sinc5_data_rates, .num_sinc5_data_rates = ARRAY_SIZE(ad7175_sinc5_data_rates), @@ -301,6 +313,7 @@ static const struct ad7173_device_info ad7173_device_info[] = { .has_temp = true, .has_input_buf = true, .has_int_ref = true, + .has_common_input = true, .clock = 16 * HZ_PER_MHZ, .odr_start_value = AD7177_ODR_START_VALUE, .sinc5_data_rates = ad7175_sinc5_data_rates, @@ -915,6 +928,14 @@ static int ad7173_validate_voltage_ain_inputs(struct ad7173_state *st, if (ain[i] < st->info->num_inputs) continue; + if (ain[i] == AD7173_AIN_REF_POS || ain[i] == AD7173_AIN_REF_NEG) + continue; + + if ((ain[i] == AD7173_AIN_COM_IN_POS || + ain[i] == AD7173_AIN_COM_IN_NEG) && + st->info->has_common_input) + continue; + return dev_err_probe(dev, -EINVAL, "Input pin number out of range for pair (%d %d).\n", ain[0], ain[1]); -- 2.43.0