From patchwork Tue Mar 18 22:52:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: David Lechner X-Patchwork-Id: 14021690 Received: from mail-ot1-f53.google.com (mail-ot1-f53.google.com [209.85.210.53]) (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 188B52066CF for ; Tue, 18 Mar 2025 22:52:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338339; cv=none; b=dfwvC7HX85zbgavsxtL5W5Q5p78gvDM36AKqPobASMjERHt3MRgVZcB89nZT9wW1PyoZNL/62YSi5lEKqz75bhgt2BdnaqnFrn2hoaf1r7oUyilNUlYnj5fyhQ9DSjIWnfLqzP1DqFnXBmCj01k222gZBmJGuR9bT+mw0JzscVM= 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.53 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-f53.google.com with SMTP id 46e09a7af769-72bc3987a05so78478a34.1 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=SGbeTBDnjn1vJiVnvr4+JrVY6k5b4NOJzwjxhd1CfIV+0fz84m1xVeHwGQPzZwtK4F 00ITsUpmv5VLMnyxSK8XPMlIJ/2OLZojDxk5xDkemA1RXJ/ATvAjmFSmhJdP4Lpgaghk AvigRBuVIEnDUZvdtixueBhbtu+3SyJIUf0Uk8ZJufz+cSzxwk8DZrvZtUHsu/lgsaDS M4FUWRWkCI998QTT2qrFQ88SXa4gYa7VwKEg3Ub+yz1Nq+xM3DZa3G0WhmNPGAzuySNF KmatqRBvjoWjzy5W/jR8fea9aTfgY51UzSm9Css3E4uj5xTw+oAarqPZrlVEwErjgOdT JAsQ== X-Forwarded-Encrypted: i=1; AJvYcCUHIYcCshIb2DOb99WQ7ewB1Pg4W36s3SvGzXMrW23VMGrt1TQUT01aZ5EOApylM5mweZ5sPvu5U/g=@vger.kernel.org X-Gm-Message-State: AOJu0YzjfU8wLN0e7R5+CdNDO5+cPAfPlMoh1zdkTrYSrcEwBtWwC5NF veA63B6Mv8t1D9E5efyyZZ7M1KyD2zv7WkB6V8mg+vD9CQjIRcyb4qZC0qsYtlM= X-Gm-Gg: ASbGncspzgu3hfZSlERPrHQM0Muh9IJzKI+HSrYJFhU1M0ubpKVs37E0F7jbrx44Ajc BtleH5IqIqnqnW13c+v0ZITYfPZPWBULhl9njStufayRdFTHTYULVL2S03klgYBphkyOCg0n8z2 repfQ7Ncj6Xol8UWt1p3TKWAr3v1FoI+Xih2uodddQSJSTI/VBc0W9HDQfFlz8/7okRltLU8aXP xFxDCrkseo7H+ESVrn6OXjYPDIfxxf3ZWtX+01PYqKHGDQBbmKl6DM5/Db4dayo/V6xFYXD7R27 EW+i3uiqQDxYZ4aY/FXHmLhL9DEGqDgmYVWqkj7UOqu1XK/QZvPVLfJWJ7FNUmaSEhtHoJEXCFT R 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-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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 pointer on chip-info") Reviewed-by: Nuno Sá 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..703556eb7257ea0647135c4b268a8ead93115c6f 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 *indio_dev) st->write_scale = ad7616_write_scale_sw; st->write_os = &ad7616_write_os_sw; - ret = st->bops->sw_mode_config(indio_dev); - if (ret) - return ret; + if (st->bops->sw_mode_config) { + ret = st->bops->sw_mode_config(indio_dev); + if (ret) + return ret; + } /* 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 *indio_dev) st->write_scale = ad7606_write_scale_sw; st->write_os = &ad7606_write_os_sw; + if (!st->bops->sw_mode_config) + return 0; + return st->bops->sw_mode_config(indio_dev); } From patchwork Tue Mar 18 22:52:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: David Lechner X-Patchwork-Id: 14021691 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 D12E5206F2D 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=1742338340; cv=none; b=KAwTRsB/UE00BEqcuooDxXXMId557AK/qbOErwFu8XZZujt9hJb/ZNYHyri9H4RIm+re8QljgexO8QrePaSQZMhQbHSdI+t9pb/ucri/HmgHHzPQEW8KBCBVvUqwjhFsA6oINEx403Gxn6h1wujTGJKGYLV8H2slO2OCNN2Vh4o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338340; c=relaxed/simple; bh=MymKfg9hNdh7VEIVG5aw3IyW7Bibo8midSILlV4WG+E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nwWzqM/pkfO42FBiBg5RetAEII4nSxuKSVpPZA/Gyw+bXkM220Kwzg2KtZ47Q0xhEhSh28bOipVlcCji+gMgy6j19Nas3jg7WHwzSxec8lEYMXduNTO+4kSqzEvDIXXdv5a2OH3qW4P184DsMfczNqeGrXl9gVVjBSIOdpMjU4I= 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-72bbead793dso2629699a34.1 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=jvDHBFr3z12c1vCHqKhY/HnQXSG8vSUwfZuwbPM2suGIrC5oh4Kgp30yOrXuDOj9jr qvjKB4+qNNSX6GEIu79fZeccz0n3XA5KNJz4Ql0CUbOZWupLvzHlnX/G7m6ewfBtzCDF dhMKm8BJbKFDDL8a/4eEhpYj1/sx9HhF0r6OxJfdf/nlxy+9+K718ulI24psf9zTzHkg 0S9ppkezm5tebk3dAq/gsufoCxf/VyOl4N3zSGFFHVyEMJn0XxRwagaysTaZDYKtrBP2 l/6pv2J0SVStv3QGBGRLh3jmqkibYCtsjw5qXEp+PRIh6jTs5CokwEiCTTXVk2nUOTHI wN7Q== X-Forwarded-Encrypted: i=1; AJvYcCVRzUGje+9LMrYoLq+cpG2mb2o7+sZ/dfu5vPT4V84hImuIjWF5EtRtKIKBIp0DmsTXmqH0ByG3vpo=@vger.kernel.org X-Gm-Message-State: AOJu0Yyt0HTkkxaNSJZZMdycypu+EkgSfRIrHwTpnSpFz+zmNlZf2Tjj 9uOBWU6wCTgLfOAK4kXjmKB1TrBM6XF/clwGBNrv+SO8jaNDD79yXL05ghi+Azo= X-Gm-Gg: ASbGncvb6u902TK6DGNUYuBhsq2wSV/bdV84so24XwDHlKuR2RHuKu24jrKne+1ePUC 7pgN2Wn2CH+S3Bmdc2GbxzeLkhXdI+jKcqrc+e9YAOYUFdq00a+vS56yNnfF0KkaPqLkytoAGoc nqOUepcD1ToM+IgGlOF0OFIznzJLh2eiYthsq7mN94mgNw+aLsreqXO02pO0DKiMhns4QulUTwu 5dJ7wSV56TcCcb3hiWdQR3SYsBuIElnU1T73JpcynJOBJRl840gxErgHACc4HNsQqkga6S1tj3c V3jqO5Jj2UOh384e60ycsWeLlCzf1onXajmrclUPmwap5goWhiAfpmwPc2He9UIoMo4KNyZxFrJ J 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-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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á 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..c028e08efe2c82cd97249f98eec50a9a9c06471f 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 *indio_dev) static int ad7606B_sw_mode_config(struct iio_dev *indio_dev) { struct ad7606_state *st = iio_priv(indio_dev); + int ret; /* Configure device spi to output on a single channel */ - st->bops->reg_write(st, - AD7606_CONFIGURATION_REGISTER, - AD7606_SINGLE_DOUT); + ret = st->bops->reg_write(st, AD7606_CONFIGURATION_REGISTER, + AD7606_SINGLE_DOUT); + if (ret) + return ret; /* * Scale can be configured individually for each channel From patchwork Tue Mar 18 22:52:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: David Lechner X-Patchwork-Id: 14021692 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 82BF0211A24 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-726819aa3fcso3679591a34.0 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=PKESKnPXYabziuJKllbf89MgPNN/imD6pwep129vbRyYD1puzW8wOiujMT43HwxIVw WSiLqJd7LRTqxoyn2OUb7rKDUggdrhksfupqD6oRM7WxYEj9Ps5ozkaT6d/g96lv/9Yu WWZ8o+F+f5Jjy1oYKT5VcoxoWWfNF/QsTshhi2CSXkxHGWpJtmRzwETRWRyBYLMoe3Yv KGbQmxmUf6j48Z0vZlqGMfviInl8UMc9IeavIswCNB1Bh1gTa/eplN1psX2qx9+C17zQ fJ7b+cjs11GKEVoq1yPeehWIefvXVMVYMdBmW4SGlROz9Dxg6j69DMSGBOjWPmU2AZtS pxOg== X-Forwarded-Encrypted: i=1; AJvYcCXFWUQirlMmiV+U3i5yu6kcrfeKQYpJqQMYllDsAEeubOqWcyeaEwb32pBXemMyldyzql3Jw/59XhU=@vger.kernel.org X-Gm-Message-State: AOJu0YxUVP4LZtalHVCeRL2hquTHd0D4fBuZkmyw8LxKZZxJeLZ5c5Va Dm9BybTTGIKbozZ0MZnBPpIBz/3zae/MNJqk4i+dFWhkEF04ISh8YkaGlfeA1wE= X-Gm-Gg: ASbGnctDEd3Jr58RnLzBa05s84WAy3IJ0MlrIsAs9VxZ1XAobJYN5Ll5VjQ+58bQqm6 n2LQQp0d6nI3uR1RYuSK8GYYvm+t8nV8MDb2AFCZbX5kE1Ycwhkqd+bzddOnmksscEWy9JjeVNW to3WlkUktcF6h7jA24q5RySqN1cc8pdf/JiFydLD0LYukJefG5Z/78aa8rVkR3Z3lKtvvWQKOD8 ddiq0POkqddbTaN5yw9d+F3jE76dfpRKprKV96fTKfFAT/GtgtJk5UdS9QCFUL9nWfoYibbyFiL NRILqokMG6Z6ox6jwu90RD9O8+87xB/02ShvaKd4w/3uPLe731UbDqr9xdxzXJ6on1RsmrrMT1i B 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-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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á 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..f9b5ce0a8fa72974b918912e2388501919175653 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_dev); static int ad7606b_sw_mode_setup(struct iio_dev *indio_dev); const struct ad7606_chip_info ad7605_4_info = { + .max_samplerate = 300 * KILO, .channels = ad7605_channels, .name = "ad7605-4", .num_adc_channels = 4, @@ -205,6 +206,7 @@ const struct ad7606_chip_info ad7605_4_info = { EXPORT_SYMBOL_NS_GPL(ad7605_4_info, "IIO_AD7606"); const struct ad7606_chip_info ad7606_8_info = { + .max_samplerate = 200 * KILO, .channels = ad7606_channels_16bit, .name = "ad7606-8", .num_adc_channels = 8, @@ -216,6 +218,7 @@ const struct ad7606_chip_info ad7606_8_info = { EXPORT_SYMBOL_NS_GPL(ad7606_8_info, "IIO_AD7606"); const struct ad7606_chip_info ad7606_6_info = { + .max_samplerate = 200 * KILO, .channels = ad7606_channels_16bit, .name = "ad7606-6", .num_adc_channels = 6, @@ -227,6 +230,7 @@ const struct ad7606_chip_info ad7606_6_info = { EXPORT_SYMBOL_NS_GPL(ad7606_6_info, "IIO_AD7606"); const struct ad7606_chip_info ad7606_4_info = { + .max_samplerate = 200 * KILO, .channels = ad7606_channels_16bit, .name = "ad7606-4", .num_adc_channels = 4, @@ -251,6 +255,7 @@ const struct ad7606_chip_info ad7606b_info = { EXPORT_SYMBOL_NS_GPL(ad7606b_info, "IIO_AD7606"); const struct ad7606_chip_info ad7606c_16_info = { + .max_samplerate = 1 * MEGA, .channels = ad7606_channels_16bit, .name = "ad7606c16", .num_adc_channels = 8, @@ -263,6 +268,7 @@ const struct ad7606_chip_info ad7606c_16_info = { EXPORT_SYMBOL_NS_GPL(ad7606c_16_info, "IIO_AD7606"); const struct ad7606_chip_info ad7607_info = { + .max_samplerate = 200 * KILO, .channels = ad7607_channels, .name = "ad7607", .num_adc_channels = 8, @@ -274,6 +280,7 @@ const struct ad7606_chip_info ad7607_info = { EXPORT_SYMBOL_NS_GPL(ad7607_info, "IIO_AD7606"); const struct ad7606_chip_info ad7608_info = { + .max_samplerate = 200 * KILO, .channels = ad7608_channels, .name = "ad7608", .num_adc_channels = 8, @@ -285,6 +292,7 @@ const struct ad7606_chip_info ad7608_info = { EXPORT_SYMBOL_NS_GPL(ad7608_info, "IIO_AD7606"); const struct ad7606_chip_info ad7609_info = { + .max_samplerate = 200 * KILO, .channels = ad7608_channels, .name = "ad7609", .num_adc_channels = 8, @@ -296,6 +304,7 @@ const struct ad7606_chip_info ad7609_info = { EXPORT_SYMBOL_NS_GPL(ad7609_info, "IIO_AD7606"); const struct ad7606_chip_info ad7606c_18_info = { + .max_samplerate = 1 * MEGA, .channels = ad7606_channels_18bit, .name = "ad7606c18", .num_adc_channels = 8, @@ -308,6 +317,7 @@ const struct ad7606_chip_info ad7606c_18_info = { EXPORT_SYMBOL_NS_GPL(ad7606c_18_info, "IIO_AD7606"); const struct ad7606_chip_info ad7616_info = { + .max_samplerate = 1 * MEGA, .channels = ad7616_channels, .init_delay_ms = 15, .name = "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 sampling * frequency the chip supports. */ - ret = ad7606_set_sampling_freq(st, - chip_info->max_samplerate ? : 2 * KILO); + ret = ad7606_set_sampling_freq(st, chip_info->max_samplerate); if (ret) return ret; From patchwork Tue Mar 18 22:52:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: David Lechner X-Patchwork-Id: 14021693 Received: from mail-ot1-f43.google.com (mail-ot1-f43.google.com [209.85.210.43]) (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 681D8213E6F for ; Tue, 18 Mar 2025 22:52:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338344; cv=none; b=qETPKp8+mvbbEPQQN2JQtIKArYxCIj/wiVQyEM1IQeE7jkk78Iwv77VPeNolCeMQxfA9FqgThLYWZfdlSxM+a2lBuL8s89/LNi/OYxJLI8sfR3j3aIPlYa5BwiuicSBvf8o1jQIqIo8oVNBBsvreiE1meUnW1ea2/CWLVEUjxSg= 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.43 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-f43.google.com with SMTP id 46e09a7af769-72bb9725de4so1038127a34.3 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=ECnUWqnaKkTK9c27pYZlWD3GjqRjvW36kq43d29Gzqq/S4ofrveyHBCSrjtByPDI5i ZydIamtfVNCpSj9pwPBlK5HgI8NAMOy0GbAnbrQmbR6S1ruELf5aH8MT8kQvHrKmjgfM SloZmW1TSVeb8iHDYvWC7SOGl7ozsDk6DBEXhU3Vl/rrYK6dwcT2mZky3KQRpRrMlQF3 cwQ11VPEwoWdN1JMWUHJKETEmh4Oypkextm2W5/gKxpFJ+YWA9+SVraIwdfgXGEXmKTe evJCS110UGnYiNlqhYQ67J4/m9Cyt6JwJl/Hue6cn5g8aQKgDaFQqcVm08dV47fOxFjg IxIw== X-Forwarded-Encrypted: i=1; AJvYcCVclFFGWdbPo5Rv4FmGtQHRIQovtzrZy+qk2g0FAzs235gcyayDWzABHksZOnvCGPQKZqnuNUdwhJU=@vger.kernel.org X-Gm-Message-State: AOJu0Ywkt+UJWptaYJ9sMEo0wxmiA/xeKb1X2AE2wPIbYivHVehwuW2N b7IDyP+FNEkap82HTXq0dGGUdSBAhE8EA+OEV47+ONRq9y/CHsGy+y+bygFFWBs= X-Gm-Gg: ASbGncuHHhzh1gDPSS1QL45YwB7YpObG6pehBopz/yZ68x/3rzFyxKgt01yHuL7W0/Y l86hbb83rdiTYBbzsTVcnZAEKSdc9P66k7S1ee4X6MeshIuWHNpfBlQzaLRzMnKNogmI9IFZ/F0 A7e58Wx2TysN+58JcNsiMM7aJqYiiWVUsGECYSPzb7c+JDjXxLNFuvJTORdNbkMQbyxYrKNyC2x Du1dN0YtowSEQ5vDAJLjjK30VQW0MeUBm2fWFQ2IILD5bseReA4R2N59n1PZ+F+t89r4Mjt5uYs SVFuWemxp+ZktgcWDsmkZ+h6mICuqe6QS8++Qk1oYE3UJMgOGySTcIC4GPXr6tKtNKbyBrm8SA3 e 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-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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á 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..b81591d8bc520c730e1632bd15eb1eddb5a59c90 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 = iio_priv(indio_dev); dev_set_drvdata(dev, indio_dev); + ret = devm_mutex_init(dev, &st->lock); + if (ret) + return ret; + st->dev = dev; - mutex_init(&st->lock); st->bops = bops; st->base_address = base_address; st->oversampling = 1; From patchwork Tue Mar 18 22:52:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: David Lechner X-Patchwork-Id: 14021694 Received: from mail-ot1-f53.google.com (mail-ot1-f53.google.com [209.85.210.53]) (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 1954C213E8E for ; Tue, 18 Mar 2025 22:52:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338345; cv=none; b=n14FmCzo6+ydMt6cmW7xOiGuLrOJrbSrXWC0o2e12W/LPsoysJVJSCDK/wB38keK5aHhsPKOG/2JuJcMpts1A7k5eTR4V/IvipLRhm21SEtaN3uQ9OegjIwqfQ0hO4OrAvrbU33ZrW8FcBM/1zmLJdBc3wlqjzI9YXi3I/K0UsE= 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.53 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-f53.google.com with SMTP id 46e09a7af769-7272f35cdeaso3505352a34.3 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=ZjYf52Lon6bNfJnxY03ndmpb/OBjb5VDYJGAipAR4bZLKDeXcgHqLvqXunVfhHMtwV FKNxPXjdBCDpA3DIG7Fbtp11PYZQmXgEQVnlsZyYWUPVqyZvG6lWBgPLuvOf3NfFyGu9 /R5QIYrNZ6v3cnHFhFYpvbCh6QoD5u7jkiTbhisfIe5bJ4VDJNNFOw8cIvb8nc/XLr7h zA8QVPP2fOKh+/vVqnuDt9iVa99BGh5uAk2iCg8gJdonCKI/5j3sS505FwUTPejC2sfh DJGa7+CzE3W1FjHqyPTRq/a9LxZvQn7EQD7sewScEJ9QQz7kki2QFgBe+4OYpf/hA27/ uc5A== X-Forwarded-Encrypted: i=1; AJvYcCU6GNMEQGK7lxhjmnfbNRz/oJ11IiARDYqe3JkYbGhOQpkGMC3h2KIMwPHX6UZIwmDZvObSXkoXPzI=@vger.kernel.org X-Gm-Message-State: AOJu0YxEVRkZeq+VkuNP6LzC+x85tgg9o1ACacOj1wdFyInndcAMJxBG L6LbutFrrYEGDWWerIU9ymISk9B6hAyvMeKv1sKZLlwZ6w7C1WdxCYiGKa/xc0k= X-Gm-Gg: ASbGncspGzUkOvDRc8d001inPGhkFSjGPS8W8s6zC30CWsXgMmci+eEBrtu2H+yNjB3 dMzOIsN1g679NcFvzyEl9MKjzvv6Dyxv9i32GaiBXRKgc4U8vlvDjLiGiwmvp1jMreqrPgswxVN DNFj2YpaC3ZpBRi1A2G+iaivclpOFYa3WVZHzIPFTda3nyc30KEF/Vu0cOeebk6o7HKbrxFlKYY dGl4v+FOgdfboIBlnHPVS7M9Sa+WDVfnAsQAHuk0FeSAnR0m1O2N39gKkrVg8xMyyvgyn3GuY6d ahnvcF3koGHj1spPAs84LZvv2Lmk83OMz6as4Xc/Ag9FIZMJMYPPkArAoIghR2+Nqk9q7Hedpvs v 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-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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á 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..dd4ae59dc59ab17e437171caf6d8a5abcce97f74 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 *indio_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 { /** * 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 { /** * 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 { /** * 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 for * 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 { }; /** - * 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; From patchwork Tue Mar 18 22:52:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: David Lechner X-Patchwork-Id: 14021695 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 B28942144B7 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-72be60c1d7dso320079a34.0 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=M+ZuqwA8OfO6df4Q4r/rl3RlghvP5KswMB7enavTdBMdG+NIvy44Oqw3ehL5BSVBXn jf27vI0gFw5JtZ3aPD/PM7uFr74jb9wzrinwYWYrCFOELkvwzZigl9toXlh1PRpNSJ+M tFnsc+LPUS03oXeDyXB1XmrNl0A622uykCwxkCU+iJgfAs/FLvZXV+MrG7dzqXZ6gb8W XaRKy0gsZrwyRK9n+Sq69JESaqTzbKcO7WyHPm7PCunT2LuVigtrp592SrtHIE7CnRup RfGyemED+WVBRVidOV4NH7XA9SaLAZwAnyVCfM8omALY7poSDOHaMR2R25Y+aNrPS6t4 fRAA== X-Forwarded-Encrypted: i=1; AJvYcCU8kYoKpVEy578jB0J8i+v1CgOJswuli54HRv7HzeQ2qA78ydWSWLed79L8W6eZUhHg/X9PNfLLgtU=@vger.kernel.org X-Gm-Message-State: AOJu0YyLpKq9bU+1dz3jJOSgmkY/yPISKHXJj2q1O9AjV3LQ+9XBEGjq tNSsvEz66LnCN2Bhw49l7O14zWirLZM69HDGAKqlatut66+CHMsqwl2eFiDBI48= X-Gm-Gg: ASbGncuiuCdO4aJruDJcnGJRVOlADH3WE1NQg9Tt9eLGHRgdwSnhDLKX1puslIlssU0 KorIifQb8Ui3pgqObpz3AxLfaD1PRi1bobebUR0CdKtSbM+FQSfnIrJsaO4oaz81n91gcjShcS3 2b9ePu1ngbyAJFsFE64OEMKPa5I2bPO2yajSsItggNIKTV9c4+f0VygE6WZHNnCbz5ycP68FNxU XlkUCvTMDxOBGWQMZ25N68rNCyE+pDRWKao8cBP7Mv03seZWknwVKb59cvosr1eG6eMRt/8Sjm8 NjNJBsIiLbK9tv7GvznuuEMemPJ09Ijm/6ZbeV+Nj0NStKeJjLb8vN8NGi15XobSxFkLUKKblv3 k 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-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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á 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..5ee04e8f4041c75d66b899a9371a75b5d0f31071 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 *scan_mask); - u16 (*rd_wr_cmd)(int addr, char isWriteOp); + u16 (*rd_wr_cmd)(int addr, char is_write_op); }; /** diff --git a/drivers/iio/adc/ad7606_spi.c b/drivers/iio/adc/ad7606_spi.c index c028e08efe2c82cd97249f98eec50a9a9c06471f..1abaf8626206cb30e532cf9f82e0d050706aa1e0 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_channels[] = { AD7606_SW_CHANNEL(7, 18), }; -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); } -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; } -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 = iio_priv(indio_dev); int ret; @@ -195,7 +195,7 @@ static int ad7606c_18_sw_mode_config(struct iio_dev *indio_dev) { int ret; - ret = ad7606B_sw_mode_config(indio_dev); + ret = ad7606b_sw_mode_config(indio_dev); if (ret) return ret; @@ -228,15 +228,15 @@ static const struct ad7606_bus_ops ad7606b_spi_bops = { .read_block = ad7606_spi_read_block, .reg_read = ad7606_spi_reg_read, .reg_write = ad7606_spi_reg_write, - .rd_wr_cmd = ad7606B_spi_rd_wr_cmd, - .sw_mode_config = ad7606B_sw_mode_config, + .rd_wr_cmd = ad7606b_spi_rd_wr_cmd, + .sw_mode_config = ad7606b_sw_mode_config, }; static const struct ad7606_bus_ops ad7606c_18_spi_bops = { .read_block = ad7606_spi_read_block18to32, .reg_read = ad7606_spi_reg_read, .reg_write = ad7606_spi_reg_write, - .rd_wr_cmd = ad7606B_spi_rd_wr_cmd, + .rd_wr_cmd = ad7606b_spi_rd_wr_cmd, .sw_mode_config = ad7606c_18_sw_mode_config, }; From patchwork Tue Mar 18 22:52:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: David Lechner X-Patchwork-Id: 14021696 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 B75FB2147E7 for ; Tue, 18 Mar 2025 22:52:27 +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=1742338349; cv=none; b=Lzt3aSifidz8mssNNg0ErryKcCvhwgdVqQNcX10zXApOPHHfqmG6NU1L5EDc4CozkXvzz5HwH3C9V4blNC6iPftSpBdrNv23UQCkbO/ugL3ru6uj88u0Qve34VfuzmoPT6qaf4RYCD0YEkJwNSlErYVrAePypBlmghNRBt0+y2I= 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.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="3d8GoheL" Received: by mail-ot1-f51.google.com with SMTP id 46e09a7af769-72a4793d4e2so3413045a34.2 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=QcqoniSaLqf5F3fi9SrCzFCB55FqvpOkoVcmOuAqoUzeJjJl/mhP1uXI6SkGi64qPS LL8oJFbwH/g3faoB5gjbzMTf5WJSpx2bsBh6iiVc5FOXR9LY2uAXqknXwjb7Xq4bDa0I r4Hk1Adksxxlz5Evcbo3YvuSUbyCtMAMdmwD3tndRYAVtKJsrc/ve9Wg5vDz6ESs5KQs f/7kVs3Fwc9TOAJc6bY3CkC/HPBJMOU/a1psVKc6g9kRf74U3BNKuRDRUULZBUe5IcTS +6e2ZliDM6WkngOhC3Op/iWvvqHycy27xR7K/tQ/5aQTwg/ECafOV9HGyCEPRC40GcpT ki0Q== X-Forwarded-Encrypted: i=1; AJvYcCU2uBxZnpNCBxzxChzinAaBbrwtQStwm0sBKaY4fmK561xzW6BXiwpnIqeDNQ+/WFZzEuKr2lwRlKE=@vger.kernel.org X-Gm-Message-State: AOJu0Yydmqd+/gExASxPbQyPzRCuZLaj8niq+qxXavJmFgDdPEZHS7rK RCRGxobm/h/zJ8dp4GINs9NwZgzgBWokHMoU6/l7fdErTAdY+3EYsNWBLs4MnMo= X-Gm-Gg: ASbGncuOguGt8HaFI0n8yFexgiAwLqb5yDtv3SXIgjaXpkBnPihgCVN8Fp8nak3o+ZL AYzZLtKRlOspCAxBq+iCpyuNK4+HMlNx3I1SG1Ux24Lkk5++0nHjGGqHo+7EdQrljGypJuo9E5v c5/yFqKBWbeUlY+Hppvuoc3oILHlNNcvKJmhWYMu4ewwum2iTkCH5j7mhT8E8Cyz3pzyIqqDBmZ InGai4u4j3GKPwQv858bylx73BwWX3FsynEiV0vyatJ1C4r7SV3lrPJqtKmqBsvzZgFx9oC2LQS 0iVd/kpjQihWIT8aVwWB4A9yO+wq4ThByXOXiHoiPVoqITLy0UB00vRVo65lazLEOuNZ6iP8G6l Yk2+RmibpUwE= 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-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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á 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..3f03d4b7c2ceed5f7a134189c283ce392167b111 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 = ad7606_scan_direct(indio_dev, chan->address, val); + ret = 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 = chan->address; + ch = chan->scan_index; cs = &st->chan_scales[ch]; *val = cs->scale_avail[cs->range][0]; *val2 = 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 = chan->address; + ch = chan->scan_index; cs = &st->chan_scales[ch]; for (i = 0; i < cs->num_scales; i++) { scale_avail_uv[i] = cs->scale_avail[i][0] * MICRO + @@ -1072,7 +1072,7 @@ static int ad7606_read_avail(struct iio_dev *indio_dev, case IIO_CHAN_INFO_SCALE: if (st->sw_mode_en) - ch = chan->address; + ch = chan->scan_index; cs = &st->chan_scales[ch]; *vals = (int *)cs->scale_avail; diff --git a/drivers/iio/adc/ad7606.h b/drivers/iio/adc/ad7606.h index 5ee04e8f4041c75d66b899a9371a75b5d0f31071..16a230a7c00e3504744b97da339cdea6b8ecf40f 100644 --- a/drivers/iio/adc/ad7606.h +++ b/drivers/iio/adc/ad7606.h @@ -45,7 +45,6 @@ .type = IIO_VOLTAGE, \ .indexed = 1, \ .channel = num, \ - .address = num, \ .info_mask_separate = mask_sep, \ .info_mask_separate_available = \ mask_sep_avail, \ From patchwork Tue Mar 18 22:52:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: David Lechner X-Patchwork-Id: 14021697 Received: from mail-ot1-f44.google.com (mail-ot1-f44.google.com [209.85.210.44]) (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 AD2DC21480F for ; Tue, 18 Mar 2025 22:52:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338351; cv=none; b=oTbasVuZZWwjEu4tGLTpsnN8RW2/kjaE/T12Gl+8mlY9MAFXOpzd1vH5TJlrDTSoz20sM2fNx9eV/C0+jEyJyNRgRTF4vR6khLfYmMDVGWZ9hde5G5tkjzIMRpQBUzEMQLTB2CD326kP4CvrMpjVX9UX2XSWUsf6qcewKBRxcHg= 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.44 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-f44.google.com with SMTP id 46e09a7af769-72bb97260ceso1345372a34.1 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=ou++xMEFqV1mThLvBQ2mV8snTDIUdQ2gnvqztukK2mtHSNSLgkDRqIEK+uaxzU80yU mMAS3nVtrX4nX14+30XEJKZLDOe1O0/4902x1PctAMeU2cJ/i7iDsUR+E77mxkaGSCsZ 6V5IzReqrN0RtKRZUgqR/qT6O4hfx3Lj/yZ9LZj4763SdayFNBilo9zYdcxOWrlYvgWm FBv/IyA3Szkbs1KeKPsd69kcXbaKhZo+/2M2CX4rmv+m6Moyg5cAyBvfuFSi0N+hApSW tf2nmMbaW4//s0hsNY5u01c4K41TvVRVP2ZIGZS/DnniF6c00CbkbzI7w+Gx9wp65xuy Be+w== X-Forwarded-Encrypted: i=1; AJvYcCVDc+n+MGoQZU4X2JDMRe+1FAdLna5FjX1swrz+9BNqQ2GtrDcfghok/InLNHHnuQOidzmoCAkiZf8=@vger.kernel.org X-Gm-Message-State: AOJu0Yy1QNikj73D1BCM3Xl5iCzE8bgbOUGkdkMyR6W15kuOaQS5kz2m +0TWzBybw1m80BM7HFfuJxqOT2rxQAR7ab2IcCa6VrBp7GuoWZZOwjxpt+n/Dbg= X-Gm-Gg: ASbGncuWtXrMj7Wr5od7FVAJWIynVo3c/tSZzHDqSViHHP+GAoBW2h39Qcy6w4W8ptJ gZDVzDZY8GNlGeKQdzKbfaq7WsBiAmb0rghSv7kUU5ldm5sLFHKK+Ghy5zZ6TF2nIAD+QcWPA6p c/heWJ9DxnVMUCGss6O5qt+c23Lt4dIMCIXNP66sGOJWGceVj5I4TlbQxDXKt1MDC6I5o3Q2NYR jJlyRu3xDG++xP5pt3T3oxHXxEYl4FTEOINxgN6JUkDkcP8vDaRTjvnAT+TZw/oO8+LohnaANX/ DG3Gs/zNgPhhyrz2mWHhzGXVZn6CGiYYfOFDu1hb1wrlyEt1D3u/qkSehJn4+vFSk1yPhUBqGp9 O 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-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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á 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..09c35161df365e531b8d254c7333359facf045c7 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[] = { }; 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); @@ -346,10 +346,10 @@ int ad7606_reset(struct ad7606_state *st) EXPORT_SYMBOL_NS_GPL(ad7606_reset, "IIO_AD7606"); 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 = iio_priv(indio_dev); - struct ad7606_chan_scale *cs = &st->chan_scales[ch]; + struct ad7606_chan_scale *cs = &st->chan_scales[chan->scan_index]; 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 *indio_dev, int ch, } 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 = iio_priv(indio_dev); - struct ad7606_chan_scale *cs = &st->chan_scales[ch]; + struct ad7606_chan_scale *cs = &st->chan_scales[chan->scan_index]; bool bipolar, differential; int ret; @@ -439,7 +439,8 @@ static int ad7606c_18bit_chan_scale_setup(struct iio_dev *indio_dev, return 0; } - ret = ad7606_get_chan_config(indio_dev, ch, &bipolar, &differential); + ret = ad7606_get_chan_config(indio_dev, chan->scan_index, &bipolar, + &differential); if (ret) return ret; @@ -482,10 +483,10 @@ static int ad7606c_18bit_chan_scale_setup(struct iio_dev *indio_dev, } 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 = iio_priv(indio_dev); - struct ad7606_chan_scale *cs = &st->chan_scales[ch]; + struct ad7606_chan_scale *cs = &st->chan_scales[chan->scan_index]; bool bipolar, differential; int ret; @@ -496,7 +497,8 @@ static int ad7606c_16bit_chan_scale_setup(struct iio_dev *indio_dev, return 0; } - ret = ad7606_get_chan_config(indio_dev, ch, &bipolar, &differential); + ret = ad7606_get_chan_config(indio_dev, chan->scan_index, &bipolar, + &differential); if (ret) return ret; @@ -540,10 +542,10 @@ static int ad7606c_16bit_chan_scale_setup(struct iio_dev *indio_dev, } 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 = iio_priv(indio_dev); - struct ad7606_chan_scale *cs = &st->chan_scales[ch]; + struct ad7606_chan_scale *cs = &st->chan_scales[chan->scan_index]; cs->range = 0; cs->scale_avail = ad7607_hw_scale_avail; @@ -552,10 +554,10 @@ static int ad7607_chan_scale_setup(struct iio_dev *indio_dev, } 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 = iio_priv(indio_dev); - struct ad7606_chan_scale *cs = &st->chan_scales[ch]; + struct ad7606_chan_scale *cs = &st->chan_scales[chan->scan_index]; cs->range = 0; cs->scale_avail = ad7606_18bit_hw_scale_avail; @@ -564,10 +566,10 @@ static int ad7608_chan_scale_setup(struct iio_dev *indio_dev, } 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 = iio_priv(indio_dev); - struct ad7606_chan_scale *cs = &st->chan_scales[ch]; + struct ad7606_chan_scale *cs = &st->chan_scales[chan->scan_index]; cs->range = 0; cs->scale_avail = ad7609_hw_scale_avail; @@ -1305,7 +1307,7 @@ static int ad7606_chan_scales_setup(struct iio_dev *indio_dev) indio_dev->channels = chans; for (ch = 0; ch < st->chip_info->num_adc_channels; ch++) { - ret = st->chip_info->scale_setup_cb(indio_dev, &chans[ch + offset], ch); + ret = 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..c57a193761c92add6f82cf0cc51ccfdb9d8d2ab4 100644 --- a/drivers/iio/adc/ad7606.h +++ b/drivers/iio/adc/ad7606.h @@ -113,7 +113,7 @@ struct ad7606_state; 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); /** From patchwork Tue Mar 18 22:52:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: David Lechner X-Patchwork-Id: 14021699 Received: from mail-oa1-f50.google.com (mail-oa1-f50.google.com [209.85.160.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BE782214A84 for ; Tue, 18 Mar 2025 22:52:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338356; cv=none; b=grsus0j1jpXZoKGJ+goavarZ1fqBo6Rxq9cJpXcbfkAeUGigi5FyK5c7EQtcGRcze/UVW8L5/o/HgrrmPHp0u/26r48+CCLQ97RwBLp0e/VkjQQpjuGLnOjdUzt00ggn4btntoUo7k++RLbKW8+/gVySfFx1balSqQaUzlIZSO8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338356; c=relaxed/simple; bh=Uzrv30yYQqWShTTtrC3FkE9Uod1gM6aCjwnsOexjGsU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lr2/tkYReUtFLOrIZaeWlJRpUR2alfSR8mMJgW8YBekVl39fUFCiVvCV6gammGr1aCSFrZJMqxNzQl2lN6CwSBEFx22ZEDCrJ0FtoNvLn9oLsuN9n5TOqT9twW2Vyy2ewlCDBw8GfPfXsQbQPERa+OVVCZxpPr8EsdihKM9E3hc= 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=xWfl2MFw; arc=none smtp.client-ip=209.85.160.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="xWfl2MFw" Received: by mail-oa1-f50.google.com with SMTP id 586e51a60fabf-2a9ef75a20dso6109556fac.2 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=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=yy74OziyShY3LbwJ+ieZKhuYNkY88Mm9WSgSOOCUGR4=; b=xWfl2MFwjYlsh69xthmOs5NXc3Vm6hbUZkDmQ0Eb0qnezMT8tYiRd8vRZ9pJayNExa 8ly5OM9Yb3vZN3JuBe2Cs9HLp9LfEtys2zLpcxDnTfmF/8WZcDFC92RLN9RE6a1oTivx r93KHBroJaf1sl0XqvwjuF130+4LUbIfKSmYogyJ0ZbfXr2mr9RuB5mz5Mkkocet7igd 8APamlxP6+pxa6kbG2d8T4rfyv7VOC8f4QQ46cfL5LiVyVHRvx9tfM0lr85v6Nq+vWKI S23SqKNYxMIw4uoPuNGgWo3BbeC9IyGMn2lWq6UoG/9J0bcBcZLRQwzDRk1nyh73+S1u wC9w== 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=yy74OziyShY3LbwJ+ieZKhuYNkY88Mm9WSgSOOCUGR4=; b=r4/INAykB0J1ui5DlUtaAbrjL6U+9ppTeFZhSP2EKOeoiMUrwv8i82Ru518lMR3hR0 RczsFbibMeXvVctwqAKAheKvqlLU3i++CqXVgiCzEzUOULVGJ7hfUdJ4reDtI77GmQQF +2w3TMMhi9bZSZYDuM4fLmlfkTWX646sEXp9L+b9NW2FHq7eoSn02oVR0Qrb4AbbBiNu 267mJfIDhYlgX+cs3Rtn9+yqcNBpAGMoYkbJ9GqGtpd/bhp23jpLmuF5sQj9CybfxhWt 2tjfqxIGBQq284wR2hLXm/ufiXGNsbihcYiBdjE02i8nDnAxMZQHrsKV8GQREYl5t0CZ ShwQ== X-Forwarded-Encrypted: i=1; AJvYcCXYFRNYk/ump7OkaNBkxb09GE0G5nddOtN4CuLiUJ+JsHf4Gmrr8wznwxUFIiTFBXJByHO17YEa+p8=@vger.kernel.org X-Gm-Message-State: AOJu0YzPV7YbRqK7xEi+e+7ESG8StQAQxW9UdMz1EcxGlyyrsDM+zeWH flwtrMG3rRtcHXH6mmleFubPsjrELdB8ZGG4mO99fJiW6l1gMvgeCE/cd+3+gYlUniuA4X9AVow ZNfE= X-Gm-Gg: ASbGncshnfMZIDjibqMPW6SmzkKRPdfEonBOm8kBKQz/BJ3l9/R00UDyUfjCHZL+AcV +YT7/OfnR+vXoy9k9gd1/2VAYjo586aLH7jDtFp2ZJONnG9gjc2T/i//8MyGhPnFf+nQOe1sE69 0eWiRioRIj+WOXv2T9XdFQ6OMKuD49UWyDKXOOzZeIDpB+mnhYvNyjyQvL/Zh7r68hksaxHwNPT exLQKp11T/jEM1DZIlcTi4/B/dOhg1yiwSEJMWOGKggqSqqYDUxMUnXF4K/EoeYOtK3flkXLl/e GHclpsKWy7bs1lM60Ee92UCVMBVNXdSaS9AaFYjXvy4TXGtBeCOOk1jXD4IDOCF2ScH0fIXp5/+ 3Cs7yGifIjCc= 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-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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á 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..f3a78b01278527a3a380b80423d39774cee269c4 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] = { 1, 2, 4, 8, 16, 32, 64, 128, }; -static const struct iio_chan_spec ad7605_channels[] = { - 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[] = { - 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[] = { - 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[] = { - 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[] = { - 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 activated. - * 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[] = { - 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 *indio_dev); const struct ad7606_chip_info ad7605_4_info = { .max_samplerate = 300 * KILO, - .channels = ad7605_channels, .name = "ad7605-4", + .bits = 16, .num_adc_channels = 4, - .num_channels = 5, .scale_setup_cb = ad7606_16bit_chan_scale_setup, }; EXPORT_SYMBOL_NS_GPL(ad7605_4_info, "IIO_AD7606"); const struct ad7606_chip_info ad7606_8_info = { .max_samplerate = 200 * KILO, - .channels = ad7606_channels_16bit, .name = "ad7606-8", + .bits = 16, .num_adc_channels = 8, - .num_channels = 9, .oversampling_avail = ad7606_oversampling_avail, .oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb = ad7606_16bit_chan_scale_setup, @@ -220,10 +132,9 @@ EXPORT_SYMBOL_NS_GPL(ad7606_8_info, "IIO_AD7606"); const struct ad7606_chip_info ad7606_6_info = { .max_samplerate = 200 * KILO, - .channels = ad7606_channels_16bit, .name = "ad7606-6", + .bits = 16, .num_adc_channels = 6, - .num_channels = 7, .oversampling_avail = ad7606_oversampling_avail, .oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb = ad7606_16bit_chan_scale_setup, @@ -232,10 +143,9 @@ EXPORT_SYMBOL_NS_GPL(ad7606_6_info, "IIO_AD7606"); const struct ad7606_chip_info ad7606_4_info = { .max_samplerate = 200 * KILO, - .channels = ad7606_channels_16bit, .name = "ad7606-4", + .bits = 16, .num_adc_channels = 4, - .num_channels = 5, .oversampling_avail = ad7606_oversampling_avail, .oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb = ad7606_16bit_chan_scale_setup, @@ -243,11 +153,10 @@ const struct ad7606_chip_info ad7606_4_info = { EXPORT_SYMBOL_NS_GPL(ad7606_4_info, "IIO_AD7606"); const struct ad7606_chip_info ad7606b_info = { - .channels = ad7606_channels_16bit, .max_samplerate = 800 * KILO, .name = "ad7606b", + .bits = 16, .num_adc_channels = 8, - .num_channels = 9, .oversampling_avail = ad7606_oversampling_avail, .oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb = ad7606_16bit_chan_scale_setup, @@ -257,10 +166,9 @@ EXPORT_SYMBOL_NS_GPL(ad7606b_info, "IIO_AD7606"); const struct ad7606_chip_info ad7606c_16_info = { .max_samplerate = 1 * MEGA, - .channels = ad7606_channels_16bit, .name = "ad7606c16", + .bits = 16, .num_adc_channels = 8, - .num_channels = 9, .oversampling_avail = ad7606_oversampling_avail, .oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb = ad7606c_16bit_chan_scale_setup, @@ -270,10 +178,9 @@ EXPORT_SYMBOL_NS_GPL(ad7606c_16_info, "IIO_AD7606"); const struct ad7606_chip_info ad7607_info = { .max_samplerate = 200 * KILO, - .channels = ad7607_channels, .name = "ad7607", + .bits = 14, .num_adc_channels = 8, - .num_channels = 9, .oversampling_avail = ad7606_oversampling_avail, .oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb = ad7607_chan_scale_setup, @@ -282,10 +189,9 @@ EXPORT_SYMBOL_NS_GPL(ad7607_info, "IIO_AD7606"); const struct ad7606_chip_info ad7608_info = { .max_samplerate = 200 * KILO, - .channels = ad7608_channels, .name = "ad7608", + .bits = 18, .num_adc_channels = 8, - .num_channels = 9, .oversampling_avail = ad7606_oversampling_avail, .oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb = ad7608_chan_scale_setup, @@ -294,10 +200,9 @@ EXPORT_SYMBOL_NS_GPL(ad7608_info, "IIO_AD7606"); const struct ad7606_chip_info ad7609_info = { .max_samplerate = 200 * KILO, - .channels = ad7608_channels, .name = "ad7609", + .bits = 18, .num_adc_channels = 8, - .num_channels = 9, .oversampling_avail = ad7606_oversampling_avail, .oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb = ad7609_chan_scale_setup, @@ -306,10 +211,9 @@ EXPORT_SYMBOL_NS_GPL(ad7609_info, "IIO_AD7606"); const struct ad7606_chip_info ad7606c_18_info = { .max_samplerate = 1 * MEGA, - .channels = ad7606_channels_18bit, .name = "ad7606c18", + .bits = 18, .num_adc_channels = 8, - .num_channels = 9, .oversampling_avail = ad7606_oversampling_avail, .oversampling_num = ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb = ad7606c_18bit_chan_scale_setup, @@ -319,11 +223,10 @@ EXPORT_SYMBOL_NS_GPL(ad7606c_18_info, "IIO_AD7606"); const struct ad7606_chip_info ad7616_info = { .max_samplerate = 1 * MEGA, - .channels = ad7616_channels, .init_delay_ms = 15, .name = "ad7616", + .bits = 16, .num_adc_channels = 16, - .num_channels = 17, .oversampling_avail = ad7616_oversampling_avail, .oversampling_num = ARRAY_SIZE(ad7616_oversampling_avail), .os_req_reset = true, @@ -373,7 +276,6 @@ static int ad7606_get_chan_config(struct iio_dev *indio_dev, int ch, { struct ad7606_state *st = iio_priv(indio_dev); unsigned int num_channels = st->chip_info->num_adc_channels; - unsigned int offset = indio_dev->num_channels - st->chip_info->num_adc_channels; struct device *dev = st->dev; int ret; @@ -389,7 +291,7 @@ static int ad7606_get_chan_config(struct iio_dev *indio_dev, int ch, continue; /* 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 = iio_priv(indio_dev); - unsigned int realbits = st->chip_info->channels[1].scan_type.realbits; const struct iio_chan_spec *chan; + unsigned int realbits; int ret; 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; - chan = &indio_dev->channels[ch + 1]; + chan = &indio_dev->channels[ch]; + realbits = chan->scan_type.realbits; + if (chan->scan_type.sign == 'u') { if (realbits > 16) *val = st->data.buf32[ch]; @@ -1289,29 +1193,84 @@ static int ad7606b_sw_mode_setup(struct iio_dev *indio_dev) return st->bops->sw_mode_config(indio_dev); } -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 = iio_priv(indio_dev); - unsigned int offset = 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 = indio_dev->num_channels * sizeof(*indio_dev->channels); - chans = devm_kzalloc(st->dev, size, GFP_KERNEL); - if (!chans) + struct device *dev = indio_dev->dev.parent; + struct iio_chan_spec *channels; + bool slow_bus; + int ret, i; + + slow_bus = !st->bops->iio_backend_config; + indio_dev->num_channels = st->chip_info->num_adc_channels; + + /* Slow buses also get 1 more channel for soft timestamp */ + if (slow_bus) + indio_dev->num_channels++; + + channels = devm_kcalloc(dev, indio_dev->num_channels, sizeof(*channels), + GFP_KERNEL); + if (!channels) return -ENOMEM; - memcpy(chans, indio_dev->channels, size); - indio_dev->channels = chans; + for (i = 0; i < indio_dev->num_channels; i++) { + struct iio_chan_spec *chan = &channels[i]; - for (ch = 0; ch < st->chip_info->num_adc_channels; ch++) { - ret = st->chip_info->scale_setup_cb(indio_dev, &chans[ch + offset]); + chan->type = IIO_VOLTAGE; + chan->indexed = 1; + chan->channel = i; + chan->scan_index = i; + chan->scan_type.sign = 's'; + chan->scan_type.realbits = st->chip_info->bits; + chan->scan_type.storagebits = st->chip_info->bits > 16 ? 32 : 16; + chan->scan_type.endianness = IIO_CPU; + + if (indio_dev->modes & INDIO_DIRECT_MODE) + chan->info_mask_separate |= BIT(IIO_CHAN_INFO_RAW); + + if (st->sw_mode_en) { + chan->info_mask_separate |= BIT(IIO_CHAN_INFO_SCALE); + chan->info_mask_separate_available |= + 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 |= + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO); + else + chan->info_mask_shared_by_all |= + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO); + + chan->info_mask_shared_by_all_available |= + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO); + } else { + chan->info_mask_shared_by_type |= + BIT(IIO_CHAN_INFO_SCALE); + + if (st->chip_info->oversampling_avail) + chan->info_mask_shared_by_all |= + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO); + } + + if (!slow_bus) + chan->info_mask_shared_by_all |= + BIT(IIO_CHAN_INFO_SAMP_FREQ); + + ret = st->chip_info->scale_setup_cb(indio_dev, chan); if (ret) return ret; } + if (slow_bus) + channels[i] = (struct iio_chan_spec)IIO_CHAN_SOFT_TIMESTAMP(i); + + indio_dev->channels = channels; + return 0; } @@ -1343,6 +1302,11 @@ int ad7606_probe(struct device *dev, int irq, void __iomem *base_address, st->bops = bops; st->base_address = base_address; st->oversampling = 1; + st->sw_mode_en = 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"); ret = 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 = &ad7606_info_no_os_or_range; } - indio_dev->modes = INDIO_DIRECT_MODE; + + /* AXI ADC backend doesn't support single read. */ + indio_dev->modes = st->bops->iio_backend_config ? 0 : INDIO_DIRECT_MODE; indio_dev->name = chip_info->name; - indio_dev->channels = st->chip_info->channels; - indio_dev->num_channels = st->chip_info->num_channels; + + ret = ad7606_probe_channels(indio_dev); + if (ret) + return ret; ret = ad7606_reset(st); if (ret) @@ -1465,17 +1433,11 @@ int ad7606_probe(struct device *dev, int irq, void __iomem *base_address, st->write_scale = ad7606_write_scale_hw; st->write_os = ad7606_write_os_hw; - st->sw_mode_en = st->chip_info->sw_setup_cb && - device_property_present(st->dev, "adi,sw-mode"); if (st->sw_mode_en) { indio_dev->info = &ad7606_info_sw_mode; st->chip_info->sw_setup_cb(indio_dev); } - ret = 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..f0b262fb4554f0bf244338c98ca585143321d616 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 -#define AD760X_CHANNEL(num, mask_sep, mask_type, mask_all, \ - mask_sep_avail, mask_all_avail, bits) { \ - .type = IIO_VOLTAGE, \ - .indexed = 1, \ - .channel = num, \ - .info_mask_separate = mask_sep, \ - .info_mask_separate_available = \ - mask_sep_avail, \ - .info_mask_shared_by_type = mask_type, \ - .info_mask_shared_by_all = mask_all, \ - .info_mask_shared_by_all_available = \ - mask_all_avail, \ - .scan_index = num, \ - .scan_type = { \ - .sign = 's', \ - .realbits = (bits), \ - .storagebits = (bits) > 16 ? 32 : 16, \ - .endianness = 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; 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 *indio_dev); /** * 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 *indio_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..e33b07ab5eace4b78e7cf39ee7e8d9379c9f73e7 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" -static const struct iio_chan_spec ad7606b_bi_channels[] = { - 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[] = { - 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; } - indio_dev->channels = ad7606b_bi_channels; - indio_dev->num_channels = 8; - return 0; } @@ -120,19 +95,11 @@ static int ad7606_par_bus_reg_write(struct ad7606_state *st, unsigned int addr, return pdata->bus_reg_write(st->back, addr, val); } -static int ad7606_par_bus_sw_mode_config(struct iio_dev *indio_dev) -{ - indio_dev->channels = ad7606b_bi_sw_channels; - - return 0; -} - static const struct ad7606_bus_ops ad7606_bi_bops = { .iio_backend_config = ad7606_par_bus_setup_iio_backend, .update_scan_mode = ad7606_par_bus_update_scan_mode, .reg_read = ad7606_par_bus_reg_read, .reg_write = ad7606_par_bus_reg_write, - .sw_mode_config = ad7606_par_bus_sw_mode_config, }; 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..b2b975fb7fea4d1af6caef59e75ca495501bc140 100644 --- a/drivers/iio/adc/ad7606_spi.c +++ b/drivers/iio/adc/ad7606_spi.c @@ -15,50 +15,6 @@ #define MAX_SPI_FREQ_HZ 23500000 /* VDRIVE above 4.75 V */ -static const struct iio_chan_spec ad7616_sw_channels[] = { - 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[] = { - 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[] = { - 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])); } -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 = ad7616_sw_channels; - - return 0; -} - static int ad7606b_sw_mode_config(struct iio_dev *indio_dev) { struct ad7606_state *st = iio_priv(indio_dev); - int ret; /* Configure device spi to output on a single channel */ - ret = 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 = ad7606b_sw_channels; - - return 0; -} - -static int ad7606c_18_sw_mode_config(struct iio_dev *indio_dev) -{ - int ret; - - ret = ad7606b_sw_mode_config(indio_dev); - if (ret) - return ret; - - indio_dev->channels = ad7606c_18_sw_channels; - - return 0; + return st->bops->reg_write(st, AD7606_CONFIGURATION_REGISTER, + AD7606_SINGLE_DOUT); } static const struct ad7606_bus_ops ad7606_spi_bops = { @@ -221,7 +142,6 @@ static const struct ad7606_bus_ops ad7616_spi_bops = { .reg_read = ad7606_spi_reg_read, .reg_write = ad7606_spi_reg_write, .rd_wr_cmd = ad7616_spi_rd_wr_cmd, - .sw_mode_config = ad7616_sw_mode_config, }; static const struct ad7606_bus_ops ad7606b_spi_bops = { @@ -237,7 +157,7 @@ static const struct ad7606_bus_ops ad7606c_18_spi_bops = { .reg_read = ad7606_spi_reg_read, .reg_write = ad7606_spi_reg_write, .rd_wr_cmd = ad7606b_spi_rd_wr_cmd, - .sw_mode_config = ad7606c_18_sw_mode_config, + .sw_mode_config = ad7606b_sw_mode_config, }; static const struct ad7606_bus_info ad7605_4_bus_info = { From patchwork Tue Mar 18 22:52:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: David Lechner X-Patchwork-Id: 14021698 Received: from mail-ot1-f54.google.com (mail-ot1-f54.google.com [209.85.210.54]) (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 62E47214A94 for ; Tue, 18 Mar 2025 22:52:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742338355; cv=none; b=fcKLFXmZ2YZyB1wUWylz3haCACi/Yo0rWxb/+h8i8wCbr6HN9FnmY/tZvdyhfks+Zof9vCd7UBobUDg27gmbEu4Bxv0fqXwts507OB6uQFNezoIsoVBAK5a42tTC0++uwPc01v+EK58vTymEx0s5obVaLT0skQ5SGFOU7QV0jYE= 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.54 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-f54.google.com with SMTP id 46e09a7af769-72b7a53ceb6so88826a34.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=UDWG22WXQa0Ar9HuC9OsRf4JJWgNQ46vJldrlffhuy4vfNem+4bxYihIVvVNSkpWO0 yzcws0IviTlnu4/63ykGZupIZPKKxLZ+HmF380GTHxzTN8JJJBLBovgwbJeU137Wm2Nv cLgIWaKqt74TgNbph9F3J9GuCk7XnkFyiAOHaSkVA8T5lj81idpwgjZ+Z7mqJKQC6pgb xotdY52d00WIeuenfKDP4AahO1+VzYQeka695+g8442NzY7DOIV0m9HlsyMklP9CvQmt 4a6ZlO9HKboGVOmMa/DMSK2UCIkdkuXgpO2QF1D4yezLjkipYfhoeOPYB6wZGIXPGIbW Lk2g== X-Forwarded-Encrypted: i=1; AJvYcCV4Wt6ZftyTIDD29s7wJgLa3VbRqggdsgFKDARbPlkneWel8e20yHwRn6ro4WLtqXjEtKe/MPtAOH0=@vger.kernel.org X-Gm-Message-State: AOJu0YzKbIvAMWrO9kSpnzLfcg0UvTxc8e7r6q1XG81yW9d0Az8OTCkW oltmiqoAl5JMLK6yI6xAs5kFxOeUKnAHM926YTogGyC5L1rT6OSbGb33nziMUEY= X-Gm-Gg: ASbGncs01ArwS5WhNNKTpdtNlejLnS6+aRzzkwtbvyH05rRZJoO/O+YopjGN5gGDZZk uO0mPbTIKNLT7OrTkP6XSRaDqMMkL0ko6Lp0dDnHwC8++tl2qn6yNCMUk0HkYaGyT5xbhYD168n UKcBVkDEow1rD//l2PKxZ6M1ZymrIS8Dnp24EbBdBVfOta+DYtV8Vs6X6S0aAVuYMc5UwRFiG8O +U5OVr7B57ONlJoJShoqTfmkqOj9vUk0+9ielWlxFot7KkNXKt95fU+8KGBTACSnK3a8jdb++N2 iDUdyp4Cpm+T1IpZGNXzgW2jlmuReJNnepoQ5RBdOYcRIvnbCDf0qE4HzIaTm/M5UnN9c2Avj45 j 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-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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á 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..634852c4bbd2c531d6c0e02d2f1e62db9008cad9 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_ids[] = { { .name = "ad7606-6", .driver_data = (kernel_ulong_t)&ad7606_6_info, }, { .name = "ad7606-8", .driver_data = (kernel_ulong_t)&ad7606_8_info, }, { .name = "ad7606b", .driver_data = (kernel_ulong_t)&ad7606b_info, }, + { .name = "ad7606c-16", .driver_data = (kernel_ulong_t)&ad7606c_16_info }, + { .name = "ad7606c-18", .driver_data = (kernel_ulong_t)&ad7606c_18_info }, { .name = "ad7607", .driver_data = (kernel_ulong_t)&ad7607_info, }, { .name = "ad7608", .driver_data = (kernel_ulong_t)&ad7608_info, }, { .name = "ad7609", .driver_data = (kernel_ulong_t)&ad7609_info, }, @@ -235,6 +237,8 @@ static const struct of_device_id ad7606_of_match[] = { { .compatible = "adi,ad7606-6", .data = &ad7606_6_info }, { .compatible = "adi,ad7606-8", .data = &ad7606_8_info }, { .compatible = "adi,ad7606b", .data = &ad7606b_info }, + { .compatible = "adi,ad7606c-16", .data = &ad7606c_16_info }, + { .compatible = "adi,ad7606c-18", .data = &ad7606c_18_info }, { .compatible = "adi,ad7607", .data = &ad7607_info }, { .compatible = "adi,ad7608", .data = &ad7608_info }, { .compatible = "adi,ad7609", .data = &ad7609_info },