From nobody Wed Dec 17 08:54:22 2025 Received: from mail-ot1-f51.google.com (mail-ot1-f51.google.com [209.85.210.51]) (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 191E51EB5DF for ; Tue, 18 Mar 2025 22:52:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338339; cv=none; b=FE0Y5pykpRR0JgTTQfopelz7ASPt4xMnk15KrcS7BtrILA7RkRybVFP6sVNyOaaWVTt+C6vwsT6/YXPMnIfjRFkG1kGFrkEeJ0xXZMh/+pgbFqXRmV+sZQ0U8jn4IDJkePTzag/Hqc+EMbqcYrf5+ghdMv0hmuR7StSzzgli6ho= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338339; c=relaxed/simple; bh=X98dmSEv6nyPPL/MZ8C5uSILXPlFcIN6I8wPX7J2RiI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QtvYXk57KxQaekVUAKBszpSt1AsEQCwMDZIPDC0ASW1u6+MZ6wtBzbVv2UxJfTtHUyvLJP+wCzVE7CPsWj7ObaU/Nwkjr5ydz/Ihf6INvN0CQV1M/mQNCGOa0T5/YbRjRlqLJ28LQTb4KbUmQnhsFOcGnekoqDRBpYxbP5SDeLc= 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=KmWkAcQ0; arc=none smtp.client-ip=209.85.210.51 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="KmWkAcQ0" Received: by mail-ot1-f51.google.com with SMTP id 46e09a7af769-72bceb93f2fso84134a34.0 for ; Tue, 18 Mar 2025 15:52:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1742338336; x=1742943136; 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=vJIlNfW4nypssk8mR15yEyt2R1u7i2DlqX+TWabZSgQ=; b=KmWkAcQ0Dhkmi66hCjFJESbBDEnPwBw7mPcl5dwLWgkWJZFmEV/joIuYT40o7yPMRJ gq06NKHMrL7gcakGQYSwGFALV5SgJ9jBnIP9cemsnfxpRweZwosQLFsk04sx8W075U5B LaNM162q8Brr7NS3DUevWSGlD/r/8IQWQH1gvsZwEBtof0qwXG85K+Flik4ED05jaQHT 21/0X/ce5G+ArdV4x0zjIzDVw4IGuNvp/BHu1J5Gb8f/ydWvnEryCxNgqric/3xC3pW3 eghh1X6jZQg1n63FgBXg7WqQuVH3pPjBPfkRuUte95NygSVoAqbUZ/fsi6og6XdBGIvj svjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742338336; x=1742943136; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vJIlNfW4nypssk8mR15yEyt2R1u7i2DlqX+TWabZSgQ=; b=U7iQT5Nh4uKUkytMUiDvPpPOy3VYrTrEujPFz6sa/t+VNDHdB5ZeMUI6icCMPWIvVH TUuM4yn8Fz4pX6lNA7utmEUOlnjWwBOA0FGbg1gjWZstRMtSBqHCq3jWcfFrdicdpCvg s1mWhC9rBew5o9g7aycLhqC0pI17++BIVMQkn69aKa7VmeFfjP6ryMMGXxSmik/TVZuT XuKwO3lS5frBF/hzUhMRD4ITcyIJS7oLy4Yvdgqm78ECPVSwqB11/Lwh9LTXwboBU4rs EGNfTWSTGkr01qW9Er5xzDedJU6qwHlvnzUd1W0oD7ZX97SI0pyIl2x4oX9gkmyeDgAO x+fA== X-Forwarded-Encrypted: i=1; AJvYcCWsXYkpiCqjSKbtVSd+mSgNtVFPEfzgHpRKCEW35U3ONF+6beXIqTgTa6CTTbzqjebbVWrHYbW7bfU57mQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwreVVOde1nM66o8vxkSoUw5NY6ie1Fz0PL2Nx9vTc5LpzZgi+k BedaREYJ+cIInYrgU2rQnnOGdnqfT/QzfRgGM7Wa/d6AJI6TiwNAzgx9hIXeqFU= X-Gm-Gg: ASbGncsWHax18f3q5Zhu8PDnCFRq4IvArBX6Kx9A3CJ9yenfLrkBWtjW6DyJQpeUYLF +2oh17D9mZ259yDabyZO3T5sIcLtuogHbJJWmmwmH127GfAn5KeDd54q59FPZDPr4GzpTB23Ntn f9GKhwsHePnvm9XPEtOhMeF+6d67Xjg5Rj5JXVcjTLK5dHJsjQHgeeGJWksVT1+k+NBNqwWfqup gnLv9pfnMAGWsgPPKyhDGuFWWqLiAyRzUbTrCaL9OZus3z1008fMUHgWLwnZCd4g1RVsRRRhJ7G UUCYgvaG3taMYDV4b9Vw+ZiZVi77ci1QbNZQCoVFZeyc9+7/jjEvcMICBQjvR+woSZVnUCDhoVO u X-Google-Smtp-Source: AGHT+IHyBSE7aQkFAESKJ5WO4Y1YIAnYZVe7AY2lZBH6VHfOdLdnJE1ZI4TyWt0SnbNjMJZWPZEeAA== X-Received: by 2002:a05:6830:3c10:b0:727:3587:fd1 with SMTP id 46e09a7af769-72bfc0decebmr316162a34.3.1742338336082; Tue, 18 Mar 2025 15:52:16 -0700 (PDT) Received: from [127.0.1.1] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-72bb274e95dsm2191690a34.52.2025.03.18.15.52.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 15:52:15 -0700 (PDT) From: David Lechner Date: Tue, 18 Mar 2025 17:52:09 -0500 Subject: [PATCH v2 01/10] iio: adc: ad7606: check for NULL before calling sw_mode_config() 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: <20250318-iio-adc-ad7606-improvements-v2-1-4b605427774c@baylibre.com> References: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> In-Reply-To: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> To: Jonathan Cameron , linux-iio@vger.kernel.org Cc: Michael Hennerich , Angelo Dureghello , Alexandru Ardelean , Beniamin Bia , Stefan Popa , linux-kernel@vger.kernel.org, David Lechner , =?utf-8?q?Nuno_S=C3=A1?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1443; i=dlechner@baylibre.com; h=from:subject:message-id; bh=X98dmSEv6nyPPL/MZ8C5uSILXPlFcIN6I8wPX7J2RiI=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn2fkcq+owq2DWioHRX9mFfda3N8Z9nZD6A1J2D yHxaowpfP+JAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9n5HBUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fANJHxAAvQR8EsGdrcFpP4Ksusr6GUKGSEfPp3EyQOFTGnG PlBXZJ4E8mB3H8lACeij3nPZ/2T8bfjCTmFTODH//7O1U27dLkqDmXLErJVZDUYBXO0hJzZdBOy 04eC5H7GjIh0WD2QyHhQo4LZfqckVOVqTnR+9zqJeHy5JrVDZnwXBqp+usvv3YG1yalKYnX9NzY u4GNzyjewuUwpFLEU6PU4b78Ixjyu+KqRlxdE/I0b+vclbwF59cncEG4tpCqBCx0H9ttMWUbnLI 4WdYD1DKWTh7srnQSyvQAgKdLF2uDK6znZZn+INaFTRZgaT2Ds1nribHUl3bTFOMbmhzL36GhPG A//9KJiSC4+NCA9+Bix5olUNpubpvUY0OYCcSvB2kPdeo+hwoaUCbl6AAXnBIuYcB/yaUNv7nzc /SYwkX46PpQ5EzEIMjCDfUzPsvUlEolG3+Iru1IGkvUb35dPsn861fqV3kFYVmBaPeH6oCI+ox9 nMNJ+UZxQd2Q87f18SqWBck4XLvTb3y0jYu9AYmFif49y7RscGl6e8K6nZqI+YRlHmGxR3WgV/I MyNnfepqWelJVsrmp/Q68kn9n1DOjoVclUYkHynGwJCO8/+n2CyWp4lyTMMLt+cp46M3/ydTtRo 6pUL53nryia4VmnJrnhgF1oOO6uUHrSKQcDsZ0gs9+gQ= X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Check that the sw_mode_config function pointer is not NULL before calling it. Not all buses define this callback, which resulted in a NULL pointer dereference. Fixes: e571c1902116 ("iio: adc: ad7606: move scale_setup as function pointe= r on chip-info") Reviewed-by: Nuno S=C3=A1 Signed-off-by: David Lechner --- drivers/iio/adc/ad7606.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/iio/adc/ad7606.c b/drivers/iio/adc/ad7606.c index 1a314fddd7eb987b52016ce7242b446677f66427..703556eb7257ea0647135c4b268= a8ead93115c6f 100644 --- a/drivers/iio/adc/ad7606.c +++ b/drivers/iio/adc/ad7606.c @@ -1236,9 +1236,11 @@ static int ad7616_sw_mode_setup(struct iio_dev *indi= o_dev) st->write_scale =3D ad7616_write_scale_sw; st->write_os =3D &ad7616_write_os_sw; =20 - ret =3D st->bops->sw_mode_config(indio_dev); - if (ret) - return ret; + if (st->bops->sw_mode_config) { + ret =3D st->bops->sw_mode_config(indio_dev); + if (ret) + return ret; + } =20 /* Activate Burst mode and SEQEN MODE */ return ad7606_write_mask(st, AD7616_CONFIGURATION_REGISTER, @@ -1268,6 +1270,9 @@ static int ad7606b_sw_mode_setup(struct iio_dev *indi= o_dev) st->write_scale =3D ad7606_write_scale_sw; st->write_os =3D &ad7606_write_os_sw; =20 + if (!st->bops->sw_mode_config) + return 0; + return st->bops->sw_mode_config(indio_dev); } =20 --=20 2.43.0 From nobody Wed Dec 17 08:54:22 2025 Received: from mail-ot1-f41.google.com (mail-ot1-f41.google.com [209.85.210.41]) (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 D134320765F for ; Tue, 18 Mar 2025 22:52:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338341; cv=none; b=hCtPq0dw1fbhvXWHXBZBdvVv/1XIET8ZlKmlcZQga+8NmWnzml5s6WEWx/9L0MRwYexBbzrXUgFo/fTRwdLIm5/vwRwY6EMq2yebtRbmeHIS6d66qYa0EL6fDWD+pNCtHIpA3nVvkivzU44MjxSeBrfiNG3Ay5N6uAZLSbK3m94= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338341; c=relaxed/simple; bh=MymKfg9hNdh7VEIVG5aw3IyW7Bibo8midSILlV4WG+E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SJoIJ0H5k1ASZ4225Dr/iXjquzg+mLc+bamjmtPYBJa1LKavVjW3C8KpcUG7u5sBuQt/dUT2lxRUbOVXOEuKFNjr0wE+ZwghTotyjdwBuVucxlZ9O31kpxRajNo1dDMD1B9Vb1AmxHnaNDzaUkK6wcKMEMaYpFF+ymhV+dNDczU= 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=NokKE2LK; arc=none smtp.client-ip=209.85.210.41 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="NokKE2LK" Received: by mail-ot1-f41.google.com with SMTP id 46e09a7af769-72a145521d6so4148889a34.3 for ; Tue, 18 Mar 2025 15:52:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1742338338; x=1742943138; 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=kkbLNtVpwpFZWMs4rz6SYORu0wPhARh2K7016vD7POc=; b=NokKE2LKV3UlN2uBnUuj+cyanRGo3rAh8iQmVJZn094WzKOHqfGJSgFaYs7wCJULHR Z6afHHTEi/gMoCUwUgNrO6K3WcgP1p7qwmB3xSn9Tq6zS3Lz/aB4dFcVE4JTq629kood 8hHHa6YIKRLpVV8E9VOECwoJ9s8v+6bmZF+zEuBzvLuPftr2I7XDOTc0ZIyT/81nfks1 u7fNziuDmgzXNCTKkQ/bp0433SHEwH+fMpX2KBl6X1K3uGjv5vnuo7Hl9u3Pk2Wf7dK7 Qgx0LIG1TPK+n29DjX0C3scKDGEC77+raEaXO/vngwiRqc6S22Uq6ySMtxATJ8QcXgY6 bS4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742338338; x=1742943138; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kkbLNtVpwpFZWMs4rz6SYORu0wPhARh2K7016vD7POc=; b=VaFNeCgx1hrESZlUceFoOMYZSX/V6iOfJMYaEhoZRHi0q6kLuBPmFS34OhhPUErHMO vvVBtTqUvJW1cO4dH1RSjwqPld7PP0iORuRoO+HYHxJafgijN65GKpElBIz8INn9BIz9 bbNJ0garVwPkHaDU5d9/I/lJZ2r7wTTCHsk9e+Ei/9cWYinPLcQ6NyZj1FTQ2Zaubaf8 qUU6iPEXtadk2c0HMvyf6yef8KF98J0C89H9lLMcEmoG5rCCPARd7ijSwpjZW8cDGTfJ DYFiSdcLTiOzjINHwzDSbrMrhG7WJ5OR9GuKJMqWok59QyNpifeqXqFSIABVeaED+WSJ YUjw== X-Forwarded-Encrypted: i=1; AJvYcCVTSQDCN3z/6F77jTGngCMgxocVU3s9ZYxUqf3dAu19yq3JB5K/ozw29kRlocQFIZ1ylglVhLB2SXSKO88=@vger.kernel.org X-Gm-Message-State: AOJu0YxskVXD6t2ltjNACngVAENvozmo3UbNZkWlso8jWCd8BaEefNfN rWgQKjMPVBpIi9hVQbQObzchHhoDy1+QT74kMsXA9+ASJjx+zTU+UDfFmGXMR+A= X-Gm-Gg: ASbGnctoUHjplBHAOznUbgI4hbqcAKmCco5YzRMrNOg6HnN09T20sNx5NxklMOACcDv lC8QvBDOR9S1THifG/FZhWyWL31gVG/5a37vGVisBDNmXsRQL0FePvh+EQcZrV8uTgJoZ0dEc8h 1gLOt74OxfpXn0YbTY1v/WHDZ8+ZotxHZaPLhdy8m4wMMdKgIESZc2SmZ4ZliRH0773pYt2MdQh 5HsQLcfvazZZz/25glGv0VaUVW9Z1vf54SrM4ih6iPkxyYA6qPFqYQdL0Ya/Rkayqw4MTn+DyrK DBLv6qAFqmpdtcSw/UxYIZWZ8mE6zXlLNC8sl6YJhlDWsiI07tT/SRxJhE5Rjxj75Yv7lno/shO c X-Google-Smtp-Source: AGHT+IHZuyggkmPqrQGrGAUy7Y06HBEeAVytcb7xb+U7eWde81LwLef59gm2Mn288clBZJ6aSWdajg== X-Received: by 2002:a05:6830:914:b0:72b:a465:d955 with SMTP id 46e09a7af769-72bfbdc7d99mr447313a34.12.1742338337879; Tue, 18 Mar 2025 15:52:17 -0700 (PDT) Received: from [127.0.1.1] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-72bb274e95dsm2191690a34.52.2025.03.18.15.52.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 15:52:17 -0700 (PDT) From: David Lechner Date: Tue, 18 Mar 2025 17:52:10 -0500 Subject: [PATCH v2 02/10] iio: adc: ad7606_spi: check error in ad7606B_sw_mode_config() 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: <20250318-iio-adc-ad7606-improvements-v2-2-4b605427774c@baylibre.com> References: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> In-Reply-To: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> To: Jonathan Cameron , linux-iio@vger.kernel.org Cc: Michael Hennerich , Angelo Dureghello , Alexandru Ardelean , Beniamin Bia , Stefan Popa , linux-kernel@vger.kernel.org, David Lechner , =?utf-8?q?Nuno_S=C3=A1?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1075; i=dlechner@baylibre.com; h=from:subject:message-id; bh=MymKfg9hNdh7VEIVG5aw3IyW7Bibo8midSILlV4WG+E=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn2fkcpJMq2rXU95PQB6TEGoJ22ZJZHkAdMUEdB d+M7ZlvgiWJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9n5HBUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAO+9A/+ItmzaIp+mvBlYOaQ0EVK1pPYXT9Ef/+hE05DhnQ /X1qg7hTt9WlpdYgq56g6OVsvu58Ya+R9Ha6OG/7/7X1Q/Bkx5VflVXQInblBfYqXOyFHjG4CKv EJ10ellc80Ja5FDifbJjam5YXMJbUzOj+aU5+2oxnO/l0ouPj7F7CH6ktuNA4zqg2OS8zR7L71/ D8qo6wTGBxCdj07xLCNup90hz+CSFoT9yP9oMNOCi7btpRYASauKOyWOrCTOVK2reIAGe3LUFXy vpvf7Y1zWoGS5eM2kNf8FqhfZXw6zS7+K0zEZ6V28fZbsNlEMdZCkxOHIb7l7VyFaGodREU0VLD UvMu6STQB1g0Lx/6TxaI9jT5d70vmTbxUraLkUrfzokC3IxeXkBADFu/CDeM6p39uz1nmp/fksP iu1IJMCvOHAvMAV10YVRQgY/u3d86kndlceWf7xrj3OpwPN07AgAF9+7CsTBLvc1I0FscVaNCgD eXnxDtqyMY12MOiDhASlwxZXcw+aXDXZWM6ONtR3fVlufQEJGL3zRwTpefw0wNxhIQn6LtCQ2Fa 8cc7kJ00DMTkiwuW0QiIAhpNTYzhA2lDo9bWw+umVCq3jkgBDcXQ/XyOslGir8FxWtEKvlLhRY6 yDvV1G1juaePJO8eo4A2jpjEGs0Kx/0FQj7/s5qLAohA= X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Add missing error check in ad7606B_sw_mode_config(). Reviewed-by: Nuno S=C3=A1 Signed-off-by: David Lechner --- drivers/iio/adc/ad7606_spi.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/iio/adc/ad7606_spi.c b/drivers/iio/adc/ad7606_spi.c index 885bf0b68e7775c5f4a12dfb827f502d5f782e8c..c028e08efe2c82cd97249f98eec= 50a9a9c06471f 100644 --- a/drivers/iio/adc/ad7606_spi.c +++ b/drivers/iio/adc/ad7606_spi.c @@ -174,11 +174,13 @@ static int ad7616_sw_mode_config(struct iio_dev *indi= o_dev) static int ad7606B_sw_mode_config(struct iio_dev *indio_dev) { struct ad7606_state *st =3D iio_priv(indio_dev); + int ret; =20 /* Configure device spi to output on a single channel */ - st->bops->reg_write(st, - AD7606_CONFIGURATION_REGISTER, - AD7606_SINGLE_DOUT); + ret =3D st->bops->reg_write(st, AD7606_CONFIGURATION_REGISTER, + AD7606_SINGLE_DOUT); + if (ret) + return ret; =20 /* * Scale can be configured individually for each channel --=20 2.43.0 From nobody Wed Dec 17 08:54:22 2025 Received: from mail-ot1-f51.google.com (mail-ot1-f51.google.com [209.85.210.51]) (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 82C4E212B09 for ; Tue, 18 Mar 2025 22:52:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338342; cv=none; b=FxyAqeO2vjcccQaz+D3A9qg0KcaaRdhg+ZVBI5qRrC9gNvlgDy5L0QdbZTRU94u0ryqUixqQAOCGgGbVA+jWi0u7lffHMwmPbIyeqn6Cc/yAgY7lRI4Z07BfimNYQ5gYE+Wjv2lVNK1/Eh/bAEnRVvtlqdtaRjF71+/2pzUHT/8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338342; c=relaxed/simple; bh=LyuroMMaoBOSZoSyrYLJnH+E1sJ+Nbe2Lk4N0E1CWv4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SuXPmVwdYSSywkM4nGhbQqFAjCcmCxo407ulv5OGjmrTN29/TB7Gap7CcSi8xyusCtyPD8fJBWg2XKuRv1TZ0a4xS0eAEgcnEJxrEgGL4ayp/6yp4YCNpt173RiwMWHeSNIawO3GJzxb/9U8W20TEmn/6MdrfW9skRxrnOXX0wM= 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=fqDcqFyN; arc=none smtp.client-ip=209.85.210.51 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="fqDcqFyN" Received: by mail-ot1-f51.google.com with SMTP id 46e09a7af769-72bbd3a3928so2417173a34.2 for ; Tue, 18 Mar 2025 15:52:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1742338339; x=1742943139; 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=skjEj2e09DYqSz2/zCPCOzbg5imEtc5g7h25ppNmi3U=; b=fqDcqFyNMQ3FaCSeq/+9/CJp3n+vrznRllIOOEOfVH2bWpdxiMRI9J9qZ5BtU+e1lO SfFXRu8ka5CIuab7qQQr35WYckv3BKw77u9OJmR/YFbr1ztEGPnWGJRC9h2h+T91eVsL Q3y9YmyXgxPzYcoI8C9mu/N3qBtijvTp4pLxp0JyvDHv3ucqGMm2glK77rXqkhdWJ112 w5AENNG0qW/Bu4o7cedlp2Y5KQ/5NKHTkJKU5tqKBvvTQZLsgIP9C+ZG+LkO1fZWlTPu QF3IHVQehJzwmCf2jPgzwZsVsII/ONDYiYFxARV23JPNqbT+eP6Cke2CtNaTs5sdSMBK Ttqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742338339; x=1742943139; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=skjEj2e09DYqSz2/zCPCOzbg5imEtc5g7h25ppNmi3U=; b=hQgt3kXXxsZIGJ+23L4HxSMuejdx6J9OAPsuolfIxm8vvm9wgoEWMPKoEaZ4BDotfr q+6RMoCGTvdShdJaxS2mXoF+xV1lgasp1PWgVhVyEuAvNxXEpYNGjPv+7eQc09hsgzJN P0nwDA1/6Qfvta5TLbwEITf6TcYbJUO4Z8x8e+XTqpF/nMeIseZTaMlAe8t5aHVxC6XP kErnyfu2zhTgYo4a3Ey5D7INpf2Rk4guG/4iZldtu19t3/fqVe8OjYxDZKlg1NDP4iTr Y6kuAPw7U9keZsbXnm3SDUMdmjqSozU3gx3Bp5FwhTyu+mvbebtMqEw+a7CfXg6olnbF 1EMQ== X-Forwarded-Encrypted: i=1; AJvYcCUaU4LMS8KePDKUts7RtJAzmR6u4/v7VkubDahEv6mZ1jyzFEFL8yvPWiGctZnEBVsl2rW4tGyLvZyqyss=@vger.kernel.org X-Gm-Message-State: AOJu0YxaF3MdU3g+ndFLw9m7L6cWYz+zBpSXbIs1ON+032fAq17F3i0m mycUHnUuN6ZPbTt7syeKtLAHx31jLvpsiZP//2DjPmKC9CLlVCxqEEz7RmEntQU= X-Gm-Gg: ASbGncsYa0+kPGF83ReeoyreOudRnakCB63hQEVy71REgpd2ZHqRcoG0g5Ec2opPMpC XKsfzxhrDtpSzuRhb46Z09zxNTIImQloihhLeTmQgd1PJkXQPn+MCHmwAccgtWKRo66x4DbAKhQ 4m7rcAz0AyUyMDLoawWVv4LOByH4kdf8SQSZ55NY0miKH8XOi2BOuM0jhP/acIDmTAbxEY7osPI esFH1cXAfpMNTf8+4qBUzvEu7RQZjhMz52FQ+9LB94XlhIRLt/UNyKzmmyA/0mV+XbhQ5rOUv2K Gsg4SljOXhZIvMwbBswI3iJNJbUFN5+CipD5BJEH4Mg29kznJCG1ArT1SqaNDd0WIDw/YdYQVoj 7 X-Google-Smtp-Source: AGHT+IHgvI37efNsDPVr70hktMvOHfxddpFtDY2vRfZhBxu+mNCPsMyi7ZOBEQVQMiDM1Lz755vrpA== X-Received: by 2002:a05:6830:4112:b0:72b:9674:93ed with SMTP id 46e09a7af769-72bfbf55ee8mr408614a34.24.1742338339637; Tue, 18 Mar 2025 15:52:19 -0700 (PDT) Received: from [127.0.1.1] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-72bb274e95dsm2191690a34.52.2025.03.18.15.52.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 15:52:18 -0700 (PDT) From: David Lechner Date: Tue, 18 Mar 2025 17:52:11 -0500 Subject: [PATCH v2 03/10] iio: adc: ad7606: add missing max sample rates 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: <20250318-iio-adc-ad7606-improvements-v2-3-4b605427774c@baylibre.com> References: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> In-Reply-To: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> To: Jonathan Cameron , linux-iio@vger.kernel.org Cc: Michael Hennerich , Angelo Dureghello , Alexandru Ardelean , Beniamin Bia , Stefan Popa , linux-kernel@vger.kernel.org, David Lechner , =?utf-8?q?Nuno_S=C3=A1?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3997; i=dlechner@baylibre.com; h=from:subject:message-id; bh=LyuroMMaoBOSZoSyrYLJnH+E1sJ+Nbe2Lk4N0E1CWv4=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn2fkc2jgcSfYYh2iOa+W0CrFifyYpr5JhXhE1O o6vrZfRf9OJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9n5HBUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fANlgw//VE9xzpCzdkLlxKXkwZaBwDsznYwHrMybeGEyMej e5ls7VpFjKjUeuqVtpLPNYC7gtXpncMdUk6QLo698srTv6g+qEN1Z8UOWxR/HiEZJ7UpS7JCKA2 gE4bWLFWL/Dg/Nj8u1V2cpkjG5uOdwmr5tCnHrhJotI7IwcejaNXfCdJogyAAPtGqgUozpGJBNX MiZwAZch0pFBj6eVaEATGU3giCTwMbH93Pv5ddy8grT4+mZt0zLLZHlktDFgcb1jHEIJMpQlNS7 qHoncMaN5NBjvz1xUp83M/cGN+4ZSikmyV8C/V80Enm+jRVpfTirYk/5G44b+oqM0pox+q5W884 zaSHWJ1YLCcq2axdGcuy3845LBw7TXP/kKJn9+PHWUsdkpGTtx2qa3LXALfI/f+nsjiMrpp4v5e og+h6c4BBdYTXJgX0PicAFw9ujFvR5Tkjj4LDleJA5LC/Kib1NyWJpc22ijUIrl6oo5KXmYIXqQ 9YriOTN8cK6lf7Od6RXRxuhGV6doSpVMdY8RzMij5ZXGWT65bIxC5nwirTf5uXJ8tZ0GswxCq7C i8HGeUQbZ/SNoofC3kYgGilK+FK0Mk2EqNcJ/gjgkbYlwmkJXDh4spc6ox9qDgY03xoGXdIpZUT ASSbZdVYOkFVXmaep4lu5kTdddQsOrOjSCEMxE1BS0hg= X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Add max sample rates for all of the chips. Previously, only one chip had this field populated. The fallback value for the initial sampling frequency can be removed now that all chips have a max sample rate defined. Reviewed-by: Nuno S=C3=A1 Signed-off-by: David Lechner --- drivers/iio/adc/ad7606.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/iio/adc/ad7606.c b/drivers/iio/adc/ad7606.c index 703556eb7257ea0647135c4b268a8ead93115c6f..f9b5ce0a8fa72974b918912e238= 8501919175653 100644 --- a/drivers/iio/adc/ad7606.c +++ b/drivers/iio/adc/ad7606.c @@ -196,6 +196,7 @@ static int ad7616_sw_mode_setup(struct iio_dev *indio_d= ev); static int ad7606b_sw_mode_setup(struct iio_dev *indio_dev); =20 const struct ad7606_chip_info ad7605_4_info =3D { + .max_samplerate =3D 300 * KILO, .channels =3D ad7605_channels, .name =3D "ad7605-4", .num_adc_channels =3D 4, @@ -205,6 +206,7 @@ const struct ad7606_chip_info ad7605_4_info =3D { EXPORT_SYMBOL_NS_GPL(ad7605_4_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606_8_info =3D { + .max_samplerate =3D 200 * KILO, .channels =3D ad7606_channels_16bit, .name =3D "ad7606-8", .num_adc_channels =3D 8, @@ -216,6 +218,7 @@ const struct ad7606_chip_info ad7606_8_info =3D { EXPORT_SYMBOL_NS_GPL(ad7606_8_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606_6_info =3D { + .max_samplerate =3D 200 * KILO, .channels =3D ad7606_channels_16bit, .name =3D "ad7606-6", .num_adc_channels =3D 6, @@ -227,6 +230,7 @@ const struct ad7606_chip_info ad7606_6_info =3D { EXPORT_SYMBOL_NS_GPL(ad7606_6_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606_4_info =3D { + .max_samplerate =3D 200 * KILO, .channels =3D ad7606_channels_16bit, .name =3D "ad7606-4", .num_adc_channels =3D 4, @@ -251,6 +255,7 @@ const struct ad7606_chip_info ad7606b_info =3D { EXPORT_SYMBOL_NS_GPL(ad7606b_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606c_16_info =3D { + .max_samplerate =3D 1 * MEGA, .channels =3D ad7606_channels_16bit, .name =3D "ad7606c16", .num_adc_channels =3D 8, @@ -263,6 +268,7 @@ const struct ad7606_chip_info ad7606c_16_info =3D { EXPORT_SYMBOL_NS_GPL(ad7606c_16_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7607_info =3D { + .max_samplerate =3D 200 * KILO, .channels =3D ad7607_channels, .name =3D "ad7607", .num_adc_channels =3D 8, @@ -274,6 +280,7 @@ const struct ad7606_chip_info ad7607_info =3D { EXPORT_SYMBOL_NS_GPL(ad7607_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7608_info =3D { + .max_samplerate =3D 200 * KILO, .channels =3D ad7608_channels, .name =3D "ad7608", .num_adc_channels =3D 8, @@ -285,6 +292,7 @@ const struct ad7606_chip_info ad7608_info =3D { EXPORT_SYMBOL_NS_GPL(ad7608_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7609_info =3D { + .max_samplerate =3D 200 * KILO, .channels =3D ad7608_channels, .name =3D "ad7609", .num_adc_channels =3D 8, @@ -296,6 +304,7 @@ const struct ad7606_chip_info ad7609_info =3D { EXPORT_SYMBOL_NS_GPL(ad7609_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606c_18_info =3D { + .max_samplerate =3D 1 * MEGA, .channels =3D ad7606_channels_18bit, .name =3D "ad7606c18", .num_adc_channels =3D 8, @@ -308,6 +317,7 @@ const struct ad7606_chip_info ad7606c_18_info =3D { EXPORT_SYMBOL_NS_GPL(ad7606c_18_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7616_info =3D { + .max_samplerate =3D 1 * MEGA, .channels =3D ad7616_channels, .init_delay_ms =3D 15, .name =3D "ad7616", @@ -1401,8 +1411,7 @@ int ad7606_probe(struct device *dev, int irq, void __= iomem *base_address, * If there is a backend, the PWM should not overpass the maximum sampli= ng * frequency the chip supports. */ - ret =3D ad7606_set_sampling_freq(st, - chip_info->max_samplerate ? : 2 * KILO); + ret =3D ad7606_set_sampling_freq(st, chip_info->max_samplerate); if (ret) return ret; =20 --=20 2.43.0 From nobody Wed Dec 17 08:54:22 2025 Received: from mail-ot1-f41.google.com (mail-ot1-f41.google.com [209.85.210.41]) (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 5F0B6213E6D for ; Tue, 18 Mar 2025 22:52:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338344; cv=none; b=saCfI5tPS8FNOD9cW+pGrJsHsNMeg0nA2KOZ157KKhzNxUtFgDO+yo/4HvL4CrV2Cmay4JebBVpZCdfvd9Fgshd4kea+zSik8CYuuIBwxY1G039l9EMFgl6xZE2h+eHSSviNj7w0lZVbleUr+urawU9qMGYHYLMWIdKBFzfoMF4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338344; c=relaxed/simple; bh=Czh6sIf2f9O6GK/Ws2/trCYTXsw1wMYMLHDMiolIa84=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JFPW9YHlrWHQpU46F4s7b5u98pTND1PD1WeHVmlgKmpba2wQJ4/1IconJbqdRu62AR45UTRiIuv5Gq2G5noInLxH1HcX0V7EGqWhOJVw9laj4CFArxAF2HktKF/wv93/kVPA6JWrlEDmB15475hQw51Jqb7ETwbVG9GLyxrJbHI= 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=kQFJkzSt; arc=none smtp.client-ip=209.85.210.41 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="kQFJkzSt" Received: by mail-ot1-f41.google.com with SMTP id 46e09a7af769-72726025fa5so1389154a34.0 for ; Tue, 18 Mar 2025 15:52:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1742338341; x=1742943141; 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=bKnUxBRqQ7Ggqr1I5p6rWXUIKzQVKhyI8AqqhJXQohI=; b=kQFJkzStfqa/gV7eptXXwfvoAm5WmaiKY4xucGIAcjWIpG7zY8jWe4FTSap5NHC5AC +WXjJmBqQH8ZRWZ45fqZpv+8D1yftF9yYj9mUfboK7yBYh+9hCq7YeW2Ftzz7UGdFoi6 CSUQ7K/9uS7dv6h2S+JOmalqV+X32jiFiSsO0McMR36XjeppMcA90FotFSRxAn0Z/GPp n1W3FXQyCHRuDkfEBLt4G8wNrEbOULqR8/tJnUNHGsT2hhbAV97fEm+BmrgoLTXZPl+r I+O1Xr81gIPKCOAb3pA00SfhA+QPvHddNlpbA4MYnlItlOS+ewnB6wxjTL4LpUxO+V/D BruQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742338341; x=1742943141; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bKnUxBRqQ7Ggqr1I5p6rWXUIKzQVKhyI8AqqhJXQohI=; b=du1K/GG0R/bDZ/BbDOCn1YOcle1xi4fDsrLwCDnOovc80xMhiMltAyjUvbp9mS7KSd mzuvE0dkUsT6/vz1FweDOMsryZc3/ArhvyRiU7oa0o1opwe02vjF6pPzUXLw7lzICX3P pZNET/0SwNZL4CJ/NmnscLNzqyrmimnAcTE0auzC681PogUo5wDbIvEXBUsfnQmcqzxz 4KegR7eRvxnQNc6fAI2Z1SiwaTJoDCn0FNU5xCpJvxPv7iyR0z8WhMy+4d31gOQIvRSm 1nmxVNOp90/cLbPRMENqYXVPkMIVzOYejmkQRpiCTputVDwMUpud/B0Z07DYc5gCVY2D mW4Q== X-Forwarded-Encrypted: i=1; AJvYcCXK3lyQSWlz7XBdhYOLrROExgUaoKDAgJmRnPLjIbBcTDOfskDrWtKvLDBzOesjsbVF3oUJ2C/F4LAmnTw=@vger.kernel.org X-Gm-Message-State: AOJu0YzqfokC8f1PTZ68gXjyuuJCYN5T1xIX+wberUQ8+o891FjB05Tz 1xxmNQybeGEouBgCMNsN5iRHpo250ZFkyLD6qu/5MAaeRJW0L6omn9+y8tIxt41bBHoecEKnRzf 66cg= X-Gm-Gg: ASbGncuXq0R7sw6APwD5BV/LiFuCMiq7xBzNDj46xJTxg8Wrp2fY6rIjw72P+aPTZJv h/xf1LTWz9WvREq62FS4c5LLww2pN/8cUTcPn221Vk4qFbbbjtX6+gurSUd+htfmakUJEYj+buJ abcMLEziCJej0A7Z8KJStEow32tYRQPmxIawTQ24Hk6Au9msaY6KMfKbAL99jtFxjxS48b86zVF OdoCIhHCTk/fGPgzDA+LsjXkHACS5KXX9lXP/NVfPI/UUl1Ce/K/2HI/OYQwrPaMN547wu6Fck5 TDTJ5z+zNQCvCmbZUXIUlbHUDBPBu/uGpDKe4JQwvyhFv9BZ91OA75OlY0YPeUMBx9MT0idj+CX k X-Google-Smtp-Source: AGHT+IHEITZFjsR+M4QwJ/R55tRcQB5RKbUX7sp2wgvScRVeOsiUTEZ8TfowTuiSoueX8I9snIFApA== X-Received: by 2002:a05:6830:4118:b0:72b:9b1f:2e1d with SMTP id 46e09a7af769-72bfbdbed36mr369070a34.2.1742338341409; Tue, 18 Mar 2025 15:52:21 -0700 (PDT) Received: from [127.0.1.1] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-72bb274e95dsm2191690a34.52.2025.03.18.15.52.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 15:52:20 -0700 (PDT) From: David Lechner Date: Tue, 18 Mar 2025 17:52:12 -0500 Subject: [PATCH v2 04/10] iio: adc: ad7606: use devm_mutex_init() 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: <20250318-iio-adc-ad7606-improvements-v2-4-4b605427774c@baylibre.com> References: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> In-Reply-To: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> To: Jonathan Cameron , linux-iio@vger.kernel.org Cc: Michael Hennerich , Angelo Dureghello , Alexandru Ardelean , Beniamin Bia , Stefan Popa , linux-kernel@vger.kernel.org, David Lechner , =?utf-8?q?Nuno_S=C3=A1?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1175; i=dlechner@baylibre.com; h=from:subject:message-id; bh=Czh6sIf2f9O6GK/Ws2/trCYTXsw1wMYMLHDMiolIa84=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn2fkc7EZdha3SWgCHJA78vArymnZGVtiL/Fx3m 0DjEldTAoWJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9n5HBUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAPTOg//YQU9pRBQ8y7NQHTMzUKCZvpoUw1R4xQSGGOyV3k WfRpTUt0VoWqDKZHzW3fuluO9Rz4JJjsO5Q9NGrskLPZlROQQdXohBat079jZM9ch/GcoSbiPxD ycCv+4RcQYfXb6TlJCesnG0q9UewsZz7WzpwxNN59W9v6J1zX93bHvqrKzF9lI/FG/gQ6No31z8 0pnsbDcA9CMhCwxrLoKGGYRJ1ats3gZZ0iFpA7L9kiLGsqA4DG7VPWUEBYGpMhrSx4kPBRejiNW EnvjtOtjpRN+tKhScsiRnrQowQ622+L3ReGpNHCknzJKyhYEMk39x6CL6zJJjXdxpIQ0SZcGnMl VGvJtlSKJpOO9TVOukrp/7x5/3QjHO+gXbDJnJX5SvWgcuAhDHzi4tgRM5/bmU+SwWQg8LvJqJO bdgYxZraCg/jOFqjxW2pGWXGbxFoVg6kgGz7ZVEcfTiYve4Fzlxwn93t3SfPO1S0DVIYEfquwOE qkR4Db7Yiyf+MF2vZuwrcebBrzKKXkKXELzqU4jokoikl/ynaVXV76opAsSya6h7VLLM1kmGutv CDsXlemtgx3azyibsxUgSTD44hs/651ItoIBd041WS4M/ZipNbkZp4vpphIYdq/pKPboowBjKbg woxNQwf0MLZj6pWSVus3ysstwcG/OWVu8Yqrs1cfHzhc= X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Use devm_mutex_init() in ad7606_probe(). Mutexes should be cleaned up on driver removal. Also add missing include while we are touching this. Reviewed-by: Nuno S=C3=A1 Signed-off-by: David Lechner --- drivers/iio/adc/ad7606.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/iio/adc/ad7606.c b/drivers/iio/adc/ad7606.c index f9b5ce0a8fa72974b918912e2388501919175653..b81591d8bc520c730e1632bd15e= b1eddb5a59c90 100644 --- a/drivers/iio/adc/ad7606.c +++ b/drivers/iio/adc/ad7606.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -1332,8 +1333,11 @@ int ad7606_probe(struct device *dev, int irq, void _= _iomem *base_address, st =3D iio_priv(indio_dev); dev_set_drvdata(dev, indio_dev); =20 + ret =3D devm_mutex_init(dev, &st->lock); + if (ret) + return ret; + st->dev =3D dev; - mutex_init(&st->lock); st->bops =3D bops; st->base_address =3D base_address; st->oversampling =3D 1; --=20 2.43.0 From nobody Wed Dec 17 08:54:22 2025 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 1A43A213E92 for ; Tue, 18 Mar 2025 22:52:22 +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=1742338345; cv=none; b=k//A3Ewr7K8RfWjwkjX3XCUJaoUQlDKgeWHK5atP4vB4UrVBk3yZc+CjSgamA/xXZWqNdakGNGcjr/Y0PfJnogXrtGCefKc0P1DNW5JomoTF5RtRhL+9yCBN5G8wnFu/3EEcckwL3uJIhAzABtkEPBcY2dBexqRPY/z43iWE1rc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338345; c=relaxed/simple; bh=U6hTKOUdv8NzJNt/VAwCG4k1hYCfglrZdWj4ZUh8BG0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VkzR5mYb+3ut7MRlx3bmS+X+YvL56yuv/TlbmRQ2TWHtaGSdoDTmtbdosR1xqMvk6ihzjsMYgHG1xxc6NUc3Ofv0HIj8RgkJzcFUaJKlL9xLpVKWWWyXucwIEp4VIgke6N5U6nXhUz3Wx9dlCOapGCt3D2EXEAPUO/BQ3y55WJs= 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=lRGBdyNZ; 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="lRGBdyNZ" Received: by mail-ot1-f45.google.com with SMTP id 46e09a7af769-727388e8f6cso3573878a34.0 for ; Tue, 18 Mar 2025 15:52:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1742338342; x=1742943142; 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=vPQCJrVzhsb3m8wB7eSx0v8THRAkXBBOHXV7wuYowq4=; b=lRGBdyNZQHj0IGzaJ3sZwRbgRaTN6bytKGyPX+1eFBgUqFtfo8MWmYLD63za4N0sxO jTPjakvRsyfqtsE16UI3+QcGVHZSUgfrfIzi+i8iyZX26NB2izhN1viS864RWZ7aGm0R qFYf3zniyfCdnn/f1qWtHajLwXdqTv+T5RGVCLI5aUVUbrzekoyOtbCgx5VIDd99/zZB qy98tcxhuFoWfzI/dQrMXzDpZ3GJ1iwoTnWX9gtUaJUQjUJRAEIrzWfq6IkwA/wVqz2w egwjcv+uZ2OL9awMsfXuoI71fs6rU5/Wm1Q+sUHGQEwq7t0oAnnb6CQ+C25zBw00YFt3 f5UA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742338342; x=1742943142; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vPQCJrVzhsb3m8wB7eSx0v8THRAkXBBOHXV7wuYowq4=; b=S5ElRDKugp3LfUkJjqLPtUu1rZPNeizT1/mI29LBgmQ6a0GDQgj4/TzrVMx5GhD1xq pClY2Gw5eJJPH6wjqYDyCT1MJFx9XaFCXaR07fL6lby19TMPxhEhZ2Oa/thMbhSkAWR/ nXTuD3jesoAmwkOHE160E6zqR2TtADfRqAFRyLFb1c8Ggj1dEr9GbRtFFGOTy4t+zxK6 W7Qt+d4km4vy15iDFah/2huIHeQVj86EoMUaYX2o231Vx25idG4CLC5xBp3M350YMlv7 F5hUSx94OqOA0MmVyoUfuBa+8ZRi70FfJpMTZMu1uLRr9p+MRHXDJN4sKc2IKKhKMtxy HE9g== X-Forwarded-Encrypted: i=1; AJvYcCWAuzOtl9QsRsGU+iE5WKKby4uHBEWY9ZJ5q3X5mFbslDKOpbVaHeuJVu00x3A1LuqUWn4nO78tTAk7xRc=@vger.kernel.org X-Gm-Message-State: AOJu0YyFAfV/4UMovoWNScOKDud/Q2TYxVZSfhljoddmmRz0n57IMO/8 nkZNxkOZEgy/7K/SJa75vXy6JPHo9RYBgm20kI9cohjylQ/WAYWKJM7Z5Yr6ohA= X-Gm-Gg: ASbGncu6Y8CohP1iiqYLpjoXdttmWwMW27sNp0G3T6y5PAPA68XYYsBswo5Tkj15CGp H0KKAiU8y00qSnQouYPU6YQam46zqdmELanLybmHx304MBGSCknpNuq1vLdht91blqmfuLLNTRu r+2BEpCSOzX0EMZVUfdaLeqZGuW9jqLeTizpU6qIf/qgB00fxXLSUvSJeHxb1fLSGrVdv/5tgTX FtzOL7VJT8RkAaRGB2RiJtg0o8HT9zxZmzz40AmDPOJg0kx05VRHeGwESNzgMQZqhUc4Xzlt4k7 v3Ten1VaUa4s0nZLrOzLOnocFQNN6TSKoKL+xvsB7g166yfzYOWmKdLw1EwF+6eLG35JhjlAlTM l X-Google-Smtp-Source: AGHT+IH33ojHGgMHagKxoEeXf3gIZ8D9FVLoiXpN6QIMZYjy2GjwSQAeRnN3r1Mcja22NVMGVMOztA== X-Received: by 2002:a05:6830:270e:b0:72b:9506:8db6 with SMTP id 46e09a7af769-72bfbdb5bb6mr373989a34.6.1742338342201; Tue, 18 Mar 2025 15:52:22 -0700 (PDT) Received: from [127.0.1.1] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-72bb274e95dsm2191690a34.52.2025.03.18.15.52.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 15:52:21 -0700 (PDT) From: David Lechner Date: Tue, 18 Mar 2025 17:52:13 -0500 Subject: [PATCH v2 05/10] iio: adc: ad7606: fix kernel-doc comments 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: <20250318-iio-adc-ad7606-improvements-v2-5-4b605427774c@baylibre.com> References: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> In-Reply-To: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> To: Jonathan Cameron , linux-iio@vger.kernel.org Cc: Michael Hennerich , Angelo Dureghello , Alexandru Ardelean , Beniamin Bia , Stefan Popa , linux-kernel@vger.kernel.org, David Lechner , =?utf-8?q?Nuno_S=C3=A1?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7888; i=dlechner@baylibre.com; h=from:subject:message-id; bh=U6hTKOUdv8NzJNt/VAwCG4k1hYCfglrZdWj4ZUh8BG0=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn2fkcBuvBCTSWmRf0mMlLi+cfc575+8GY+bjKd XY5Dn2iGdSJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9n5HBUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fANNxg//W++JG4InPLiXsmqX4Ksjbi5XmpamMzZA0gm9P6V NnNDCzVLK7colfh35suoZl4J3Kqzhnmzrv1VoPpumejaTgh4v3CDu2W5+PzsXt89vO9UhaeFJMU 8Yk9JJiSe0xNRnj5PaiyXt//tg585160a7dCVuMMZq6XUINyUCsvwmYJEhMu7UTaIE7cltWxyWy lgZ+msrr9uQg/sM90jkEAbToK5Prq+kEpt6kQiG70XXmHTr5LD4NjDQVWjxRkQt4wNbYIhyKLUn eUoVKF1C2+qXs+4WiC1ITHLymz5+QDwFOOrswTZ/Mk3kzjZpp4Spyy9Mm9sABOk/f5XjWJHWvje PO/Ggm3GDNQKkeZkmEZm8DPL5Y4BmkUQend4B3SniENqtcQ0oeze/8hHvzNJBhcmvk3AVAGa/fw X863BLFUfWcFWDIAsa1FSasQUfMN1wCxPJI/gKMJsRXplR3ovJhVxTWpE/LoX4X5qKbk0wXTcSf ucrEnKodGUAIG52lSrBgDOC+HMsD06imvEizkuaUjWL+GKId7gc2FukdYLs2t1RmuoY+B7RC1+0 GnG1Tx8GYbcyQZrCboAGDQyCYC6LbiUlfUiIA7YIykYuH9IGkS3eMcp6GxiajmAYvONQsKsd94m jELxLYP+LsMSgXJipZIfhAxU3b9SPgwmqJ5DMKIuWQxk= X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Fix several issues with kernel-doc comments in ad7606.h: * Add missing ":" to @param names. * Fix order of @param names. * Add some missing parameters. * Remove some non-existent parameters. * Fix alignment and wrapping. * Fix some spelling. `./scripts/kernel-doc -v -none drivers/iio/adc/ad7606*` is happy now. Reviewed-by: Nuno S=C3=A1 Signed-off-by: David Lechner --- drivers/iio/adc/ad7606.h | 92 ++++++++++++++++++++++++--------------------= ---- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/drivers/iio/adc/ad7606.h b/drivers/iio/adc/ad7606.h index 71a30525eaab512fa811f28fa79268a1a976bc8c..dd4ae59dc59ab17e437171caf6d= 8a5abcce97f74 100644 --- a/drivers/iio/adc/ad7606.h +++ b/drivers/iio/adc/ad7606.h @@ -120,17 +120,17 @@ typedef int (*ad7606_sw_setup_cb_t)(struct iio_dev *i= ndio_dev); /** * struct ad7606_chip_info - chip specific information * @channels: channel specification - * @max_samplerate: maximum supported samplerate - * @name device name - * @num_channels: number of channels - * @num_adc_channels the number of channels the ADC actually inputs. + * @max_samplerate: maximum supported sample rate + * @name: device name + * @num_adc_channels: the number of physical voltage inputs + * @num_channels: number of IIO channels * @scale_setup_cb: callback to setup the scales for each channel * @sw_setup_cb: callback to setup the software mode if available. - * @oversampling_avail pointer to the array which stores the available + * @oversampling_avail: pointer to the array which stores the available * oversampling ratios. - * @oversampling_num number of elements stored in oversampling_avail array - * @os_req_reset some devices require a reset to update oversampling - * @init_delay_ms required delay in milliseconds for initialization + * @oversampling_num: number of elements stored in oversampling_avail array + * @os_req_reset: some devices require a reset to update oversampling + * @init_delay_ms: required delay in milliseconds for initialization * after a restart */ struct ad7606_chip_info { @@ -149,10 +149,10 @@ struct ad7606_chip_info { =20 /** * struct ad7606_chan_scale - channel scale configuration - * @scale_avail pointer to the array which stores the available scales - * @num_scales number of elements stored in the scale_avail array - * @range voltage range selection, selects which scale to apply - * @reg_offset offset for the register value, to be applied when + * @scale_avail: pointer to the array which stores the available scales + * @num_scales: number of elements stored in the scale_avail array + * @range: voltage range selection, selects which scale to apply + * @reg_offset: offset for the register value, to be applied when * writing the value of 'range' to the register value */ struct ad7606_chan_scale { @@ -165,32 +165,33 @@ struct ad7606_chan_scale { =20 /** * struct ad7606_state - driver instance specific data - * @dev pointer to kernel device - * @chip_info entry in the table of chips that describes this device - * @bops bus operations (SPI or parallel) - * @chan_scales scale configuration for channels - * @oversampling oversampling selection - * @cnvst_pwm pointer to the PWM device connected to the cnvst pin - * @base_address address from where to read data in parallel operation - * @sw_mode_en software mode enabled - * @oversampling_avail pointer to the array which stores the available + * @dev: pointer to kernel device + * @chip_info: entry in the table of chips that describes this device + * @bops: bus operations (SPI or parallel) + * @chan_scales: scale configuration for channels + * @oversampling: oversampling selection + * @cnvst_pwm: pointer to the PWM device connected to the cnvst pin + * @base_address: address from where to read data in parallel operation + * @sw_mode_en: software mode enabled + * @oversampling_avail: pointer to the array which stores the available * oversampling ratios. - * @num_os_ratios number of elements stored in oversampling_avail array - * @write_scale pointer to the function which writes the scale - * @write_os pointer to the function which writes the os - * @lock protect sensor state from concurrent accesses to GPIOs - * @gpio_convst GPIO descriptor for conversion start signal (CONVST) - * @gpio_reset GPIO descriptor for device hard-reset - * @gpio_range GPIO descriptor for range selection - * @gpio_standby GPIO descriptor for stand-by signal (STBY), + * @num_os_ratios: number of elements stored in oversampling_avail array + * @back: pointer to the iio_backend structure, if used + * @write_scale: pointer to the function which writes the scale + * @write_os: pointer to the function which writes the os + * @lock: protect sensor state from concurrent accesses to GPIOs + * @gpio_convst: GPIO descriptor for conversion start signal (CONVST) + * @gpio_reset: GPIO descriptor for device hard-reset + * @gpio_range: GPIO descriptor for range selection + * @gpio_standby: GPIO descriptor for stand-by signal (STBY), * controls power-down mode of device - * @gpio_frstdata GPIO descriptor for reading from device when data + * @gpio_frstdata: GPIO descriptor for reading from device when data * is being read on the first channel - * @gpio_os GPIO descriptors to control oversampling on the device - * @complete completion to indicate end of conversion - * @trig The IIO trigger associated with the device. - * @data buffer for reading data from the device - * @d16 be16 buffer for reading data from the device + * @gpio_os: GPIO descriptors to control oversampling on the device + * @trig: The IIO trigger associated with the device. + * @completion: completion to indicate end of conversion + * @data: buffer for reading data from the device + * @d16: be16 buffer for reading data from the device */ struct ad7606_state { struct device *dev; @@ -232,17 +233,16 @@ struct ad7606_state { =20 /** * struct ad7606_bus_ops - driver bus operations - * @iio_backend_config function pointer for configuring the iio_backend for + * @iio_backend_config: function pointer for configuring the iio_backend f= or * the compatibles that use it - * @read_block function pointer for reading blocks of data + * @read_block: function pointer for reading blocks of data * @sw_mode_config: pointer to a function which configured the device * for software mode - * @reg_read function pointer for reading spi register - * @reg_write function pointer for writing spi register - * @write_mask function pointer for write spi register with mask - * @update_scan_mode function pointer for handling the calls to iio_info's= update_scan - * mode when enabling/disabling channels. - * @rd_wr_cmd pointer to the function which calculates the spi address + * @reg_read: function pointer for reading spi register + * @reg_write: function pointer for writing spi register + * @update_scan_mode: function pointer for handling the calls to iio_info's + * update_scan mode when enabling/disabling channels. + * @rd_wr_cmd: pointer to the function which calculates the spi address */ struct ad7606_bus_ops { /* more methods added in future? */ @@ -258,9 +258,9 @@ struct ad7606_bus_ops { }; =20 /** - * struct ad7606_bus_info - agregate ad7606_chip_info and ad7606_bus_ops - * @chip_info entry in the table of chips that describes this device - * @bops bus operations (SPI or parallel) + * struct ad7606_bus_info - aggregate ad7606_chip_info and ad7606_bus_ops + * @chip_info: entry in the table of chips that describes this device + * @bops: bus operations (SPI or parallel) */ struct ad7606_bus_info { const struct ad7606_chip_info *chip_info; --=20 2.43.0 From nobody Wed Dec 17 08:54:22 2025 Received: from mail-ot1-f51.google.com (mail-ot1-f51.google.com [209.85.210.51]) (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 D9047207DE2 for ; Tue, 18 Mar 2025 22:52:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338347; cv=none; b=NXv+o+A0nNh0enBAus1ocoXrUbpRoA5nnL4OEmRygvaaruJUuIAuylgKlylXSoCs3XtD8z10K9h4jpQ+pzFGvop/iGbPEHHRkfk0xtHLWQ01IMQ7ei/jEnc9J1xK2Ubzk2nKRA39d3/4PedjbwbIYNoWfgJsSjStLmSL+mf60zY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338347; c=relaxed/simple; bh=CAmnZs2wwABDFC9jlNwO8N4jlwQRTM6tiGxgYLL9RDY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sgWLDspMehq1c49HMj0ralWbkJ4h/rmuAJ5OO0B+8dQWbR//nrCSTXYwZBeGFJ9fsU7Ye1sWpNYV+5hk8MqIrwLZkq9YxKL3IKddvezZDjyZgrv8Y9gHcN4d2f0vyFEZonUH5TN8hOcxHwHVbuDYKuSVzR27gCVDXyr7+gui96U= 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=Zh7JfbqH; arc=none smtp.client-ip=209.85.210.51 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="Zh7JfbqH" Received: by mail-ot1-f51.google.com with SMTP id 46e09a7af769-72bb97260ceso1345357a34.1 for ; Tue, 18 Mar 2025 15:52:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1742338345; x=1742943145; 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=VXTB0JSR8YlwP4j7hXd1FzWCYlbD8GNV764HlBgkRx4=; b=Zh7JfbqHVtW+WLzOthYt3leFEn+VcZm+mf/fdG1iikn4tmGDMDC66CIy5EDTLxIH/U dPbgodYqKzRcr+HR78tNDKDsQnSsgAdPdZvL/OrD7lreDL9QrdZgfsDSxouzDezY5R1b wbISJq1Qhk9llMUVQNelM2fA7iDCKErWX+DJ83CTi4PwVXHuPhfi/IKxFCZ0cPilYTT0 weGfhW7it7e+kDtreJ52dkwMD+ykEpBUeDGVCnQ/5xQ340mxRte+rdK+W+5qCtWtOe76 IawAsNn8ZXXXoA0DnWebR42wAtabvIMTlZE5NnKukguNuk75a3ByluCx7jPxJcV5UYl1 fsiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742338345; x=1742943145; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VXTB0JSR8YlwP4j7hXd1FzWCYlbD8GNV764HlBgkRx4=; b=UGFBvD7mkyA7METqI/C6nPx5btJB6cSkAlHfeQj+jvEGEZLvriPGLf0qNjH+0ORahJ 55LJRzpQOOjrUN4a3yIRStgV6jwN6Xgx4QfrezPlU6PucTIA51I9Ayjl2hGveilau+0a CT86BihoZXUo+hRExnbTszFJq8qN3+zQ6AY/AudMkTZ5afwr5CzLeVJ2BCW0u427c9ZC lGqFrI+uDFqf4j8Spy3G6yGj3E7Vq3Z2WWCcqF8aNaTLG2TsAfO1i+EFcvDgGANFDo+s +gVwZqK43EyZE6SpyPdNvQ+UdxgeASGqdL/HRpFCNH1ME/F8rdEEO/KLiYs49+qSc86y XlqQ== X-Forwarded-Encrypted: i=1; AJvYcCWZ7C5odpnLoBj6S8FJLdkp2V8FmXUb+51qE6rlLtW4f4uEGU91M2SZdHOpmy7rLSFYVyq4dTdZxXjvOnM=@vger.kernel.org X-Gm-Message-State: AOJu0Yy7DTWunGYlFSaAUFAAK7Il2QCleAidfypkYwwGif/zqtKk19p8 Xswiu8nf+R0/jOGjBai16HIGonZjstc7/Uyn4xicr4AaCsSlhkWcPab0HIu6b6Y= X-Gm-Gg: ASbGncvvJnGkxwExtsb0kRWWNFciFK8tuX5wmAMTLiNoKA6DC/apH07nXHGJAnMjvAR y+v1O2bbeiDcYU13vrWSMenHQGkoXAOacIuRR6FbZipmVS9jqhp3n1Ebzn/fqpIloTjpLCoiiUw 3/zvRa03EHTR41KTtxu0Er9BZtN2eIleiNfyWF/9H3DmtlcKUOpdGQ40Kp1Kwhuy9pb+bDuIlLe j3L8ZR1RSRoopl+mub5SYsiws7boG2+SczkCj9kEKC3u6HQqA+JfcYdtyLv9pWzbEMhtUzW33hU dh3cNQfN56J1qJfaWcKx/ZWLKBncAVJ6cLKnvf4ASHTHE38QDQThcqCsQ8u4O/yYxeuYzf1UHVP p X-Google-Smtp-Source: AGHT+IFGsDtBbBpM7Kh7Y6PtGlhqpD/wrlsOJSO5O3uOMFxSFNeRnF80ethVYmcYRI9leCtRh9D9jA== X-Received: by 2002:a05:6830:2805:b0:72b:9a2e:7828 with SMTP id 46e09a7af769-72bfbf5c717mr325800a34.28.1742338345005; Tue, 18 Mar 2025 15:52:25 -0700 (PDT) Received: from [127.0.1.1] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-72bb274e95dsm2191690a34.52.2025.03.18.15.52.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 15:52:23 -0700 (PDT) From: David Lechner Date: Tue, 18 Mar 2025 17:52:14 -0500 Subject: [PATCH v2 06/10] iio: adc: ad7606: use kernel identifier name style 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: <20250318-iio-adc-ad7606-improvements-v2-6-4b605427774c@baylibre.com> References: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> In-Reply-To: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> To: Jonathan Cameron , linux-iio@vger.kernel.org Cc: Michael Hennerich , Angelo Dureghello , Alexandru Ardelean , Beniamin Bia , Stefan Popa , linux-kernel@vger.kernel.org, David Lechner , =?utf-8?q?Nuno_S=C3=A1?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3001; i=dlechner@baylibre.com; h=from:subject:message-id; bh=CAmnZs2wwABDFC9jlNwO8N4jlwQRTM6tiGxgYLL9RDY=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn2fkcKZdZwyfomU6danzE2GtoHRB3ZbhjsmKPd O1X72vcJk2JAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9n5HBUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAMoEQ/+I+kaqJc9/A5uB4ho+raAy+Dt9dUG3Up8eR8Rk0+ n/apy7QgD9WJ+m47V82jVrbwrLHwhEtYh4QIj1wI7bUb4HaAlKIWx/yc4NZj0RfpdvizencAeMv eK7oUU1sfkFFqxLkiMxfq/HxYclvMJhjLKm8FUYltmwV9ePhU1BGmdS8ATz9nlVkj6/51iO4/z8 NEv/2IPjiMVrerdKvgrmVUMvm9DFgo3GsM4bRU+TD5hx74UmGJbOm36b8dwTximDq4IE2EzFEdT 9//0zqhfxbL+k4kWDorAqubkCAlS15lcCMIOTB3eAt/WMFcLXjMaYTEAKyLwhZgDV8KqdQGByaR BPUmbm3HYQLjZS4LPbUY0cr8v140E4qqMRI26vMf4EP74RboJFFKAMU3g9CbDA9b0eagrEgLQS9 2jTGfM27uNdfucoRYhVSevYrhXPPWkQlYw9r5ByRZmbgVzYQFaWvTDX1uUFNZgXiLW8bgA22IOr dKSuW8ROlz90DQhj/t7d9fwjePUC2l75S7poZDbU1mkrpyo/dSAGaDSFED6AHZe4CTkaRtc/OC/ YQabaYROR7Gh129/T3aO68moU9QN+2oPF+hv3b/EIe/g4oRMLSAE5iwZGF+JT4pgziB8tjT2lO5 s1lj1zIFuvdnpGz2q5mmoaJ9LAFkmdw8J/i7yxVi1dZQ= X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Use lower_snake_case for the identifier names as that is the usual kernel code style. Reviewed-by: Nuno S=C3=A1 Signed-off-by: David Lechner --- drivers/iio/adc/ad7606.h | 2 +- drivers/iio/adc/ad7606_spi.c | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/iio/adc/ad7606.h b/drivers/iio/adc/ad7606.h index dd4ae59dc59ab17e437171caf6d8a5abcce97f74..5ee04e8f4041c75d66b899a9371= a75b5d0f31071 100644 --- a/drivers/iio/adc/ad7606.h +++ b/drivers/iio/adc/ad7606.h @@ -254,7 +254,7 @@ struct ad7606_bus_ops { unsigned int addr, unsigned int val); int (*update_scan_mode)(struct iio_dev *indio_dev, const unsigned long *s= can_mask); - u16 (*rd_wr_cmd)(int addr, char isWriteOp); + u16 (*rd_wr_cmd)(int addr, char is_write_op); }; =20 /** diff --git a/drivers/iio/adc/ad7606_spi.c b/drivers/iio/adc/ad7606_spi.c index c028e08efe2c82cd97249f98eec50a9a9c06471f..1abaf8626206cb30e532cf9f82e= 0d050706aa1e0 100644 --- a/drivers/iio/adc/ad7606_spi.c +++ b/drivers/iio/adc/ad7606_spi.c @@ -59,16 +59,16 @@ static const struct iio_chan_spec ad7606c_18_sw_channel= s[] =3D { AD7606_SW_CHANNEL(7, 18), }; =20 -static u16 ad7616_spi_rd_wr_cmd(int addr, char isWriteOp) +static u16 ad7616_spi_rd_wr_cmd(int addr, char is_write_op) { /* * The address of register consist of one w/r bit * 6 bits of address followed by one reserved bit. */ - return ((addr & 0x7F) << 1) | ((isWriteOp & 0x1) << 7); + return ((addr & 0x7F) << 1) | ((is_write_op & 0x1) << 7); } =20 -static u16 ad7606B_spi_rd_wr_cmd(int addr, char is_write_op) +static u16 ad7606b_spi_rd_wr_cmd(int addr, char is_write_op) { /* * The address of register consists of one bit which @@ -171,7 +171,7 @@ static int ad7616_sw_mode_config(struct iio_dev *indio_= dev) return 0; } =20 -static int ad7606B_sw_mode_config(struct iio_dev *indio_dev) +static int ad7606b_sw_mode_config(struct iio_dev *indio_dev) { struct ad7606_state *st =3D iio_priv(indio_dev); int ret; @@ -195,7 +195,7 @@ static int ad7606c_18_sw_mode_config(struct iio_dev *in= dio_dev) { int ret; =20 - ret =3D ad7606B_sw_mode_config(indio_dev); + ret =3D ad7606b_sw_mode_config(indio_dev); if (ret) return ret; =20 @@ -228,15 +228,15 @@ static const struct ad7606_bus_ops ad7606b_spi_bops = =3D { .read_block =3D ad7606_spi_read_block, .reg_read =3D ad7606_spi_reg_read, .reg_write =3D ad7606_spi_reg_write, - .rd_wr_cmd =3D ad7606B_spi_rd_wr_cmd, - .sw_mode_config =3D ad7606B_sw_mode_config, + .rd_wr_cmd =3D ad7606b_spi_rd_wr_cmd, + .sw_mode_config =3D ad7606b_sw_mode_config, }; =20 static const struct ad7606_bus_ops ad7606c_18_spi_bops =3D { .read_block =3D ad7606_spi_read_block18to32, .reg_read =3D ad7606_spi_reg_read, .reg_write =3D ad7606_spi_reg_write, - .rd_wr_cmd =3D ad7606B_spi_rd_wr_cmd, + .rd_wr_cmd =3D ad7606b_spi_rd_wr_cmd, .sw_mode_config =3D ad7606c_18_sw_mode_config, }; =20 --=20 2.43.0 From nobody Wed Dec 17 08:54:22 2025 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 C94DA2147E9 for ; Tue, 18 Mar 2025 22:52:27 +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=1742338349; cv=none; b=jetC3koeCI3x7HS+rjMypsqhHgZImen9R9q4MAK1wT7UA94womK9ekUZQj8PPprMfJzMNeCAGEMDEYYD0lBPFxo75tdx+OIizLSnUw3/0rVDFg9m+5a4SrhTCuuyZoSJp/Yr09sxAN5pI7gMHVRJWZ3LxDjs5XCmeQndC0fvaJE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338349; c=relaxed/simple; bh=7ZeeN3jt0VgVmY+v13HjPQ019EhJlakTc9anieHggfw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=t1poXdnca9xL0aZfSZ8fQJLZgzBRAe9tEwudaDESgZ0DAHScPPmFsdyHy8m8/FOvPkj69mC6eun7WuyEnU77fPIF8mCoi6ubccsE6eh9aM03+nhNth4DK+7HrsqGXLSYOsb0g7qWkuTSiQ3TfV0uwoJ+YNiQJSP8DdDYv925ZKE= 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=3d8GoheL; 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="3d8GoheL" Received: by mail-ot1-f49.google.com with SMTP id 46e09a7af769-72726a65cbaso3950291a34.0 for ; Tue, 18 Mar 2025 15:52:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1742338347; x=1742943147; 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=O9QbM8s9aJV+eD3jeL9fzQ9yUoqSg2ZDrUr+opJ83LM=; b=3d8GoheLTq5Nd7wRamFZs7+r2ZXzFASuq1fz1pxIu2aMaLUKVcJbX9xNGwFo8a7jim lwMIB4JycHa4NWiThnss6CXFqLDyYUg9ueyw5O/ywx3HgMq8ygIa4JeGvQ9UJ4MzOxCo FJRJQgDylwYI5ERkq7y1dyk/2HfI4GbBRAGAhuALyNKkw0ExYIkkf4lE+0+IQSUXg7PR 3R7Hcr95i3mJMVvlEE8Xl78pqsZa2J4lntx/ntoR8Uf0kAl5DZV4Fjwb/PObD8KQpNKO ed3r1Pv1QPBx2BdNYcRaTaNYN+eKSsZLhJ6lu4JgsiUkSZSdHKa+/qlk285phOXLLESZ gTjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742338347; x=1742943147; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O9QbM8s9aJV+eD3jeL9fzQ9yUoqSg2ZDrUr+opJ83LM=; b=bVe++ihU/np3UwjOpfU+8ph+qybLHXCwOxJ+YEm5HRzYsaA19RyYOkMcqjMC7GRdja Tj6CS2p79Zak2aSoHDuBXlHQ8xtercAaQc0jrRmVFOhF1GG08laN/5R+NINl4o9wKDTn uhFFuobaVqCLFnqzH6k/ojpmm/waLD6wi82THEAsWiFDQTAirPOuHHR/47arQFifII2Z 5F5oV41hztnkjPfoa5Jw6X0RGcuCrOM28Bi49/0eQPXhPzp3fRb1XsMBNtHgz9SLrP/Z /97F/cS8fsndI0dInYhxf5J7h1nI0rxsFOOWRCSVMDIFL0VFKJQ1a7nGCs71fo3QWdji qLCw== X-Forwarded-Encrypted: i=1; AJvYcCX6IlFmZJBe/YeusaiOLQUJeWaoh3cv+7v+NPUPJVtehUUPecS+HlX4gzYc39YrQIon3YCSLJUnGMDjV8Q=@vger.kernel.org X-Gm-Message-State: AOJu0YwfsTBU9wHu5U6nv0ybP/z3bTd9jN0L6jp931ka7mzvQ0i0IHrl ishI7amsPIMDMmAkXCDai5itFUh4/Bfj57Dk5Hijgkz8pQWtyyFlRCrQlCA1KkE= X-Gm-Gg: ASbGncsoI22ET/J+wd9O5zeGgeTIM234aPEdvnm+D2gLwE8rWuqg7kMBZFtiW77sywz CJBmez6yHmWko5gHd+iWSKdKSZ04ffZS0GGR74X9RStvjkpDGi2VUFw06WmXE7Hp4PqLJo1D0Qv fYE19E/zylxedGUrU60qwv7RMj0q+lATaWq5SUFlNMDGaqd+Mv6IEfTegaLQRPx4EWnWpnT/zQB v65XyGBuog1ZeQbkT/dSAUPlbSVHMOHJSmOcMExzREz2ZXH35S9Q9yYmljSphzlsUgZZk3Uib0R ZPGLTLjFu+T7vbm88TUhFzO94FGevdghTpC7Lyk+VclqYVivqrFssl0C2WyRtKijjnKLp5LOT5Y NYyWTwMellVY= X-Google-Smtp-Source: AGHT+IEJuFOsfabuG6mv3sgyUGFg7qkWzItxKgu1NGpAAxoJYO5QrTRC0U+51ukoMzZQNMgPFjMN5w== X-Received: by 2002:a05:6830:3811:b0:727:39d7:b0d5 with SMTP id 46e09a7af769-72bfbdd54fdmr472677a34.15.1742338346818; Tue, 18 Mar 2025 15:52:26 -0700 (PDT) Received: from [127.0.1.1] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-72bb274e95dsm2191690a34.52.2025.03.18.15.52.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 15:52:26 -0700 (PDT) From: David Lechner Date: Tue, 18 Mar 2025 17:52:15 -0500 Subject: [PATCH v2 07/10] iio: adc: ad7606: don't use address field 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: <20250318-iio-adc-ad7606-improvements-v2-7-4b605427774c@baylibre.com> References: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> In-Reply-To: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> To: Jonathan Cameron , linux-iio@vger.kernel.org Cc: Michael Hennerich , Angelo Dureghello , Alexandru Ardelean , Beniamin Bia , Stefan Popa , linux-kernel@vger.kernel.org, David Lechner , =?utf-8?q?Nuno_S=C3=A1?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2364; i=dlechner@baylibre.com; h=from:subject:message-id; bh=7ZeeN3jt0VgVmY+v13HjPQ019EhJlakTc9anieHggfw=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn2fkdEZRZtf2XI302kdIOFOCRJHqREn8SCysjg K5UrJx5Z6CJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9n5HRUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fANoTxAAlfPZMqN41RHjBcTsnG/xzXm/343LGv7XV0ZTsXF w3wpPpVXGWp+IyCl3UI8Xa4lgHvHgIg29tVMLPM6uMytUqiPryJpojJ40iOqTKUs6Js8oVOCFjR wxIij43VoI0FfY1eUYo0M6tMnQz3H5Agx7/amIBdahZbG1uaEEQaoBIiMRJDjk1kC+VSgnBHcgg j/ynEAhHqnwrla6z5tKVOUoXgaQCA2J0ckEk/aa8KE7lOHwqvnJ2TFhRSm96M3SNgoFfgIhj0Wh xipbWaQP9a79lkMuagYmpim7+7fyJE6F2BqAQeGBcrQbKHaG6MDLS39tyVSMarkw/6TVIXQppaD rAYJyxUyCWrgl3FRXtgJcUyNUViT+nZ2wWaBjla9NOpIHBHoxMmJC4DAx6xu/J7wjeqxyR86Okn Q2DpC9G9eVHm7axj0D8lY7ACunASXQKimt4pryJJ43+T9PyZfVd5y1A2qgqfF9MfD4K0xLSShsv qmpK0G2KI6c2SJbnh/HmyBBVA8ZkwNaMvFkEt5YgZhsjuHdANzx8vBtu5UH8V1FLw3ScBIojpDf MNX03rxa8u+uq0E9spraRIhKyW2wlCeXsX4maSQFCDtBB1TgOwmAQgRpPAz28gkg+HAO0vaiLpR d2Jq1xUxbvVccBlvKxGv+OV65ht6MUSG0v0aJoZed3Ic= X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Drop use of the address field in the ad7606 driver. This field was duplicating the same info that was already in the channel and scan_index fields. This is one less thing to have to hold in your mind when reading the code. Reviewed-by: Nuno S=C3=A1 Signed-off-by: David Lechner --- drivers/iio/adc/ad7606.c | 8 ++++---- drivers/iio/adc/ad7606.h | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/iio/adc/ad7606.c b/drivers/iio/adc/ad7606.c index b81591d8bc520c730e1632bd15eb1eddb5a59c90..3f03d4b7c2ceed5f7a134189c28= 3ce392167b111 100644 --- a/drivers/iio/adc/ad7606.c +++ b/drivers/iio/adc/ad7606.c @@ -776,14 +776,14 @@ static int ad7606_read_raw(struct iio_dev *indio_dev, case IIO_CHAN_INFO_RAW: if (!iio_device_claim_direct(indio_dev)) return -EBUSY; - ret =3D ad7606_scan_direct(indio_dev, chan->address, val); + ret =3D ad7606_scan_direct(indio_dev, chan->scan_index, val); iio_device_release_direct(indio_dev); if (ret < 0) return ret; return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: if (st->sw_mode_en) - ch =3D chan->address; + ch =3D chan->scan_index; cs =3D &st->chan_scales[ch]; *val =3D cs->scale_avail[cs->range][0]; *val2 =3D cs->scale_avail[cs->range][1]; @@ -865,7 +865,7 @@ static int ad7606_write_raw(struct iio_dev *indio_dev, switch (mask) { case IIO_CHAN_INFO_SCALE: if (st->sw_mode_en) - ch =3D chan->address; + ch =3D chan->scan_index; cs =3D &st->chan_scales[ch]; for (i =3D 0; i < cs->num_scales; i++) { scale_avail_uv[i] =3D cs->scale_avail[i][0] * MICRO + @@ -1072,7 +1072,7 @@ static int ad7606_read_avail(struct iio_dev *indio_de= v, =20 case IIO_CHAN_INFO_SCALE: if (st->sw_mode_en) - ch =3D chan->address; + ch =3D chan->scan_index; =20 cs =3D &st->chan_scales[ch]; *vals =3D (int *)cs->scale_avail; diff --git a/drivers/iio/adc/ad7606.h b/drivers/iio/adc/ad7606.h index 5ee04e8f4041c75d66b899a9371a75b5d0f31071..16a230a7c00e3504744b97da339= cdea6b8ecf40f 100644 --- a/drivers/iio/adc/ad7606.h +++ b/drivers/iio/adc/ad7606.h @@ -45,7 +45,6 @@ .type =3D IIO_VOLTAGE, \ .indexed =3D 1, \ .channel =3D num, \ - .address =3D num, \ .info_mask_separate =3D mask_sep, \ .info_mask_separate_available =3D \ mask_sep_avail, \ --=20 2.43.0 From nobody Wed Dec 17 08:54:22 2025 Received: from mail-ot1-f52.google.com (mail-ot1-f52.google.com [209.85.210.52]) (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 82C7B21480C for ; Tue, 18 Mar 2025 22:52:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338351; cv=none; b=O7aeiSX/xviwMw7J5FKvEyPY2d/qcl5J/A+cg4VNYuo86pt0blB+H70F++tbOYwHOcZZ2yzAqTTm82TADjEptZ4ZlQ+b/BpDjJFQ0jgSp2gCWCwTXaDn9TYVgEY6qw1lPuPyM/7D0aLkbkbNrQcaog7sQMUixeZIZ4VLl0X5Dzg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338351; c=relaxed/simple; bh=n2XuLLxXTCJz5e0bPe5IE80EDLX+dhBN5Wga3hNAHPk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mcZGbJ5ZIkuyBxz8OY7vZtV2FxR6AHyQjIzz6WxvH9DYy0C45zeFPEvcCOsHJtquzwxBBdGwqaFLp/ieEwlyptCYd2rfDFvbmQlYbRkcA76EkUmhDhobh2W03Uma11GsX+ZpiBEp51oCvtrpuUoDDwkyoQTyn5P+F7BzQL5akDk= 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=CeWog26X; arc=none smtp.client-ip=209.85.210.52 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="CeWog26X" Received: by mail-ot1-f52.google.com with SMTP id 46e09a7af769-7272a839f3dso1693271a34.3 for ; Tue, 18 Mar 2025 15:52:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1742338348; x=1742943148; 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=IjwttRptCyX/KmMrSfvlA1VrtaMa/7/5WsmiZGKA3eU=; b=CeWog26XXzmblzCH4xDMAazAR4ljCHCTSuIwliJZCJwXwoa8yDsI/9S/+qomV65+ku FVhXiT9Qh3/Ypd9d+VIxKeRE/c4cdOpghLvRpj77GChSAIyYz/77x4s0t7HQ6GdrnNFF FkOeSHo4N90K/72q2zTIi1dNGYDj3y9jHjb+xGSX7bIvi2T8UfZMwDmfGT4j1MWr+GT1 BXp+rsK7Vdk4T5dMlyTGzawC/eRWTxXaLqW1uCN+9lXd75V95zKi0zBDAKjzPkx/sZ44 n8dxIOS/z/4/GQ5aJSbdWQFwtMZ/MOKWg1K8R9KF7djZ68+W/RRhVpdDthgsTbM8kpRC +ZFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742338348; x=1742943148; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IjwttRptCyX/KmMrSfvlA1VrtaMa/7/5WsmiZGKA3eU=; b=bCuB8lRa4VGcm9X0++GES/WVz6v7p2tXZcXkwzpFG9PBS+vRyIFumo8qZnl+G2MOl8 UURXfpOf1TnENeVTwGM2PdUR56CNdo/FDewWi1Gvbs556mMKGi/eXA6CPdZzvXlrXUyi f7n/LTo+Jfn2ogSJ6KEcRc2KAizF+E65DKVLzetCyqGS+jbtAYDC6iRQcyLDeBIkONOs H7Fd5zIxyl0KVLe5T4QCXzB1bl9bQKfQ2qvw9Hq11WdKjpbzbVE1MkVjEOLt3ZSBjDv1 pHP0ETaLYOaXzn/c0109OMgxdZQLEcI2yKLdRivnVkQSBxtOHV+/Num3aBT7SziH8+x1 FmOQ== X-Forwarded-Encrypted: i=1; AJvYcCXPICUNKmMZ/TxoAd0ANeAfZLNJFdxpuVNQTG5rWBLFxtpSEupeEN2SgCefwIHmP3l5iIv6P8APjuRDElU=@vger.kernel.org X-Gm-Message-State: AOJu0Yzk3sEIvMoKnlITC5QWAVabo8Lmuvg6mJIHxMRIRwBaUjAQTB6z 4MDwjs7hULXJqWA4sVtf5cxAhsAm++vhmVuGJSP60zfILbf4dpGEexBn1q1ZAPQ= X-Gm-Gg: ASbGncvrLQjwek5BWJCIknRbkRygRQ/qOU5vIKznj0UdP8yLfxd/Pmbll6X1w//VdJq L4/KCT+M+EphdA5QEnUovi8rNmcImLv6qRYVfmc9uD8+XdrdxBkgK+5zcY6R2K5TxCTCrVTinQ/ v0ZphPB/RUZhi0cSd1gdY/bSjiL/HJoN9K4qh/8mAx8gS22rd7/AlLh4vPxMdSpD3QGsrwEiIo9 6r3G5UV/TQ7EWojwEpv6ozQ7slsbtDZ3PY/ThuvfsQojAOYV0wn60Sakp4HKp90M6ncsWOBrH7c KCc3APG1Gp4QBlZb66a0BPAVYEmAM+Nh/y8PUzvWvRZlZzg0/EzfcqGNduMg7Q/ZpitvBy+kf3a r X-Google-Smtp-Source: AGHT+IFZeOB6UmAok88QtPjMZ4a7qssj21BeEdLRLwKLrzI8BBpWjmA+/MaBq6owK+oeIB5KrrWUKQ== X-Received: by 2002:a05:6830:3903:b0:727:2f79:ce3a with SMTP id 46e09a7af769-72bfbdc582emr520823a34.12.1742338348657; Tue, 18 Mar 2025 15:52:28 -0700 (PDT) Received: from [127.0.1.1] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-72bb274e95dsm2191690a34.52.2025.03.18.15.52.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 15:52:27 -0700 (PDT) From: David Lechner Date: Tue, 18 Mar 2025 17:52:16 -0500 Subject: [PATCH v2 08/10] iio: adc: ad7606: drop ch param from ad7606_scale_setup_cb_t 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: <20250318-iio-adc-ad7606-improvements-v2-8-4b605427774c@baylibre.com> References: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> In-Reply-To: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> To: Jonathan Cameron , linux-iio@vger.kernel.org Cc: Michael Hennerich , Angelo Dureghello , Alexandru Ardelean , Beniamin Bia , Stefan Popa , linux-kernel@vger.kernel.org, David Lechner , =?utf-8?q?Nuno_S=C3=A1?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6289; i=dlechner@baylibre.com; h=from:subject:message-id; bh=n2XuLLxXTCJz5e0bPe5IE80EDLX+dhBN5Wga3hNAHPk=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn2fkddg4E/ENxwGAXmv7gEi6SWv1qMVJ/43o2K 8DKGGweFWuJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9n5HRUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAPZ2xAA13FHef7K1wo5lD2qvUjWMlT4vMtahvJ4RcAzXf6 dWXiycvPGGTxGTzb0ngrsueqOxaxcYbUjiBVRxa9rmkcjZpFjyB6iS+LvuT1//rgTJze7j7ss+w 4Z+pSrn0G78DRNdIsesOwfvQso27KKIty4Z3ufhzvtoo/DufJSvzAEkehGxQGbm7QtgWSAK77/A ZJsAbNVS4ImaSz6nfmeLbC54/6NHbji/44Esn+XSItPhdLcuqSnA7BHHbHMdgZeFaANfBWce9eU gW1sB/cA8NgesbVd6AYqTW5CuAKLuxnSYRDrSwXGjWe8WyI2ztfm13nqh2UZUBmAv19xwIqMtl4 k9LwyzIMx1C1oz2BuWv8T3aVWUpTk4UJk2N9+i4/Uef7qfQu5IwxXn0c7/6FYJ48KTjRxN6m86C vCDojG30HyYQ6kncX4IBRYJFFzi5tmmj6dAYjqiJ2j9Pf01OfPqoPJzgK+erdzwmyhpjoJ+CBaY n0tqy3fn89weR+3gWhfIvUnceX9F3oejVYig8TOpQF3zHqntK92ujLJ635MNs57vM7NM2TBsOLQ hAkYdQxEXfiQwUf+vET7vK/roFBfvKXgrvMzP9R/A/FknGqSiD16uXBTzu24JqZsaPGZUbwS5RT 7/w2dW80QK87zdOQwsvftnH+/hfHXFdo+oZrffCLJcGQ= X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Drop the ch parameter from the ad7606_scale_setup_cb_t functions. The same info is already available from the chan param via chan->scan_type and chan->channel, so the parameter is redundant. Reviewed-by: Nuno S=C3=A1 Signed-off-by: David Lechner --- drivers/iio/adc/ad7606.c | 44 +++++++++++++++++++++++--------------------- drivers/iio/adc/ad7606.h | 2 +- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/drivers/iio/adc/ad7606.c b/drivers/iio/adc/ad7606.c index 3f03d4b7c2ceed5f7a134189c283ce392167b111..09c35161df365e531b8d254c733= 3359facf045c7 100644 --- a/drivers/iio/adc/ad7606.c +++ b/drivers/iio/adc/ad7606.c @@ -182,17 +182,17 @@ static const struct iio_chan_spec ad7616_channels[] = =3D { }; =20 static int ad7606c_18bit_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch); + struct iio_chan_spec *chan); static int ad7606c_16bit_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch); + struct iio_chan_spec *chan); static int ad7606_16bit_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch); + struct iio_chan_spec *chan); static int ad7607_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch); + struct iio_chan_spec *chan); static int ad7608_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch); + struct iio_chan_spec *chan); static int ad7609_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch); + struct iio_chan_spec *chan); static int ad7616_sw_mode_setup(struct iio_dev *indio_dev); static int ad7606b_sw_mode_setup(struct iio_dev *indio_dev); =20 @@ -346,10 +346,10 @@ int ad7606_reset(struct ad7606_state *st) EXPORT_SYMBOL_NS_GPL(ad7606_reset, "IIO_AD7606"); =20 static int ad7606_16bit_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch) + struct iio_chan_spec *chan) { struct ad7606_state *st =3D iio_priv(indio_dev); - struct ad7606_chan_scale *cs =3D &st->chan_scales[ch]; + struct ad7606_chan_scale *cs =3D &st->chan_scales[chan->scan_index]; =20 if (!st->sw_mode_en) { /* tied to logic low, analog input range is +/- 5V */ @@ -425,10 +425,10 @@ static int ad7606_get_chan_config(struct iio_dev *ind= io_dev, int ch, } =20 static int ad7606c_18bit_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch) + struct iio_chan_spec *chan) { struct ad7606_state *st =3D iio_priv(indio_dev); - struct ad7606_chan_scale *cs =3D &st->chan_scales[ch]; + struct ad7606_chan_scale *cs =3D &st->chan_scales[chan->scan_index]; bool bipolar, differential; int ret; =20 @@ -439,7 +439,8 @@ static int ad7606c_18bit_chan_scale_setup(struct iio_de= v *indio_dev, return 0; } =20 - ret =3D ad7606_get_chan_config(indio_dev, ch, &bipolar, &differential); + ret =3D ad7606_get_chan_config(indio_dev, chan->scan_index, &bipolar, + &differential); if (ret) return ret; =20 @@ -482,10 +483,10 @@ static int ad7606c_18bit_chan_scale_setup(struct iio_= dev *indio_dev, } =20 static int ad7606c_16bit_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch) + struct iio_chan_spec *chan) { struct ad7606_state *st =3D iio_priv(indio_dev); - struct ad7606_chan_scale *cs =3D &st->chan_scales[ch]; + struct ad7606_chan_scale *cs =3D &st->chan_scales[chan->scan_index]; bool bipolar, differential; int ret; =20 @@ -496,7 +497,8 @@ static int ad7606c_16bit_chan_scale_setup(struct iio_de= v *indio_dev, return 0; } =20 - ret =3D ad7606_get_chan_config(indio_dev, ch, &bipolar, &differential); + ret =3D ad7606_get_chan_config(indio_dev, chan->scan_index, &bipolar, + &differential); if (ret) return ret; =20 @@ -540,10 +542,10 @@ static int ad7606c_16bit_chan_scale_setup(struct iio_= dev *indio_dev, } =20 static int ad7607_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch) + struct iio_chan_spec *chan) { struct ad7606_state *st =3D iio_priv(indio_dev); - struct ad7606_chan_scale *cs =3D &st->chan_scales[ch]; + struct ad7606_chan_scale *cs =3D &st->chan_scales[chan->scan_index]; =20 cs->range =3D 0; cs->scale_avail =3D ad7607_hw_scale_avail; @@ -552,10 +554,10 @@ static int ad7607_chan_scale_setup(struct iio_dev *in= dio_dev, } =20 static int ad7608_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch) + struct iio_chan_spec *chan) { struct ad7606_state *st =3D iio_priv(indio_dev); - struct ad7606_chan_scale *cs =3D &st->chan_scales[ch]; + struct ad7606_chan_scale *cs =3D &st->chan_scales[chan->scan_index]; =20 cs->range =3D 0; cs->scale_avail =3D ad7606_18bit_hw_scale_avail; @@ -564,10 +566,10 @@ static int ad7608_chan_scale_setup(struct iio_dev *in= dio_dev, } =20 static int ad7609_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch) + struct iio_chan_spec *chan) { struct ad7606_state *st =3D iio_priv(indio_dev); - struct ad7606_chan_scale *cs =3D &st->chan_scales[ch]; + struct ad7606_chan_scale *cs =3D &st->chan_scales[chan->scan_index]; =20 cs->range =3D 0; cs->scale_avail =3D ad7609_hw_scale_avail; @@ -1305,7 +1307,7 @@ static int ad7606_chan_scales_setup(struct iio_dev *i= ndio_dev) indio_dev->channels =3D chans; =20 for (ch =3D 0; ch < st->chip_info->num_adc_channels; ch++) { - ret =3D st->chip_info->scale_setup_cb(indio_dev, &chans[ch + offset], ch= ); + ret =3D st->chip_info->scale_setup_cb(indio_dev, &chans[ch + offset]); if (ret) return ret; } diff --git a/drivers/iio/adc/ad7606.h b/drivers/iio/adc/ad7606.h index 16a230a7c00e3504744b97da339cdea6b8ecf40f..c57a193761c92add6f82cf0cc51= ccfdb9d8d2ab4 100644 --- a/drivers/iio/adc/ad7606.h +++ b/drivers/iio/adc/ad7606.h @@ -113,7 +113,7 @@ struct ad7606_state; =20 typedef int (*ad7606_scale_setup_cb_t)(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch); + struct iio_chan_spec *chan); typedef int (*ad7606_sw_setup_cb_t)(struct iio_dev *indio_dev); =20 /** --=20 2.43.0 From nobody Wed Dec 17 08:54:22 2025 Received: from mail-oa1-f47.google.com (mail-oa1-f47.google.com [209.85.160.47]) (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 8ADF8214A80 for ; Tue, 18 Mar 2025 22:52:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338355; cv=none; b=pgy62orEg7IL1aysB2SKwlD51iqgXkYKfcROyKJYZztO5V1dz4zP9jnZnLgpAZLuVfV2whKVt/44lIrvG3fAhZ5yFadFH/5DFa6mF6p7mx6S8gG9GrYUbPrvn/UjujRSXVx51alQgtoxm8xOeRxrzlstMNktsjmiMzrZF8TmacI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338355; c=relaxed/simple; bh=Uzrv30yYQqWShTTtrC3FkE9Uod1gM6aCjwnsOexjGsU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SD6aTmin1j3N+mugAfBEU0H0nPTeX4b/hgszkB2Wm3ThHv5skLy6XOr97nxVhxvPw0e8BnBrxqFQYM5SAa8uShFRKDUGFlbvlGxNnSv2zgB7dh0+DTqgLMLiqV2ElP6ZsqC9sCZogBe7TEK+uB1HL1RW5Oqd0tVH2nbru8kXXCY= 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=i0YBjuo6; arc=none smtp.client-ip=209.85.160.47 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="i0YBjuo6" Received: by mail-oa1-f47.google.com with SMTP id 586e51a60fabf-2b38896c534so3267539fac.0 for ; Tue, 18 Mar 2025 15:52:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1742338351; x=1742943151; 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=yy74OziyShY3LbwJ+ieZKhuYNkY88Mm9WSgSOOCUGR4=; b=i0YBjuo6qJJK7FIT7JXXoZVHXi+VaapNKJ0JAEwQZ4a60vvI7T/ZfnE2mZcesgzAU6 4kgEpepCvR7vk0P8pwpeUKeDIZu4YxrMySFKXlubzUnFk2sXMQAcPODsC+Kkfhh0AILD 2wLbV+uyT28AZfOYPPiahom9gdJGATcAZIZsxl8bb/hZe6KJ0am33d6AWmFtswBklLQt ZmgEk+SfzGurU7jfMufNBrZ3m+2/nFXXkeQsqqT+TOyBv+7glDcvJ22rzsWzlngKFdCg aE6D9amEDV9xpP43L2k6ujhu00f6zIUYFEJ+LSjW7pmYH4PPJg7t+E6A0ylFP5687+m4 KHag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742338351; x=1742943151; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yy74OziyShY3LbwJ+ieZKhuYNkY88Mm9WSgSOOCUGR4=; b=gCzWmTDrI03iURhtKZa6Yv2yCTGKAbK6JSVY8yyiwoE0M4HuQyR0k6kgXrGsUgU6aM a1sKJSs6/XBLdYBL0MWgbHmvXZQ49w5mDjgAgIz3HOS48gMDKIQ/hLYDjNDACyqzV3Bz Pin4NWdgJ1ULrAekjg8tu0I4aemIgBHtPMQOfsXuaNbEIW89Qk/vsTwaA3AdddZ42n5i b0wUvlRNNUwZxsLCRjnw37QEToXo0KWzAgOYdvwmAuR1cfEJgQZTGFn3xzrGt68mB+Ai wZ8Xf+yM4qutgyY4HvWqZ1jsN+hEibwGV8UhMXbZ8wjT/IRZbl0xTTe2Agq2J7ZmyfiC Wz+w== X-Forwarded-Encrypted: i=1; AJvYcCVOopFD9YmwzWccg/8F3Ka4TuGKJ1NSAk4b9XTnUZ3AAtHauRTVN7+2wT/BIFk+g3/3Dz1FI22NL8IID1I=@vger.kernel.org X-Gm-Message-State: AOJu0YyRpIVt0lkjfiAIpkWDy/fJJLRmFiUtYjye/tvD6QZDqA5Lz7YU MfVXJQ9Cmgh9tFNMwp2+EJQEznwEt3RPzAlGFnmpmO2fNA/FAc2z4MyLvZZDYWA= X-Gm-Gg: ASbGncu230KZBd0K7AjPydCbR+etaEvHtW89vd+7cTjfXE4jrTgXvxQTdt8KjK1+z4w zFg1rd+NkgK9dTVe5ubvSXep+fn7piKoPWoKUb1ywFt7UnEuCPpWyKyIIPoY/zcVnxCIgm6K3+3 F849EQ0WXq6hDKULIG8VR6LRwijPZshoge8YQuUkk3dh5/Tl5Ap2zgUki/6GkQnx/0TQSvmz7cn Lco+P/CKBz6frEatZWelAz1K6DXa215gkoUulji5IgbURUPS1jVDl59lVY9lIj9cT4p/eQfLbmA dUtGMvnrgGWeTEeBlpuTZ7L9NdQubZCYlX5nXRaxha8rM+jIWrriUyLp+z/3NodbDt+k8kxVhE7 xozrVvsiFib0= X-Google-Smtp-Source: AGHT+IHDNjYdCXJgGEhG/OvAI5fdhAPcCIDjzLH4qe9nNtPHDKJYInZX2MI7qzObTnluXZe2Pkgh9w== X-Received: by 2002:a05:6870:2252:b0:29e:3d0b:834 with SMTP id 586e51a60fabf-2c7454187eemr245240fac.5.1742338351588; Tue, 18 Mar 2025 15:52:31 -0700 (PDT) Received: from [127.0.1.1] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-72bb274e95dsm2191690a34.52.2025.03.18.15.52.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 15:52:30 -0700 (PDT) From: David Lechner Date: Tue, 18 Mar 2025 17:52:17 -0500 Subject: [PATCH v2 09/10] iio: adc: ad7606: dynamically allocate channel info 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: <20250318-iio-adc-ad7606-improvements-v2-9-4b605427774c@baylibre.com> References: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> In-Reply-To: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> To: Jonathan Cameron , linux-iio@vger.kernel.org Cc: Michael Hennerich , Angelo Dureghello , Alexandru Ardelean , Beniamin Bia , Stefan Popa , linux-kernel@vger.kernel.org, David Lechner , =?utf-8?q?Nuno_S=C3=A1?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=24126; i=dlechner@baylibre.com; h=from:subject:message-id; bh=Uzrv30yYQqWShTTtrC3FkE9Uod1gM6aCjwnsOexjGsU=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn2fkd4475+D1YJMpWfolvNcLwqHxF0iYHY9NMh iZ1BWCv8ueJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9n5HRUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAOX4A/9Hse0+u9nYArn5w1ulBkhSU8R/EI8NtjLvS0qyI7 wSmnMyGWgkwSJck8Z2f3xRbHUvG0AsB1uGo2fpglizU/QSlNoQRavgjEO2wY2wyIAKtDx/Pwr1x W7s6b70Fk39ZscS8fPA34a2Pzcq2KN8h3D5zZWSy40NdcibKnQZ3yxo3XUvFG+XVoc+zyD8/Fl2 x+OlkeE9sSBdaxsWWQEJR3prOg/fIK0vPZgHVmqppTjT7PScuDtXR2XOfg5x2mVN3KCbzemEdzD +S4jdwFHhXUs0WC27dOmq1GLxEfYdC6p2L3L/ObK3YFdf01ZOxJydgF1o5SAL3DzdAwYBir4ZlU L9SERIFOJ3zXEQWTygvUulhAFrQQMLXqeJMEYAOQOtGbeAksLUGY/hxflBRH8yH1ZAqLmsjms7a 2kt1rbZ3BHMYh8bZgJK/SXbjC2fvERaQkpPnvpJ+1GfR4s5pF8mBgRLEFPszZafylABly4OvKcj FKQE+m0xP1KlupqfxDYTy7ixXpxPOQNpFdl4RWqwgUSlWAAswrJpOz8MQQJvaNT/fl5MoBRW3Da Faa38DHowSIXuu9yeqOonODyomIY3/wpSflIPqqGp6HTXUCOa5mcAhkaAD2EvPQOJ7MC7CuFMlv cht6qPYn0sHChdtbrEIQF2VeXpptcE7CoyCXEJ5ZbnbI= X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Refactor the ad7606 drivers to dynamically allocate the channel info. The channel info was getting a bit unwieldy. In some cases, the indio_dev->channels field was getting assigned up to 3 different times, each in a different function, making it difficult to see where the info was coming from. This problem stems from the number of permutations of the channel array needed to support various modes of operation and data buses. We already have 4 per chip (hardware mode, software mode, AXI ADC backend and AXI ADC backend with software mode) and we intend to add two more per chip when adding SPI offload support. To make it easier to read and maintain, move all of the channel setup to a single function that dynamically allocates and fills in the channel info. Additionally, this lets us remove some hacks where we had to compute an offset due to the fact that sometimes there was a soft timestamp channel at the start of the array. Now the timestamp channel is always at the end of the array as is typical in other drivers. Reviewed-by: Nuno S=C3=A1 Signed-off-by: David Lechner --- drivers/iio/adc/ad7606.c | 232 ++++++++++++++++++---------------------= ---- drivers/iio/adc/ad7606.h | 76 +------------- drivers/iio/adc/ad7606_par.c | 33 ------ drivers/iio/adc/ad7606_spi.c | 86 +--------------- 4 files changed, 102 insertions(+), 325 deletions(-) diff --git a/drivers/iio/adc/ad7606.c b/drivers/iio/adc/ad7606.c index 09c35161df365e531b8d254c7333359facf045c7..f3a78b01278527a3a380b80423d= 39774cee269c4 100644 --- a/drivers/iio/adc/ad7606.c +++ b/drivers/iio/adc/ad7606.c @@ -95,92 +95,6 @@ static const unsigned int ad7616_oversampling_avail[8] = =3D { 1, 2, 4, 8, 16, 32, 64, 128, }; =20 -static const struct iio_chan_spec ad7605_channels[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(4), - AD7605_CHANNEL(0), - AD7605_CHANNEL(1), - AD7605_CHANNEL(2), - AD7605_CHANNEL(3), -}; - -static const struct iio_chan_spec ad7606_channels_16bit[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(8), - AD7606_CHANNEL(0, 16), - AD7606_CHANNEL(1, 16), - AD7606_CHANNEL(2, 16), - AD7606_CHANNEL(3, 16), - AD7606_CHANNEL(4, 16), - AD7606_CHANNEL(5, 16), - AD7606_CHANNEL(6, 16), - AD7606_CHANNEL(7, 16), -}; - -static const struct iio_chan_spec ad7606_channels_18bit[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(8), - AD7606_CHANNEL(0, 18), - AD7606_CHANNEL(1, 18), - AD7606_CHANNEL(2, 18), - AD7606_CHANNEL(3, 18), - AD7606_CHANNEL(4, 18), - AD7606_CHANNEL(5, 18), - AD7606_CHANNEL(6, 18), - AD7606_CHANNEL(7, 18), -}; - -static const struct iio_chan_spec ad7607_channels[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(8), - AD7606_CHANNEL(0, 14), - AD7606_CHANNEL(1, 14), - AD7606_CHANNEL(2, 14), - AD7606_CHANNEL(3, 14), - AD7606_CHANNEL(4, 14), - AD7606_CHANNEL(5, 14), - AD7606_CHANNEL(6, 14), - AD7606_CHANNEL(7, 14), -}; - -static const struct iio_chan_spec ad7608_channels[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(8), - AD7606_CHANNEL(0, 18), - AD7606_CHANNEL(1, 18), - AD7606_CHANNEL(2, 18), - AD7606_CHANNEL(3, 18), - AD7606_CHANNEL(4, 18), - AD7606_CHANNEL(5, 18), - AD7606_CHANNEL(6, 18), - AD7606_CHANNEL(7, 18), -}; - -/* - * The current assumption that this driver makes for AD7616, is that it's - * working in Hardware Mode with Serial, Burst and Sequencer modes activat= ed. - * To activate them, following pins must be pulled high: - * -SER/PAR - * -SEQEN - * And following pins must be pulled low: - * -WR/BURST - * -DB4/SER1W - */ -static const struct iio_chan_spec ad7616_channels[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(16), - AD7606_CHANNEL(0, 16), - AD7606_CHANNEL(1, 16), - AD7606_CHANNEL(2, 16), - AD7606_CHANNEL(3, 16), - AD7606_CHANNEL(4, 16), - AD7606_CHANNEL(5, 16), - AD7606_CHANNEL(6, 16), - AD7606_CHANNEL(7, 16), - AD7606_CHANNEL(8, 16), - AD7606_CHANNEL(9, 16), - AD7606_CHANNEL(10, 16), - AD7606_CHANNEL(11, 16), - AD7606_CHANNEL(12, 16), - AD7606_CHANNEL(13, 16), - AD7606_CHANNEL(14, 16), - AD7606_CHANNEL(15, 16), -}; - static int ad7606c_18bit_chan_scale_setup(struct iio_dev *indio_dev, struct iio_chan_spec *chan); static int ad7606c_16bit_chan_scale_setup(struct iio_dev *indio_dev, @@ -198,20 +112,18 @@ static int ad7606b_sw_mode_setup(struct iio_dev *indi= o_dev); =20 const struct ad7606_chip_info ad7605_4_info =3D { .max_samplerate =3D 300 * KILO, - .channels =3D ad7605_channels, .name =3D "ad7605-4", + .bits =3D 16, .num_adc_channels =3D 4, - .num_channels =3D 5, .scale_setup_cb =3D ad7606_16bit_chan_scale_setup, }; EXPORT_SYMBOL_NS_GPL(ad7605_4_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606_8_info =3D { .max_samplerate =3D 200 * KILO, - .channels =3D ad7606_channels_16bit, .name =3D "ad7606-8", + .bits =3D 16, .num_adc_channels =3D 8, - .num_channels =3D 9, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7606_16bit_chan_scale_setup, @@ -220,10 +132,9 @@ EXPORT_SYMBOL_NS_GPL(ad7606_8_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606_6_info =3D { .max_samplerate =3D 200 * KILO, - .channels =3D ad7606_channels_16bit, .name =3D "ad7606-6", + .bits =3D 16, .num_adc_channels =3D 6, - .num_channels =3D 7, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7606_16bit_chan_scale_setup, @@ -232,10 +143,9 @@ EXPORT_SYMBOL_NS_GPL(ad7606_6_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606_4_info =3D { .max_samplerate =3D 200 * KILO, - .channels =3D ad7606_channels_16bit, .name =3D "ad7606-4", + .bits =3D 16, .num_adc_channels =3D 4, - .num_channels =3D 5, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7606_16bit_chan_scale_setup, @@ -243,11 +153,10 @@ const struct ad7606_chip_info ad7606_4_info =3D { EXPORT_SYMBOL_NS_GPL(ad7606_4_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606b_info =3D { - .channels =3D ad7606_channels_16bit, .max_samplerate =3D 800 * KILO, .name =3D "ad7606b", + .bits =3D 16, .num_adc_channels =3D 8, - .num_channels =3D 9, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7606_16bit_chan_scale_setup, @@ -257,10 +166,9 @@ EXPORT_SYMBOL_NS_GPL(ad7606b_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606c_16_info =3D { .max_samplerate =3D 1 * MEGA, - .channels =3D ad7606_channels_16bit, .name =3D "ad7606c16", + .bits =3D 16, .num_adc_channels =3D 8, - .num_channels =3D 9, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7606c_16bit_chan_scale_setup, @@ -270,10 +178,9 @@ EXPORT_SYMBOL_NS_GPL(ad7606c_16_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7607_info =3D { .max_samplerate =3D 200 * KILO, - .channels =3D ad7607_channels, .name =3D "ad7607", + .bits =3D 14, .num_adc_channels =3D 8, - .num_channels =3D 9, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7607_chan_scale_setup, @@ -282,10 +189,9 @@ EXPORT_SYMBOL_NS_GPL(ad7607_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7608_info =3D { .max_samplerate =3D 200 * KILO, - .channels =3D ad7608_channels, .name =3D "ad7608", + .bits =3D 18, .num_adc_channels =3D 8, - .num_channels =3D 9, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7608_chan_scale_setup, @@ -294,10 +200,9 @@ EXPORT_SYMBOL_NS_GPL(ad7608_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7609_info =3D { .max_samplerate =3D 200 * KILO, - .channels =3D ad7608_channels, .name =3D "ad7609", + .bits =3D 18, .num_adc_channels =3D 8, - .num_channels =3D 9, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7609_chan_scale_setup, @@ -306,10 +211,9 @@ EXPORT_SYMBOL_NS_GPL(ad7609_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606c_18_info =3D { .max_samplerate =3D 1 * MEGA, - .channels =3D ad7606_channels_18bit, .name =3D "ad7606c18", + .bits =3D 18, .num_adc_channels =3D 8, - .num_channels =3D 9, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7606c_18bit_chan_scale_setup, @@ -319,11 +223,10 @@ EXPORT_SYMBOL_NS_GPL(ad7606c_18_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7616_info =3D { .max_samplerate =3D 1 * MEGA, - .channels =3D ad7616_channels, .init_delay_ms =3D 15, .name =3D "ad7616", + .bits =3D 16, .num_adc_channels =3D 16, - .num_channels =3D 17, .oversampling_avail =3D ad7616_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7616_oversampling_avail), .os_req_reset =3D true, @@ -373,7 +276,6 @@ static int ad7606_get_chan_config(struct iio_dev *indio= _dev, int ch, { struct ad7606_state *st =3D iio_priv(indio_dev); unsigned int num_channels =3D st->chip_info->num_adc_channels; - unsigned int offset =3D indio_dev->num_channels - st->chip_info->num_adc_= channels; struct device *dev =3D st->dev; int ret; =20 @@ -389,7 +291,7 @@ static int ad7606_get_chan_config(struct iio_dev *indio= _dev, int ch, continue; =20 /* channel number (here) is from 1 to num_channels */ - if (reg < offset || reg > num_channels) { + if (reg < 1 || reg > num_channels) { dev_warn(dev, "Invalid channel number (ignoring): %d\n", reg); continue; @@ -706,8 +608,8 @@ static int ad7606_scan_direct(struct iio_dev *indio_dev= , unsigned int ch, int *val) { struct ad7606_state *st =3D iio_priv(indio_dev); - unsigned int realbits =3D st->chip_info->channels[1].scan_type.realbits; const struct iio_chan_spec *chan; + unsigned int realbits; int ret; =20 if (st->gpio_convst) { @@ -739,7 +641,9 @@ static int ad7606_scan_direct(struct iio_dev *indio_dev= , unsigned int ch, if (ret) goto error_ret; =20 - chan =3D &indio_dev->channels[ch + 1]; + chan =3D &indio_dev->channels[ch]; + realbits =3D chan->scan_type.realbits; + if (chan->scan_type.sign =3D=3D 'u') { if (realbits > 16) *val =3D st->data.buf32[ch]; @@ -1289,29 +1193,84 @@ static int ad7606b_sw_mode_setup(struct iio_dev *in= dio_dev) return st->bops->sw_mode_config(indio_dev); } =20 -static int ad7606_chan_scales_setup(struct iio_dev *indio_dev) +static int ad7606_probe_channels(struct iio_dev *indio_dev) { struct ad7606_state *st =3D iio_priv(indio_dev); - unsigned int offset =3D indio_dev->num_channels - st->chip_info->num_adc_= channels; - struct iio_chan_spec *chans; - size_t size; - int ch, ret; - - /* Clone IIO channels, since some may be differential */ - size =3D indio_dev->num_channels * sizeof(*indio_dev->channels); - chans =3D devm_kzalloc(st->dev, size, GFP_KERNEL); - if (!chans) + struct device *dev =3D indio_dev->dev.parent; + struct iio_chan_spec *channels; + bool slow_bus; + int ret, i; + + slow_bus =3D !st->bops->iio_backend_config; + indio_dev->num_channels =3D st->chip_info->num_adc_channels; + + /* Slow buses also get 1 more channel for soft timestamp */ + if (slow_bus) + indio_dev->num_channels++; + + channels =3D devm_kcalloc(dev, indio_dev->num_channels, sizeof(*channels), + GFP_KERNEL); + if (!channels) return -ENOMEM; =20 - memcpy(chans, indio_dev->channels, size); - indio_dev->channels =3D chans; + for (i =3D 0; i < indio_dev->num_channels; i++) { + struct iio_chan_spec *chan =3D &channels[i]; =20 - for (ch =3D 0; ch < st->chip_info->num_adc_channels; ch++) { - ret =3D st->chip_info->scale_setup_cb(indio_dev, &chans[ch + offset]); + chan->type =3D IIO_VOLTAGE; + chan->indexed =3D 1; + chan->channel =3D i; + chan->scan_index =3D i; + chan->scan_type.sign =3D 's'; + chan->scan_type.realbits =3D st->chip_info->bits; + chan->scan_type.storagebits =3D st->chip_info->bits > 16 ? 32 : 16; + chan->scan_type.endianness =3D IIO_CPU; + + if (indio_dev->modes & INDIO_DIRECT_MODE) + chan->info_mask_separate |=3D BIT(IIO_CHAN_INFO_RAW); + + if (st->sw_mode_en) { + chan->info_mask_separate |=3D BIT(IIO_CHAN_INFO_SCALE); + chan->info_mask_separate_available |=3D + BIT(IIO_CHAN_INFO_SCALE); + + /* + * All chips with software mode support oversampling, + * so we skip the oversampling_available check. And the + * shared_by_type instead of shared_by_all on slow + * buses is for backward compatibility. + */ + if (slow_bus) + chan->info_mask_shared_by_type |=3D + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO); + else + chan->info_mask_shared_by_all |=3D + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO); + + chan->info_mask_shared_by_all_available |=3D + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO); + } else { + chan->info_mask_shared_by_type |=3D + BIT(IIO_CHAN_INFO_SCALE); + + if (st->chip_info->oversampling_avail) + chan->info_mask_shared_by_all |=3D + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO); + } + + if (!slow_bus) + chan->info_mask_shared_by_all |=3D + BIT(IIO_CHAN_INFO_SAMP_FREQ); + + ret =3D st->chip_info->scale_setup_cb(indio_dev, chan); if (ret) return ret; } =20 + if (slow_bus) + channels[i] =3D (struct iio_chan_spec)IIO_CHAN_SOFT_TIMESTAMP(i); + + indio_dev->channels =3D channels; + return 0; } =20 @@ -1343,6 +1302,11 @@ int ad7606_probe(struct device *dev, int irq, void _= _iomem *base_address, st->bops =3D bops; st->base_address =3D base_address; st->oversampling =3D 1; + st->sw_mode_en =3D device_property_read_bool(dev, "adi,sw-mode"); + + if (st->sw_mode_en && !chip_info->sw_setup_cb) + return dev_err_probe(dev, -EINVAL, + "Software mode is not supported for this chip\n"); =20 ret =3D devm_regulator_get_enable(dev, "avcc"); if (ret) @@ -1371,10 +1335,14 @@ int ad7606_probe(struct device *dev, int irq, void = __iomem *base_address, else indio_dev->info =3D &ad7606_info_no_os_or_range; } - indio_dev->modes =3D INDIO_DIRECT_MODE; + + /* AXI ADC backend doesn't support single read. */ + indio_dev->modes =3D st->bops->iio_backend_config ? 0 : INDIO_DIRECT_MODE; indio_dev->name =3D chip_info->name; - indio_dev->channels =3D st->chip_info->channels; - indio_dev->num_channels =3D st->chip_info->num_channels; + + ret =3D ad7606_probe_channels(indio_dev); + if (ret) + return ret; =20 ret =3D ad7606_reset(st); if (ret) @@ -1465,17 +1433,11 @@ int ad7606_probe(struct device *dev, int irq, void = __iomem *base_address, st->write_scale =3D ad7606_write_scale_hw; st->write_os =3D ad7606_write_os_hw; =20 - st->sw_mode_en =3D st->chip_info->sw_setup_cb && - device_property_present(st->dev, "adi,sw-mode"); if (st->sw_mode_en) { indio_dev->info =3D &ad7606_info_sw_mode; st->chip_info->sw_setup_cb(indio_dev); } =20 - ret =3D ad7606_chan_scales_setup(indio_dev); - if (ret) - return ret; - return devm_iio_device_register(dev, indio_dev); } EXPORT_SYMBOL_NS_GPL(ad7606_probe, "IIO_AD7606"); diff --git a/drivers/iio/adc/ad7606.h b/drivers/iio/adc/ad7606.h index c57a193761c92add6f82cf0cc51ccfdb9d8d2ab4..f0b262fb4554f0bf244338c98ca= 585143321d616 100644 --- a/drivers/iio/adc/ad7606.h +++ b/drivers/iio/adc/ad7606.h @@ -40,76 +40,6 @@ #define AD7606_RANGE_CH_ADDR(ch) (0x03 + ((ch) >> 1)) #define AD7606_OS_MODE 0x08 =20 -#define AD760X_CHANNEL(num, mask_sep, mask_type, mask_all, \ - mask_sep_avail, mask_all_avail, bits) { \ - .type =3D IIO_VOLTAGE, \ - .indexed =3D 1, \ - .channel =3D num, \ - .info_mask_separate =3D mask_sep, \ - .info_mask_separate_available =3D \ - mask_sep_avail, \ - .info_mask_shared_by_type =3D mask_type, \ - .info_mask_shared_by_all =3D mask_all, \ - .info_mask_shared_by_all_available =3D \ - mask_all_avail, \ - .scan_index =3D num, \ - .scan_type =3D { \ - .sign =3D 's', \ - .realbits =3D (bits), \ - .storagebits =3D (bits) > 16 ? 32 : 16, \ - .endianness =3D IIO_CPU, \ - }, \ -} - -#define AD7606_SW_CHANNEL(num, bits) \ - AD760X_CHANNEL(num, \ - /* mask separate */ \ - BIT(IIO_CHAN_INFO_RAW) | \ - BIT(IIO_CHAN_INFO_SCALE), \ - /* mask type */ \ - BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ - /* mask all */ \ - 0, \ - /* mask separate available */ \ - BIT(IIO_CHAN_INFO_SCALE), \ - /* mask all available */ \ - BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ - bits) - -#define AD7605_CHANNEL(num) \ - AD760X_CHANNEL(num, BIT(IIO_CHAN_INFO_RAW), \ - BIT(IIO_CHAN_INFO_SCALE), 0, 0, 0, 16) - -#define AD7606_CHANNEL(num, bits) \ - AD760X_CHANNEL(num, BIT(IIO_CHAN_INFO_RAW), \ - BIT(IIO_CHAN_INFO_SCALE), \ - BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ - 0, 0, bits) - -#define AD7616_CHANNEL(num) AD7606_SW_CHANNEL(num, 16) - -#define AD7606_BI_CHANNEL(num) \ - AD760X_CHANNEL(num, 0, \ - BIT(IIO_CHAN_INFO_SCALE), \ - BIT(IIO_CHAN_INFO_SAMP_FREQ) | \ - BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ - 0, 0, 16) - -#define AD7606_BI_SW_CHANNEL(num) \ - AD760X_CHANNEL(num, \ - /* mask separate */ \ - BIT(IIO_CHAN_INFO_SCALE), \ - /* mask type */ \ - 0, \ - /* mask all */ \ - BIT(IIO_CHAN_INFO_SAMP_FREQ) | \ - BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ - /* mask separate available */ \ - BIT(IIO_CHAN_INFO_SCALE), \ - /* mask all available */ \ - BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ - 16) - struct ad7606_state; =20 typedef int (*ad7606_scale_setup_cb_t)(struct iio_dev *indio_dev, @@ -118,11 +48,10 @@ typedef int (*ad7606_sw_setup_cb_t)(struct iio_dev *in= dio_dev); =20 /** * struct ad7606_chip_info - chip specific information - * @channels: channel specification * @max_samplerate: maximum supported sample rate * @name: device name + * @bits: data width in bits * @num_adc_channels: the number of physical voltage inputs - * @num_channels: number of IIO channels * @scale_setup_cb: callback to setup the scales for each channel * @sw_setup_cb: callback to setup the software mode if available. * @oversampling_avail: pointer to the array which stores the available @@ -133,11 +62,10 @@ typedef int (*ad7606_sw_setup_cb_t)(struct iio_dev *in= dio_dev); * after a restart */ struct ad7606_chip_info { - const struct iio_chan_spec *channels; unsigned int max_samplerate; const char *name; + unsigned int bits; unsigned int num_adc_channels; - unsigned int num_channels; ad7606_scale_setup_cb_t scale_setup_cb; ad7606_sw_setup_cb_t sw_setup_cb; const unsigned int *oversampling_avail; diff --git a/drivers/iio/adc/ad7606_par.c b/drivers/iio/adc/ad7606_par.c index 335fb481bfde15b79331eabdcbc970d70880338c..e33b07ab5eace4b78e7cf39ee7e= 8d9379c9f73e7 100644 --- a/drivers/iio/adc/ad7606_par.c +++ b/drivers/iio/adc/ad7606_par.c @@ -21,28 +21,6 @@ #include "ad7606.h" #include "ad7606_bus_iface.h" =20 -static const struct iio_chan_spec ad7606b_bi_channels[] =3D { - AD7606_BI_CHANNEL(0), - AD7606_BI_CHANNEL(1), - AD7606_BI_CHANNEL(2), - AD7606_BI_CHANNEL(3), - AD7606_BI_CHANNEL(4), - AD7606_BI_CHANNEL(5), - AD7606_BI_CHANNEL(6), - AD7606_BI_CHANNEL(7), -}; - -static const struct iio_chan_spec ad7606b_bi_sw_channels[] =3D { - AD7606_BI_SW_CHANNEL(0), - AD7606_BI_SW_CHANNEL(1), - AD7606_BI_SW_CHANNEL(2), - AD7606_BI_SW_CHANNEL(3), - AD7606_BI_SW_CHANNEL(4), - AD7606_BI_SW_CHANNEL(5), - AD7606_BI_SW_CHANNEL(6), - AD7606_BI_SW_CHANNEL(7), -}; - static int ad7606_par_bus_update_scan_mode(struct iio_dev *indio_dev, const unsigned long *scan_mask) { @@ -94,9 +72,6 @@ static int ad7606_par_bus_setup_iio_backend(struct device= *dev, return ret; } =20 - indio_dev->channels =3D ad7606b_bi_channels; - indio_dev->num_channels =3D 8; - return 0; } =20 @@ -120,19 +95,11 @@ static int ad7606_par_bus_reg_write(struct ad7606_stat= e *st, unsigned int addr, return pdata->bus_reg_write(st->back, addr, val); } =20 -static int ad7606_par_bus_sw_mode_config(struct iio_dev *indio_dev) -{ - indio_dev->channels =3D ad7606b_bi_sw_channels; - - return 0; -} - static const struct ad7606_bus_ops ad7606_bi_bops =3D { .iio_backend_config =3D ad7606_par_bus_setup_iio_backend, .update_scan_mode =3D ad7606_par_bus_update_scan_mode, .reg_read =3D ad7606_par_bus_reg_read, .reg_write =3D ad7606_par_bus_reg_write, - .sw_mode_config =3D ad7606_par_bus_sw_mode_config, }; =20 static int ad7606_par16_read_block(struct device *dev, diff --git a/drivers/iio/adc/ad7606_spi.c b/drivers/iio/adc/ad7606_spi.c index 1abaf8626206cb30e532cf9f82e0d050706aa1e0..b2b975fb7fea4d1af6caef59e75= ca495501bc140 100644 --- a/drivers/iio/adc/ad7606_spi.c +++ b/drivers/iio/adc/ad7606_spi.c @@ -15,50 +15,6 @@ =20 #define MAX_SPI_FREQ_HZ 23500000 /* VDRIVE above 4.75 V */ =20 -static const struct iio_chan_spec ad7616_sw_channels[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(16), - AD7616_CHANNEL(0), - AD7616_CHANNEL(1), - AD7616_CHANNEL(2), - AD7616_CHANNEL(3), - AD7616_CHANNEL(4), - AD7616_CHANNEL(5), - AD7616_CHANNEL(6), - AD7616_CHANNEL(7), - AD7616_CHANNEL(8), - AD7616_CHANNEL(9), - AD7616_CHANNEL(10), - AD7616_CHANNEL(11), - AD7616_CHANNEL(12), - AD7616_CHANNEL(13), - AD7616_CHANNEL(14), - AD7616_CHANNEL(15), -}; - -static const struct iio_chan_spec ad7606b_sw_channels[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(8), - AD7606_SW_CHANNEL(0, 16), - AD7606_SW_CHANNEL(1, 16), - AD7606_SW_CHANNEL(2, 16), - AD7606_SW_CHANNEL(3, 16), - AD7606_SW_CHANNEL(4, 16), - AD7606_SW_CHANNEL(5, 16), - AD7606_SW_CHANNEL(6, 16), - AD7606_SW_CHANNEL(7, 16), -}; - -static const struct iio_chan_spec ad7606c_18_sw_channels[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(8), - AD7606_SW_CHANNEL(0, 18), - AD7606_SW_CHANNEL(1, 18), - AD7606_SW_CHANNEL(2, 18), - AD7606_SW_CHANNEL(3, 18), - AD7606_SW_CHANNEL(4, 18), - AD7606_SW_CHANNEL(5, 18), - AD7606_SW_CHANNEL(6, 18), - AD7606_SW_CHANNEL(7, 18), -}; - static u16 ad7616_spi_rd_wr_cmd(int addr, char is_write_op) { /* @@ -160,48 +116,13 @@ static int ad7606_spi_reg_write(struct ad7606_state *= st, return spi_write(spi, &st->d16[0], sizeof(st->d16[0])); } =20 -static int ad7616_sw_mode_config(struct iio_dev *indio_dev) -{ - /* - * Scale can be configured individually for each channel - * in software mode. - */ - indio_dev->channels =3D ad7616_sw_channels; - - return 0; -} - static int ad7606b_sw_mode_config(struct iio_dev *indio_dev) { struct ad7606_state *st =3D iio_priv(indio_dev); - int ret; =20 /* Configure device spi to output on a single channel */ - ret =3D st->bops->reg_write(st, AD7606_CONFIGURATION_REGISTER, - AD7606_SINGLE_DOUT); - if (ret) - return ret; - - /* - * Scale can be configured individually for each channel - * in software mode. - */ - indio_dev->channels =3D ad7606b_sw_channels; - - return 0; -} - -static int ad7606c_18_sw_mode_config(struct iio_dev *indio_dev) -{ - int ret; - - ret =3D ad7606b_sw_mode_config(indio_dev); - if (ret) - return ret; - - indio_dev->channels =3D ad7606c_18_sw_channels; - - return 0; + return st->bops->reg_write(st, AD7606_CONFIGURATION_REGISTER, + AD7606_SINGLE_DOUT); } =20 static const struct ad7606_bus_ops ad7606_spi_bops =3D { @@ -221,7 +142,6 @@ static const struct ad7606_bus_ops ad7616_spi_bops =3D { .reg_read =3D ad7606_spi_reg_read, .reg_write =3D ad7606_spi_reg_write, .rd_wr_cmd =3D ad7616_spi_rd_wr_cmd, - .sw_mode_config =3D ad7616_sw_mode_config, }; =20 static const struct ad7606_bus_ops ad7606b_spi_bops =3D { @@ -237,7 +157,7 @@ static const struct ad7606_bus_ops ad7606c_18_spi_bops = =3D { .reg_read =3D ad7606_spi_reg_read, .reg_write =3D ad7606_spi_reg_write, .rd_wr_cmd =3D ad7606b_spi_rd_wr_cmd, - .sw_mode_config =3D ad7606c_18_sw_mode_config, + .sw_mode_config =3D ad7606b_sw_mode_config, }; =20 static const struct ad7606_bus_info ad7605_4_bus_info =3D { --=20 2.43.0 From nobody Wed Dec 17 08:54:22 2025 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 58561211A1E for ; Tue, 18 Mar 2025 22:52:33 +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=1742338355; cv=none; b=cL/08uuLqZGz7bCrqcLweef77pzATSHBkdblFsZF7/iKIQLKznStsmWOyaQNTzV6eXnStKNjeyoErAUZdHWwnBhTt9Z6y+65S2Xz0Ea7M2FLYXbx1cyCfk6dPhDzI/lufL8A3UZWoJUB3m3TaHhWPrHZKueKXuayoscR6nMp+no= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338355; c=relaxed/simple; bh=kM+k5AQriGEQF4EjhCiLnSRLo7GvLPAK1dzRegvKVGo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ijxiuEMM1///3FBytRNWGV78wnI/P5Wpa3DP22a93os0n7VCmhlKKr7UgjCagUtmudUNUQMJC0Z27wo3vvZMOh84mv6T7GvB37tmD6Ev50R1vZLWdoVGtAG9aKU13ZqNY/x03ZNRyDYmqI6lC6nttZH0MhWKuHmUqo16eKQftog= 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=2ZH0bW/A; 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="2ZH0bW/A" Received: by mail-ot1-f49.google.com with SMTP id 46e09a7af769-72bceb93f2fso84183a34.0 for ; Tue, 18 Mar 2025 15:52:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1742338352; x=1742943152; 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=ttzqhRfuW1j8Jj5xatxxwRwR97+YJSALRqNQY7//6rw=; b=2ZH0bW/AuiC51LZA1APyzO6+1my3EM9ekOKTmPJKZyLG2Ye80yMZCcPBmz1TM0PA90 8JfrkUObwbhLTz8U7j5iJk1gco8L3JZXMs2MLWtNMBOYSqeTAHdZneIZ/9pntAkKawA+ 6PA+3W7FRje8NoywxqdDRdBzocFjkI+LvYWxINWP405zCUqYc/MfBKqbVFMaGCsoI9pA AEMGNU+jFzz6uhXRhiois8HFMsj+mH6aPRc9wB1e5yk+TooJfhNXh+B88tgKAri/P8Er X5NeHfp4SlmkOlXpocA5fWPYhn4yuLD/cAE7ijKApoILK/DxIuP1Lg/bcZau56ZFpPBi C8mA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742338352; x=1742943152; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ttzqhRfuW1j8Jj5xatxxwRwR97+YJSALRqNQY7//6rw=; b=FLlu16emvlK/x9X8QoZfcsS1PBG1e2Wz3npHjaqLP3FXU5Zf4u9+/VC2ODf+wo/ldb zTn7jUsKWa71n5jUXRc62jv+Dm9VWZMUfmLI+9yi6ZkmO2SVxmRKlrA7PEvirdJZRuLm 893MfV3l0C4Cr0HU3WQe1j043foUiCN5s4fE++PRxno+ePxhYub2qXEWGy1UEtXdv67b nAbZFNoq+y+iCLj5O64oJGVVhkn2KuXx2pDfkRtrfUpf+IZOAVSzr5BLb0ZKi34RN64k sZftM8XolRUBqb1tDN1txfZSIKRWJYmFQ2Yk6IBB8aaw7Gc/+5HK6sq3/zAKaZw+0O6Q 0yig== X-Forwarded-Encrypted: i=1; AJvYcCWCoHd7NwN8MW2dX6T9xUrd7qU54mPwAFjrqgESMQ3kLod+GXZbu846jUGmjbXVuRfug2aWvJimDx82rZE=@vger.kernel.org X-Gm-Message-State: AOJu0Yyrj/mtOZKK+nr2WGdkP/AaeegvblzdtxHQbwINUbqNo2ba6lnh vZEuLf0F2X/gKQeAytMntNWXMmHaJZYyNcbDaYGn1fUQWy1poNgUyN2VMo6mGJM= X-Gm-Gg: ASbGncujBWItMiz4f2hc//GNsJywIB5LdqOHIQPyVoLxP/dQfzVZAcjB9vZ4sWf+ORc vJEbiRmWDzwsVdFN9AqdBJb1czINFB7T8C0cS9PimFhWh76AyB33YLRA+cJKysSvmTrh04liebC xemyHTxNg+0kthtTHX1xifmbyOezQuFsUc0zmgXE+VN1qkxx5eSJH07Al0Ge1/vummOXb823Eqd XmywWj1tKTPFU3sJUb4yw9EG6YgYEprjn71r4Ctyt5aQML4wkj6vkRzaMjaaIieJa0DPSwAhtCO NoDBPWIgqL2RmopSXSKjtFU/doS+t6LSRR4KEQ18atZKE2pNXkGgWOi9Eybyz8oj45jiw2TRozH e X-Google-Smtp-Source: AGHT+IF23n+Eb/NK7sCDA9N/jZFII8yjWuc4vEkdMAkKMnop1OrsXpDOG/2CjJ/+bL0dRFjzNPLwWg== X-Received: by 2002:a05:6830:381b:b0:72b:974f:de49 with SMTP id 46e09a7af769-72bfc10c94dmr380936a34.7.1742338352458; Tue, 18 Mar 2025 15:52:32 -0700 (PDT) Received: from [127.0.1.1] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-72bb274e95dsm2191690a34.52.2025.03.18.15.52.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 15:52:32 -0700 (PDT) From: David Lechner Date: Tue, 18 Mar 2025 17:52:18 -0500 Subject: [PATCH v2 10/10] iio: adc: ad7606_par: add ad7606c chips 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: <20250318-iio-adc-ad7606-improvements-v2-10-4b605427774c@baylibre.com> References: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> In-Reply-To: <20250318-iio-adc-ad7606-improvements-v2-0-4b605427774c@baylibre.com> To: Jonathan Cameron , linux-iio@vger.kernel.org Cc: Michael Hennerich , Angelo Dureghello , Alexandru Ardelean , Beniamin Bia , Stefan Popa , linux-kernel@vger.kernel.org, David Lechner , =?utf-8?q?Nuno_S=C3=A1?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1736; i=dlechner@baylibre.com; h=from:subject:message-id; bh=kM+k5AQriGEQF4EjhCiLnSRLo7GvLPAK1dzRegvKVGo=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn2fkdBcvwaygKuokVp6uC8fcc9pqtVqrS8+l0n OTZJIZxNSiJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9n5HRUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAP+aA//QlUhUn2O4TYB3ctNgaiMB+xOE4kflWFSAP6sz1b LSLSkg5nyzB+X8UJ1YRDe8lnlX83sHjL7mn9g+8ao1Bd8gABdm6uPB+8sk5WOEXMRg9VHJi8+Yb K6SQrzHbD30MxAYa8AsWFLoJWstMajWoibGfrGWMtNyPIAiVriL41/LLeKJmENx5w/mA7idggF/ Fab57FILLOn2hBcrMNjQJGKBnNQx3Lp87dCMa1TO1ynv1HBv7cOIqIf8To3dP4LymY3f3+SBtQB /dA3TgB00z6k1XcxNEco0j1Hvnyz7iMq5VOsvYehI552B3J+mVLKg6Qysff38E6RPMMH0htWVvr lsoMTXve5ayIV6sx4WOfAkUSzewwIUmm/N/3sFX56kQbMNvtUr0t1YMCVCMXZueVedhGOhTu+BK QNOzSPGaw8jFRYxGIhjr68zHmUqxUI9O5yYdBQv9rWiWoEj6RFyajm9FHcOfryhlVuW99tJWJ08 PCaXTEMtp1ziOje9Hlts7nd6az2DdEcqLkEelUFz7emkCOiBWb11EifrQngJE8WNi6UUms8+u9/ OCdc7QEROsVMv+vH6aqJELEVylDkXDI5YYYuXulu8ulSrolTVf2Kq55K7Z6D84qUDlaZndvmHnV gscWVFbMWR1ObhSxZft4iWzsfCb/Io2Ywv3Kq9rRugP0= X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Add lookup table entries for ad7606c-16 and ad7606c-18 chips. Reviewed-by: Nuno S=C3=A1 Signed-off-by: David Lechner --- drivers/iio/adc/ad7606_par.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/iio/adc/ad7606_par.c b/drivers/iio/adc/ad7606_par.c index e33b07ab5eace4b78e7cf39ee7e8d9379c9f73e7..634852c4bbd2c531d6c0e02d2f1= e62db9008cad9 100644 --- a/drivers/iio/adc/ad7606_par.c +++ b/drivers/iio/adc/ad7606_par.c @@ -222,6 +222,8 @@ static const struct platform_device_id ad7606_driver_id= s[] =3D { { .name =3D "ad7606-6", .driver_data =3D (kernel_ulong_t)&ad7606_6_info, = }, { .name =3D "ad7606-8", .driver_data =3D (kernel_ulong_t)&ad7606_8_info, = }, { .name =3D "ad7606b", .driver_data =3D (kernel_ulong_t)&ad7606b_info, }, + { .name =3D "ad7606c-16", .driver_data =3D (kernel_ulong_t)&ad7606c_16_in= fo }, + { .name =3D "ad7606c-18", .driver_data =3D (kernel_ulong_t)&ad7606c_18_in= fo }, { .name =3D "ad7607", .driver_data =3D (kernel_ulong_t)&ad7607_info, }, { .name =3D "ad7608", .driver_data =3D (kernel_ulong_t)&ad7608_info, }, { .name =3D "ad7609", .driver_data =3D (kernel_ulong_t)&ad7609_info, }, @@ -235,6 +237,8 @@ static const struct of_device_id ad7606_of_match[] =3D { { .compatible =3D "adi,ad7606-6", .data =3D &ad7606_6_info }, { .compatible =3D "adi,ad7606-8", .data =3D &ad7606_8_info }, { .compatible =3D "adi,ad7606b", .data =3D &ad7606b_info }, + { .compatible =3D "adi,ad7606c-16", .data =3D &ad7606c_16_info }, + { .compatible =3D "adi,ad7606c-18", .data =3D &ad7606c_18_info }, { .compatible =3D "adi,ad7607", .data =3D &ad7607_info }, { .compatible =3D "adi,ad7608", .data =3D &ad7608_info }, { .compatible =3D "adi,ad7609", .data =3D &ad7609_info }, --=20 2.43.0