From nobody Mon Feb 9 14:42:21 2026 Received: from mail-oo1-f41.google.com (mail-oo1-f41.google.com [209.85.161.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 EDB6D4A2D for ; Thu, 13 Mar 2025 01:16:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828576; cv=none; b=j2oRr0/xDWPwIhti6pL0jlRs5O3YPZ3OCfDshngNJWaodnmMlD2tBiAztwq2BiOhvowQXlvix/zEU8UO++7Jb/iPtPElswjw5YNsrXHzPcp/Qz+u1fUH3qDXSxvXHl5B5z6vX/5DYP6n+++BqTTjPmo8zUWKoVyzFNVJ7SJdadY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828576; c=relaxed/simple; bh=Nsm1P9IXqK79RS5iTQ15GAMUIKO5XFHcSqUCqmzn8qc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eIuoXESKsyCMMOHNxPssmT6dk2cygOSZV1Bix2HeJXSJUZx9hvRtUB+gONyTyQMEXXOXQks7NWs69gevzxpkZi7UfR01wM6jze3FqNVSuMwj8Wf+KQUtsKoEJtrDTvekhy07XsSnTrp6d0QFCzBpKiLgQdZUdbUNsc078STINPQ= 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=rPLX3SjK; arc=none smtp.client-ip=209.85.161.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="rPLX3SjK" Received: by mail-oo1-f41.google.com with SMTP id 006d021491bc7-60029342c98so238664eaf.1 for ; Wed, 12 Mar 2025 18:16:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1741828574; x=1742433374; 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=mrZTqZUxbK1LjORtr8ZS2MLu+W9jtz5kAVFYAftauks=; b=rPLX3SjKAEDFPf5Uiyyr5MJr0mlerAxD2u0vscXa+xBZmiOdrRmEA0c7wZUL8F5mDz H4xuTJkxS0M/8EAMwZfDuquclHOM5KyrK51ughKMsKNFlIyA/v4P3MH2qTpvBLwrvO9L bmhUt6bvC0l5VhjIUuiXb67xGbfWINh5R5g7uMsvVSKi6xoIDdbUS6um7og/kcSdLA8n Ncw9HVRupI8cCLycUaJsb2smkb9isY80x6NCBL+0n2UuYSeZAY3+eq3+c77hDQ6pWJ8X C2c7J4NRcBnwQaEarJZvJWROekAEIhTzQnlMjaWyMi8AZdrw2VQaippWLu/FdS2mcwx+ NvVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741828574; x=1742433374; 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=mrZTqZUxbK1LjORtr8ZS2MLu+W9jtz5kAVFYAftauks=; b=FZOFujMkKuwMB7WMhigxplRehHMylShb0ssqnPpVokSNbIrtWUc4/fQPdtqN+eGOcT YmFnl238AVzJYiVSJ83fDWPR8pap/wG2MF0q41CdcTG5rMMVV689NU+Cp6taLw2G6jOD mqMEuvEEjZmASpZloxDGp2Xic2CJ8SLv6C5xOwDSMKwnXYDxse8SY57G8QSzPsuVRUwz vAUK6VdUyYcE/iNS6dGeoNiYIIwzgJpVtoRhupTE/KoFfoCb1G6ePY7zbZi6zlBbVkCT kfL0b0UjcK2/+Tfx71N5nt5P1WlVhU5N9mYiLewNpxxDQVsEaCYy+VmPvdEnu0wpXIuG ug4A== X-Forwarded-Encrypted: i=1; AJvYcCXjmUXBFD5Vn35+P/QoJCo2cYIUyzN+Y2LNa0XxSoWhNSvpHSEJl/5RlopqW9kC3qihUwxBqC906XRe/nQ=@vger.kernel.org X-Gm-Message-State: AOJu0YynEIcZ32iFHJzEopbX3EU5V1YI1UUnG5R7I/zJsNAOMDN2FXSO OT3eihMF/agpdWmKxb1KauS3RNK64D1e2zBiEKjgJEtEkP4aUVl0CL81kTkkCnE= X-Gm-Gg: ASbGncuAOujcbanXC+Cm+uIRuyixCsQGjF07M61u4IPqmVGCzOjiL66umJYGeJ91sXf eSlCyAarRIt2niZ/Pw2+zEuTr7Cfgx2XF94dlh5ufN7Bwxi2Zbr2M/ioha8RnAx6o500TzAHfqx pqWo1VdL+ZMQoJJDjXKYo9r9sU7xP7cLhzcV/EeBKX1zOyCFdvR74bqPDf7nSTJDnKKRuMz/p6u fLYvC3Tmj0KkhWbrMiPUcUbOFxOThwiTwHhOK9PN54x7iAmpZZEALnoaILuMp+pdCu+kXAw+qxg fcAi9PaNcp8Yh3SmhtZS9zCGjy9ErEe42jCcIpzFPRDY2iPzlAkIHL3hHtEQdHpB0ajR1jB79HA d X-Google-Smtp-Source: AGHT+IHAfNO0rPuYnHkGm0gbnqyBvXFhbZTEPez6E/tb7cDSLbvx7f4sbMN/yzXFdcc0JNs+adii7g== X-Received: by 2002:a05:6820:3090:b0:5fc:fb1a:2b92 with SMTP id 006d021491bc7-6004ab2f30emr12512731eaf.6.1741828573934; Wed, 12 Mar 2025 18:16:13 -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 006d021491bc7-601db659ad8sm39865eaf.8.2025.03.12.18.16.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 18:16:13 -0700 (PDT) From: David Lechner Date: Wed, 12 Mar 2025 20:15:39 -0500 Subject: [PATCH 01/11] iio: adc: ad7606_spi: check error in ad7606B_sw_mode_config() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250312-iio-adc-ad7606-improvements-v1-1-d1ec04847aea@baylibre.com> References: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@baylibre.com> In-Reply-To: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@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 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1102; i=dlechner@baylibre.com; h=from:subject:message-id; bh=Nsm1P9IXqK79RS5iTQ15GAMUIKO5XFHcSqUCqmzn8qc=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn0jHa/kXO9pooqHCPQs1sIidUhMs3fZytFn7t9 gsVcWOBrC2JAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9Ix2hUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAMc7Q//VBTc8uLhwPNd8mhtlYZcmXiY1rBXmfgk1ZSPvX7 rNQBIGJNniHB54qa4WZSMgICcpZQ4u2kodME6zw8CaB/qz2QVai4pTerzUO8B35cu2eCC1lbv7b rr/hupj6y2ocg8yiz+o0f98Or2P5XGpCG8rEJbKTOSyXEvQOip8emP5sx4OcRUT/UPh+ZmXkrrQ +HeDF1PwSfBfriOugQgPUWhQEwX/qHMgBQgEFto+mNG1TrRQqOouxkor5sbdwr5C9GLqZyGEjru OoBYxt81rHNRrDL2KYgu4wdSaD67wEsWBeoAUlMAgiUFVa7t+1PB3COSaHC+Sxx/EmGGHKxZGuu 3v6ZoxbzgoR88Gp0lTWa3o860Nwkd7tCxYrWCWhXXSlETW/m4dT5kCqY096W3clsMdtoh7yEByw 4HAAt3OomdgwW4h4OBqpZ48QT6T4oK0kABAVSNWwebG1jwuzriqdCU2bCCSFSlZUgh2s3Wn+Mpd Sc+5lItWP5Tdx9wINeOy6G6vnAr4zXUAZDlNODvCUG6szR7D37jjK8rsHuyCsWXV5saJ3xDbp3j 3WlpNCFoD5zTPl9iXjqVMgyYTCuXW9vbA6HXexeIbu+LngyvJ7/J8VKq7I8XgLYFj6OEGMl+qfm jVuGcp0wxRm+ROa9K+MucJtYU/AI4RDpgVFCOqw5YtZk= X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Add missing error check in ad7606B_sw_mode_config(). Fixes: d2a415c86c6b ("iio: adc: ad7606: Add support for AD7606B ADC") Signed-off-by: David Lechner Reviewed-by: Nuno S=C3=A1 --- drivers/iio/adc/ad7606_spi.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/iio/adc/ad7606_spi.c b/drivers/iio/adc/ad7606_spi.c index 885bf0b68e7775c5f4a12dfb827f502d5f782e8c..c028e08efe2c82cd97249f98eec= 50a9a9c06471f 100644 --- a/drivers/iio/adc/ad7606_spi.c +++ b/drivers/iio/adc/ad7606_spi.c @@ -174,11 +174,13 @@ static int ad7616_sw_mode_config(struct iio_dev *indi= o_dev) static int ad7606B_sw_mode_config(struct iio_dev *indio_dev) { struct ad7606_state *st =3D iio_priv(indio_dev); + int ret; =20 /* Configure device spi to output on a single channel */ - st->bops->reg_write(st, - AD7606_CONFIGURATION_REGISTER, - AD7606_SINGLE_DOUT); + ret =3D st->bops->reg_write(st, AD7606_CONFIGURATION_REGISTER, + AD7606_SINGLE_DOUT); + if (ret) + return ret; =20 /* * Scale can be configured individually for each channel --=20 2.43.0 From nobody Mon Feb 9 14:42:21 2026 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 C9D801C683 for ; Thu, 13 Mar 2025 01:16:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828578; cv=none; b=kZ7sLkg88gTNl9PJXWwdfrQe1THqTNTF1TbVaY758jc7hJAKDrPkKXOh0+I6jJP5vx+b5XFw78dns0itL9q4xyyCAu89YKvKMOedvg2jHsnHu/1OBxVA3jTcxcj1woHhLin8yHG/EpzhGdWZUAzdhkcRZiv+QHDJnurrB7/hxUY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828578; c=relaxed/simple; bh=xZHcGGygz8rLb2jKnacJRSX2NoW/pbcS9hwvQWXE9dI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EP4UeCVpD2rjostAHvawyjGQ/GRpcmh55noGiQNjOzJlNXXRWFOMmBEGS1xA8ENSq+NoC0uoQeiJozEEHEQF3rebgTlmrmZx+7yCOjAia6OC+OAcSUs6LxHCT1ymRnj2IQNm9Y6uEndu/68I0dROyt5Djz5ziV0pY8+aJ91kdHc= 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=qB99r5xO; 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="qB99r5xO" Received: by mail-ot1-f51.google.com with SMTP id 46e09a7af769-7271239d89fso130233a34.0 for ; Wed, 12 Mar 2025 18:16:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1741828576; x=1742433376; 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=Bn6syc6wh8t9UYBPXOdzHhnfpFN2bWgwC2EMK9hX77c=; b=qB99r5xOzcOAYUWu46n7Ox0hAC6ROLLSW+NXSF5tQOxfG+/5JfhJP3WrQEuvn/LX7Q Jm/CpFsezQYeiPf2/bU+MFS9c+eVn4eZpkGvrrWrgG2hVJ8Kjvx5SQEONjvup2MseHA6 EztbpC1yukmvfC+RArhhkS52Su2/MlE8AHT3cV2OhoK6AUgyDj9ueuu5M4eIR+2urYRL kzqbQERYUL6IhXGuVQEBubj4YfW3wHdQ69Xk+MQ6j6faSzY7rqK0380mZOk6hzs7jMRT Kv/s9i+/vsDYHgmyY8LZR/AmqLxqYRO8yrenYW4xKkfiIT4McGYF0hVn6CpoUcU5H6Ng rMbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741828576; x=1742433376; 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=Bn6syc6wh8t9UYBPXOdzHhnfpFN2bWgwC2EMK9hX77c=; b=LGwa221lK1XPX8UG0QEbx2AQlrkMKz0zSvD6kqtmmkAi5nAfJvFFadIWaoU1459TwP qwLKXUpIyytvqVcmsV8eMFmG3lx2TYEn/HoIFbToHjIdGL9HdA5Yun/ssZC/Y3DBWwbZ +Nzqog0N45CEkFCCI/OtvWwnWCbI+II9p8s+PwNEfFAQdpumo5+t81BJf7893V/3z1zo UJDKuwsbl1+fZm77kGalwqXt3jEzOzHJfE+1Iu+bbOBvAQDCE8DR7z2f8bxVN3P/Eu6+ KjuF4zXZvIpWO03WqryuGYnmp5Sdjh78EPB/PvRhCCgQVvgqbi8HixNEZ0OUbOdGTE4m 31Lw== X-Forwarded-Encrypted: i=1; AJvYcCXaYpkYXn+owbEC6mFVK6ifcCTJZ51chktBueGatxQq56Ae+EZL/bqyES9t89J2HTPccquUto2M5adeRN0=@vger.kernel.org X-Gm-Message-State: AOJu0YwB1dCdZfILs1N4Jxx3TKpiTQm/geikTWBBaqslRA/iK2m2wiex 2zo2jL0FQyKK2gXAZ9CBVmMNW6bo7YouvlwP+Cbm4382RjntYPXNob+p6KHGg1Q= X-Gm-Gg: ASbGncsLkrZ1UT5XAAmr9i3SELuZzw0wP+RbU6LNjQp6rNWRGx0uu6VYNIiO49bW0K7 SjtVEni95SyBXJPngOGxB3/NA93eXFFfxg49cluxycoxOlz4TTwU/u3mBsEAAlT4wFYgueTu22/ WTJkhV0oVer2ZHWR8lHoC1eymIbxj7jIPWZSXM4CkRl7sQGwdZcE9vRxoHF4fPzlbbGh0Q3n67R fmx456PJ94X2P0B55u/2svVrSerBHxs2gPoRRWRPmWDkr+S+Y5t9fzjJwozlm4UabFfePzSGjbh Kkm3UDtzlZFEH4PBhGIdLT+D6+0GZfcRvOdEgSsrdh/ccLBOmQMVOfqjNcfKOlGIfpSoED2RJVy 8cUchDsBkTZ4= X-Google-Smtp-Source: AGHT+IFqI99xnlFy4vifJ2ohpC02lCYpxCA0dEsc1Wso3XCVcaj9+mlk9yGOjVOWn1sqikxx0nYmpQ== X-Received: by 2002:a05:6830:6201:b0:727:4356:9f07 with SMTP id 46e09a7af769-72a37ba072amr12944875a34.14.1741828575757; Wed, 12 Mar 2025 18:16:15 -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 006d021491bc7-601db659ad8sm39865eaf.8.2025.03.12.18.16.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 18:16:15 -0700 (PDT) From: David Lechner Date: Wed, 12 Mar 2025 20:15:40 -0500 Subject: [PATCH 02/11] iio: adc: ad7606: check for NULL before calling sw_mode_config() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250312-iio-adc-ad7606-improvements-v1-2-d1ec04847aea@baylibre.com> References: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@baylibre.com> In-Reply-To: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@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 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1399; i=dlechner@baylibre.com; h=from:subject:message-id; bh=xZHcGGygz8rLb2jKnacJRSX2NoW/pbcS9hwvQWXE9dI=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn0jHa3XB7NLH6KlhxCimyly37UP6OgW+jgn4ji O1EenmhXI2JAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9Ix2hUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAMCcQ/7BfJcfeY3IbXeqBUQzMYAqUbr5OxwuJ6SRo4Y7Ky +n152MA7Xi1730p+i94R8ssYBgq0ZG3ukWTbMiU9EGmaRILr4Ou8fm1tsq1CxGE2OJGYJM27r62 VPHpBhc6BTwNbEbn3SSnLuFUEwDNd/COcz9byTJ8kw1EnmktcM/VsynUnL4Yfpv42qtnF9sJkQo x9U1dVTYPWpKqfK1m+ER27D06DNtaz36G0rP9S73i2NE9zJKqoDbO73teee/mohAQa7MOE/jswv GqEkpgHnFUvtOXvcAchjdN/lIztILIKao7QH4NI9Mfzkyh9gnEaj9k5fv0k8tWrYDx56VS7UZ8Y O6YWni56Bus4UVJXm9pTRoUC+6zfie0rjinrukkganorAu11xVt9zYYyt5G0T01A3ULhypT67Bu CvTlkTh+/E4nKQv7pz5wqea+At+SfESe9MoMc7MC9jyMXT552hi/uINWmCWnRMLue7rXEbnouj3 kMOpKfymNovEAcaDo9rjfNIU5lvpTEBesf//+ZDwLo5m01By/YsCmal2XtYeVn0TQNvmhBVPwVo aY9QVcpRpMw2DlylcAY+QbGHV/obMrSmEMZYQ8JPScnkpk0aqhuoH0C7+6KtKLPVpcSgIljfeL0 VaGfi8BuoRO0gPJr+pitKe/A7x1DrHd7BspgJjMhRDh0= X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Check that the sw_mode_config function pointer is not NULL before calling it. Not all buses define this callback, which resulted in a NULL pointer dereference. Fixes: e571c1902116 ("iio: adc: ad7606: move scale_setup as function pointe= r on chip-info") Signed-off-by: David Lechner Reviewed-by: Nuno S=C3=A1 --- 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 631e837171679ad95e71cef2ce6c55c2c756881a..ec444aba25e89ced7b84b723ade= d3c9dbf2c738b 100644 --- a/drivers/iio/adc/ad7606.c +++ b/drivers/iio/adc/ad7606.c @@ -1236,9 +1236,11 @@ static int ad7616_sw_mode_setup(struct iio_dev *indi= o_dev) st->write_scale =3D ad7616_write_scale_sw; st->write_os =3D &ad7616_write_os_sw; =20 - ret =3D st->bops->sw_mode_config(indio_dev); - if (ret) - return ret; + if (st->bops->sw_mode_config) { + ret =3D st->bops->sw_mode_config(indio_dev); + if (ret) + return ret; + } =20 /* Activate Burst mode and SEQEN MODE */ return ad7606_write_mask(st, AD7616_CONFIGURATION_REGISTER, @@ -1268,6 +1270,9 @@ static int ad7606b_sw_mode_setup(struct iio_dev *indi= o_dev) st->write_scale =3D ad7606_write_scale_sw; st->write_os =3D &ad7606_write_os_sw; =20 + if (!st->bops->sw_mode_config) + return 0; + return st->bops->sw_mode_config(indio_dev); } =20 --=20 2.43.0 From nobody Mon Feb 9 14:42:21 2026 Received: from mail-oo1-f49.google.com (mail-oo1-f49.google.com [209.85.161.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4EDC678F37 for ; Thu, 13 Mar 2025 01:16:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828581; cv=none; b=gauN3ALxK/IAO8Jl26LA8v+SVlOT8KGLKr9MChNNoAtaEHLgMqnON6SjfNWFwmFrRac0Sjq2ZWD+UFUkou11CDub8n6zW/jOHnAlh1lVoJq2Kl5YVofUJACov7/jO3nsbRJjOc5c/C1e3EiMOyQOH+1Z5Q76NMTOvPkgeyajPd0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828581; c=relaxed/simple; bh=aCSNxcqCNLEUdXP5FazNSb+W8f+NI36xN5h7zORo6DA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rf+VwuklQn6z9UDEMWMIgmUKrXXSY8CzuQlguMmXYv1EH16KYiTo0BboQhLCN8ObKZ8L1gAQR6hjZSV1ppIwjbyAiaa+Z+5UCH89TaKIozTqRFDtLlL1lk+OrHOi4dzHfJYLfJXMYtw9+ZIqaK/i5N/jLW+Amo9rjgfyR3ScrJ0= 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=KFVAPU2v; arc=none smtp.client-ip=209.85.161.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="KFVAPU2v" Received: by mail-oo1-f49.google.com with SMTP id 006d021491bc7-60010601291so92068eaf.3 for ; Wed, 12 Mar 2025 18:16:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1741828578; x=1742433378; 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=6IIuScC1rZDljAss89HaUIuq6Uq+FR8kalUDdTgby0M=; b=KFVAPU2vIcGi5ZE7anJ//Tb2ehsCrzMEH42TlwzK0p948gDf2poRkfNDtT+eZxlAQX Zx5j6okEJFy6CPN/JDyjOtmzkefxXuBMppGeKyr3CF0rBFg+Nsf//osVf+Qse34VJOeY LmSHVjclwIs7Vzh6DdTJae8k1jijAkmPRDvrkttU6M1rcFqH3Gc8KzaEvd2+Y9ITFe65 4nSlwTE9IzFxZVW7FAS9JD7At/kZJ2iREuSVkzqUCdxKGE/0jZVwt/T8QzQJUk6rqrQe OqCARC9Mm2svAmCsVDbOkclxytrUKNPWs54YR+fSngQYLujWi0bi6nn78d4Jyvw04W+p TDOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741828578; x=1742433378; 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=6IIuScC1rZDljAss89HaUIuq6Uq+FR8kalUDdTgby0M=; b=j1qaGEZ78gSQWZNxsPwTEyXX07SqnHG637z5mhE3azJXzftsMgb2o85RkplQEMk5Y/ t6B3s+LHPzYSKs624gvXaYINgGoU8mk1Nnesu6DPXWMk8safjX16TKm2CKg4xpeC9lq5 l+BCiYFgUnCu7gQXVfIO+jMTpR0avK+e6gJ6yRh7uFaOt/10hsjXDu4/yCv9VgfkN8W4 peRC7IV+/asnO2/WDIJT8tVv+v1uiM5ipwVimcmhj2biqvlf3OPa69VZIwInfHM+aYhg SyWOpYkPh2zcmBIjTMCSDSQVZySoJvROE312zVneFFLioXpJDRzMVu7jAv9waPEu6t3T Wtuw== X-Forwarded-Encrypted: i=1; AJvYcCVZl7OXKVwp6ub2c9KzLca/L9Nwg8mWQtJARCSLD/kVEyFALP8dTJm3YCGnFICHGhjRQawGFG1lxS8H3bg=@vger.kernel.org X-Gm-Message-State: AOJu0Yyllr+Renmt/ixeuYvqzMjT3IaTc4D9Ch/1ShKCkI7duCAu3cy4 a+z979PpysniB2463sehuqCFDqR8Dql1YzEfAJqMXmMBQRoHiFFYwMIdoXwgvRE= X-Gm-Gg: ASbGncswUkDShB9io+rJNZHs6ymkShYPsWr/W0HoCQO6gWrCLy53oSXoeLM4/yGQVtM TpMBKBrQVRObmNdAdGssl37At/RLU6wie5YSD3Wpyane8F4XG8vlQlSlJTsg0cgspHsRW1fAJC9 zB3haXbnRTHGobw0Jq6W5fqEIudfTQ4PY4mJ8cIImEbsAD4V5D3W9e0SFI1flBzYTrXbNSrofjm S/vg+0EHoMzl9gnjfzn6Jzf80XxwGcec5NFmEZHz7cVR9yANxKS/p3IgrNfKx67sHBkY19vtVc5 Is0ycQck00JUByo+Mp73JxfnUYnC0+7uvKNM4x6klFCITmY7+YqJe+hRd1UwOQb6G/SI6rUuLsg 1 X-Google-Smtp-Source: AGHT+IGtx2k9tphbhIxjLIxklim43Ww0KS/NgM6K2oCL4pPoTPBS4pw84Znc7oQxTKhMXDFS/U+0ag== X-Received: by 2002:a05:6820:2004:b0:601:cdab:15b5 with SMTP id 006d021491bc7-601cdab16f0mr3345333eaf.2.1741828578467; Wed, 12 Mar 2025 18:16:18 -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 006d021491bc7-601db659ad8sm39865eaf.8.2025.03.12.18.16.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 18:16:17 -0700 (PDT) From: David Lechner Date: Wed, 12 Mar 2025 20:15:41 -0500 Subject: [PATCH 03/11] iio: adc: ad7606: fix scales_available attributes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250312-iio-adc-ad7606-improvements-v1-3-d1ec04847aea@baylibre.com> References: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@baylibre.com> In-Reply-To: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@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 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=981; i=dlechner@baylibre.com; h=from:subject:message-id; bh=aCSNxcqCNLEUdXP5FazNSb+W8f+NI36xN5h7zORo6DA=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn0jHa2hL66LYzoihyFfoiIzMijDBg1sgkeGOsH l+BVFG9g1WJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9Ix2hUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fANf4BAAnzvOR2ntBn0KilSMct3KWbfusfV/nfau1wbSCvC PPzWDfPfOoloJrfGmPCk5f9MJJmL1EC7hPiu0ssSjTrau9bocl9PPqEFgJ5DEugPcjIudpPiRto XN18BydifzRg/cgIJ5ZJYqW+nBZan/XXqgiY5yA0sgGUi0GqExjz5bvoOZvUAOo27iK/E9MdKvN KQ6ayM/ap9GfedElY8n6iZy8WmBcZBb+/XAC3ob6CYrTMQJBB3xOmvlQXUJviUwCuB0ZoLYVX0Z aHKsu7lVB2hGyXJZ3c52xU1PYvvUn/8+wi96unTsx/HpcqHO3B61HMx7KgOf9q4FXarKEURRcmN FicSHrcqoPJw0sHZOZeEip8Kjv4GhFwRyQyjgDtA9p1XyOkxJGuox/hnWwLP7D60m+y0OszDHYW 1KqR2T4zCLD+tUauBMgWHpKQe6tThoQbaKchdd6IN6A1CXsDTCJPWck35vNSzkwez7ywQ7vC5/C /psRq+h9/hoQas1giG4gC6ONJLtDrjEIuSPKjF1r5h4P9WaL6kOTiBWdH455R9yMOvS3Z5KX1QR vkr9McvTYmOgnvbaGEQDAxhbfZ5VWssvwcO8cBN0RRlMQrLY13vSQuNxwBVQK9TBt33puNoT8DP c7RauJGq91IHfPF5Z0yX+HIgWGzUVPBItUQIX2CL/TSQ= X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Fix the scales_available attributes to return all of the scales, not just 1/2 of them. Also fix const correctness in the cast while we are touching this. Fixes: 94aab7a0f5c7 ("iio: adc: ad7606: rework available attributes for SW = channels") Signed-off-by: David Lechner Reviewed-by: Nuno S=C3=A1 --- drivers/iio/adc/ad7606.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/iio/adc/ad7606.c b/drivers/iio/adc/ad7606.c index ec444aba25e89ced7b84b723aded3c9dbf2c738b..79929bd24fa40bccfcdd8867310= 7da4bf56e032b 100644 --- a/drivers/iio/adc/ad7606.c +++ b/drivers/iio/adc/ad7606.c @@ -1064,8 +1064,8 @@ static int ad7606_read_avail(struct iio_dev *indio_de= v, ch =3D chan->address; =20 cs =3D &st->chan_scales[ch]; - *vals =3D (int *)cs->scale_avail; - *length =3D cs->num_scales; + *vals =3D (const int *)cs->scale_avail; + *length =3D cs->num_scales * 2; *type =3D IIO_VAL_INT_PLUS_MICRO; =20 return IIO_AVAIL_LIST; --=20 2.43.0 From nobody Mon Feb 9 14:42:21 2026 Received: from mail-oo1-f49.google.com (mail-oo1-f49.google.com [209.85.161.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DC5FD142E83 for ; Thu, 13 Mar 2025 01:16:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828582; cv=none; b=nDOoKnH8jmpHth0eWawpdrxaMjaCWTMuStPp4GmO2cA7G9ErUG5ZyxBUJjIQlPfQzqAitQMoZuaTzyU2sLJR9fTUpC0G233DNH1erzUTAJgGu2Gw1x8gheS+seyU1kvEYzLx+mCT9C98p6iVKfthHjOVdVWkBBAn7wuFPqRSSkU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828582; c=relaxed/simple; bh=qKZSuCxtl9tcxt4Po5/CTXwnjx7p7qGopCKUQxtAESY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kmnWQK5urvry7WEHO6cd6rnF22A/hlnAKe3sSEtxqOBk6fWHC1diO1WJgrzm07m9/7y6EkzlREHfeHe2T20HA6RjWmGuxwWV4kCK+YF8Mlg65p43NDylW1UZGkGBc9haGpZqC96biIu1lcQkvwOxN263xUO5SRrBPMZmGIsBC8g= 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=NUnd6KRE; arc=none smtp.client-ip=209.85.161.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="NUnd6KRE" Received: by mail-oo1-f49.google.com with SMTP id 006d021491bc7-5fcd686fe0fso205237eaf.3 for ; Wed, 12 Mar 2025 18:16:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1741828580; x=1742433380; 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=Ub2dM3/RGcj9mA3V9E27MSFaOISaFpTMgcXwRQUXdos=; b=NUnd6KRE+9LTLjD8SBWE88QRucwaR91oclHuPilTjDeAPebOQ+LuhzWbemq7yc5DB3 qWOHai8Hpg7fXzShlozL8ddW9F+f+Btn98yT4pBPu0MfForXqaeP9wzGeVRB4RuMopIN DeESgcwTBEX46EEH0fJkLAvZ65qYytExLTzQ+YLDPlc8ffs/RpTFHQJ0NH2+i6VKA47P 7xQ4aNzwhJPtGRmFQ6OwXVuY7xrGzFVTOjaQRk0e5GYurUpfbo+f+U7sBCpSz+DWr27U R3mqro0cN3wELT7dRTqBxxwon7ogg5MsJfJoEuv/2JrD/+UXu9xy7A6YwP2p84TdZEMn 0bmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741828580; x=1742433380; 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=Ub2dM3/RGcj9mA3V9E27MSFaOISaFpTMgcXwRQUXdos=; b=J1aKXxzoe4kB/u7U7lp+VeNF9xM5maxFwOqQ9F6u7pfHrfDg6mesFZO5BSsvlFAiQM j4epAE7onxjqDc1F0Iyx4ExWNXUCQZurR3gYFaaRTQ52VoLFyt94mBraBagRGLUbCsVr KzD/o0Ja3PtMkjZLi0DgzGcCv2ULp/qSJOjuuCH4XhOyGnrL0WvKAIYXJnHckvQ9+1z5 5iGsxEqQElRA0zWfc/5yxkkL8QCjAxMOsarUEZ97ew0WHiQ0DYhgwMeS74sVI0mWV61z h/WcaATTi7pML74glT8sua2ORbFwAevxBSZ+mnIwkx3hsby/5NzbRVasu2b/GmfVAjGb wUNA== X-Forwarded-Encrypted: i=1; AJvYcCU+xnXr9q0KyZbxvSQp0WcC4f84iJRaQe8aZa/KpbgbbBouwV6MCiKLlIJEPVpdo3FRD2u3/+T8WNV1/Lw=@vger.kernel.org X-Gm-Message-State: AOJu0Yzaq2EEwHZulhLtdnNrFcMOf/WWTsnClA26ALkutuHE1M0LsGUh /HKHbu3Zrm9Y3dM7vD72GdoYKvMYcCDnMKfWm6YnF2iredMtpGqj8+qd0c/ZJi0= X-Gm-Gg: ASbGncsyzJvVD1On6zEKJpUTHyzkU26Tbi+pfuIFC8Q13LKQsv2fpe9xUpEy5phqT9Y fZk3X+oCi8nfpSRBP00t5OHiMVgMet0f4NwTZK+pyRYPVQb7hSDD2Wo7IGPut4j+ERnYTVpHSp5 vaEUz7NaKGVcS2BBTK1h5RBy+BBxxMp+aZsPF7hB3MkUeCiPSD0yQZ3YqpUM6JTlDURWEYIAC8o bTMLk3pCRMI/eKRCl4cZzpMQkmgCNBI+YWodZ+ZK4Z0iO5fImH3WSkjue2MH4Ld0U/VPAwZDiSN HPkg4WqrVcTwKfugFDDJ/T8SNZjuSbi28PZh61HsUtsM6TaU2NE1+0tbN2H9ONYZtJC0cGaX7Oa t X-Google-Smtp-Source: AGHT+IHDd7tqJOjGEcZgrq1YXhswYd1QsJBlWzqCWhPa2Kg7pTKfG0tSIHEabd4fj4R6v/meEWMubA== X-Received: by 2002:a05:6820:8c6:b0:5fc:b7f4:c013 with SMTP id 006d021491bc7-6004ab16543mr9939642eaf.5.1741828580173; Wed, 12 Mar 2025 18:16:20 -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 006d021491bc7-601db659ad8sm39865eaf.8.2025.03.12.18.16.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 18:16:19 -0700 (PDT) From: David Lechner Date: Wed, 12 Mar 2025 20:15:42 -0500 Subject: [PATCH 04/11] iio: adc: ad7606: add missing max sample rates Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250312-iio-adc-ad7606-improvements-v1-4-d1ec04847aea@baylibre.com> References: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@baylibre.com> In-Reply-To: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@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 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3398; i=dlechner@baylibre.com; h=from:subject:message-id; bh=qKZSuCxtl9tcxt4Po5/CTXwnjx7p7qGopCKUQxtAESY=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn0jHazYHJnK5YXUo98qA+IVLMwIcGE6xWiHGYY VJHFvQv3eOJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9Ix2hUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAMMIQ/+NuXu3Jy7/vklUjpso0z/7/z9RaSOHwBnj/hBkhZ qP/3dO/VUEguGsxUYlQIG+8b0ojamy1+NdXN42XrV8tKrPln3LfduqUKxPCo1yCb/JgGtI/vWhf S/KQFAQ4fNf9dy1s9CIU9i734cl9DvKItDbLeK+PtX7uWnGL0lqOtLbGTbZ66vGVVmb9jFZnzcK aYpuJCCvn8LB+FqORXaradJwPltRzdaHTN4PzVeUC+qOO5e1KC3EsOCxaHls23oX29gvQE33L2M 9KjDYlmZXN2CtBcPkYxvP1Lnd42l7gTtCRZavVqB22wL/bmpE51VrEZ1xZNys1Ucdo5Mao+fb1G WGHnLMzFVJp7Iq8VwiFxEOw1DdV7XUfXYEDeRQHLex7QvB85KkBHX8NOy+A9ouUJ7dmjoAxcYGC ndV8os3vh9hCfBAq4iNrl4DcIDQqXbIciIxcrem2Bgvq8Pc4gjNqAALgjWCGFmxduKe6jO2kY+8 0V6yeqb57gqsXL5AQZC0+qKjH0XdXZe5hBLD2xnlSxRhtRF2cTaUVetKtRBPeMz6REzTN26sR+4 32i3FhNVY+N04fX00q2F0Du7c4998fhZYhhtgGp1j36Oc3OaWK/waEPEh57LBB7lUR+DzbCleMB r7S1UJb6ixLR4t4vYY3tfSs0ERg+KnqWQXjzerpMBJ8I= 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. Signed-off-by: David Lechner Reviewed-by: Nuno S=C3=A1 --- drivers/iio/adc/ad7606.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/iio/adc/ad7606.c b/drivers/iio/adc/ad7606.c index 79929bd24fa40bccfcdd88673107da4bf56e032b..440e1e5a9b18570dc6441bff91a= fbc51d20cbc47 100644 --- a/drivers/iio/adc/ad7606.c +++ b/drivers/iio/adc/ad7606.c @@ -196,6 +196,7 @@ static int ad7616_sw_mode_setup(struct iio_dev *indio_d= ev); static int ad7606b_sw_mode_setup(struct iio_dev *indio_dev); =20 const struct ad7606_chip_info ad7605_4_info =3D { + .max_samplerate =3D 300 * KILO, .channels =3D ad7605_channels, .name =3D "ad7605-4", .num_adc_channels =3D 4, @@ -205,6 +206,7 @@ const struct ad7606_chip_info ad7605_4_info =3D { EXPORT_SYMBOL_NS_GPL(ad7605_4_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606_8_info =3D { + .max_samplerate =3D 200 * KILO, .channels =3D ad7606_channels_16bit, .name =3D "ad7606-8", .num_adc_channels =3D 8, @@ -216,6 +218,7 @@ const struct ad7606_chip_info ad7606_8_info =3D { EXPORT_SYMBOL_NS_GPL(ad7606_8_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606_6_info =3D { + .max_samplerate =3D 200 * KILO, .channels =3D ad7606_channels_16bit, .name =3D "ad7606-6", .num_adc_channels =3D 6, @@ -227,6 +230,7 @@ const struct ad7606_chip_info ad7606_6_info =3D { EXPORT_SYMBOL_NS_GPL(ad7606_6_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606_4_info =3D { + .max_samplerate =3D 200 * KILO, .channels =3D ad7606_channels_16bit, .name =3D "ad7606-4", .num_adc_channels =3D 4, @@ -251,6 +255,7 @@ const struct ad7606_chip_info ad7606b_info =3D { EXPORT_SYMBOL_NS_GPL(ad7606b_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606c_16_info =3D { + .max_samplerate =3D 1 * MEGA, .channels =3D ad7606_channels_16bit, .name =3D "ad7606c16", .num_adc_channels =3D 8, @@ -263,6 +268,7 @@ const struct ad7606_chip_info ad7606c_16_info =3D { EXPORT_SYMBOL_NS_GPL(ad7606c_16_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7607_info =3D { + .max_samplerate =3D 200 * KILO, .channels =3D ad7607_channels, .name =3D "ad7607", .num_adc_channels =3D 8, @@ -274,6 +280,7 @@ const struct ad7606_chip_info ad7607_info =3D { EXPORT_SYMBOL_NS_GPL(ad7607_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7608_info =3D { + .max_samplerate =3D 200 * KILO, .channels =3D ad7608_channels, .name =3D "ad7608", .num_adc_channels =3D 8, @@ -285,6 +292,7 @@ const struct ad7606_chip_info ad7608_info =3D { EXPORT_SYMBOL_NS_GPL(ad7608_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7609_info =3D { + .max_samplerate =3D 200 * KILO, .channels =3D ad7608_channels, .name =3D "ad7609", .num_adc_channels =3D 8, @@ -296,6 +304,7 @@ const struct ad7606_chip_info ad7609_info =3D { EXPORT_SYMBOL_NS_GPL(ad7609_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606c_18_info =3D { + .max_samplerate =3D 1 * MEGA, .channels =3D ad7606_channels_18bit, .name =3D "ad7606c18", .num_adc_channels =3D 8, @@ -308,6 +317,7 @@ const struct ad7606_chip_info ad7606c_18_info =3D { EXPORT_SYMBOL_NS_GPL(ad7606c_18_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7616_info =3D { + .max_samplerate =3D 1 * MEGA, .channels =3D ad7616_channels, .init_delay_ms =3D 15, .name =3D "ad7616", --=20 2.43.0 From nobody Mon Feb 9 14:42:21 2026 Received: from mail-oo1-f47.google.com (mail-oo1-f47.google.com [209.85.161.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D359F1552FA for ; Thu, 13 Mar 2025 01:16:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828584; cv=none; b=iby1aqprkIYgw+rX5SYWNgQfMSTYrgmWtFlaVrx3c+y6Uiker86dYpi6RTUwlLCNtSVqu+RDJu+7RTEuac15MHoOVgJNgCm3Xab89Y2q2uC920DL9squYQ3N7S0REtrIXPDScKZ47lS1r6UizWRGidV16pnLio47jZOlli6MAFg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828584; c=relaxed/simple; bh=j0OwH7hw7Z1b3HyiF1OCjv9TuVAtV2k/Sj7t3TrDRug=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IB4aDHvdduz6rtGUP7l71yxwG1cW99iUkpL3ci79TAQ4QY7ZsCraKebrada2bzZo8lIXoMsgdQDwhqwwXUuLy5k2UEDMrg4DRncn2qXgkwS7TlxHCmfa0oPoX5SvhWuOa8vDC1GlnkgwXL5bebeM2VC8ZkChysDIHDR01VsfKAM= 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=MTW/oNqf; arc=none smtp.client-ip=209.85.161.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="MTW/oNqf" Received: by mail-oo1-f47.google.com with SMTP id 006d021491bc7-5fe9c1c14baso228719eaf.0 for ; Wed, 12 Mar 2025 18:16:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1741828582; x=1742433382; 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=Fmffu037s/U5DhU/4Qm/eUlh4c3Y4N1MaROpALwgUVI=; b=MTW/oNqfD6SI0o9XWUhHOTebehM/D1G0VQurLkhjjIs5JDLI9ZJYFt40yg9bVpZXMD LbB5niKwgpqUf8YK18pt5Jr+w+nQLsRjjKSuztDYmt1cv6vdCOepI5HHE0yzNuJr4tGl vdhcUUT78t9taGVJpjqvKMNQxds4dcQSrCsddXeVjfXkM92zrF5TfB9eQ7fWk3wYQbb4 0/EHUTMqNnCsLdUuydFOnPx4XhG1LxI7xtraIY7DuUrR0jhptgdvJ1j0mEZpoX1j3yIw NFIxASUD+carIg4mGxd+yu93rBsv9aBq01Lnr85X9qm6MQBvQt9k5jWXmVNpViZWq4yl pK4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741828582; x=1742433382; 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=Fmffu037s/U5DhU/4Qm/eUlh4c3Y4N1MaROpALwgUVI=; b=Oebu+1C8WgNB69bAg+izZxyVkGceb2VKWqU3po6CCBuzgJIEUJYLgTp9APSIcFdkpS NWvDG2BpAh20qWXfFC0vlIbRLnDLnLxiHnKMgD+Jrhqzv6g+l8mLH4PoKbvOdqS+t69L sw30+xKO3Fm/syIM1SZV2/mpNlg8FAtk0YQnKtd7trr00OAR5HBSxZrSRL3ZQgnYH8y5 Gz2+ud61Wb6P+YQGeN8CPLVSk/XxAIHXF7eYbXclZTcDF1ZsSV7qAKW+DM2vcBsEydT/ xkThymXK9pK74LEIQBO3qYt95EXKpzFF00OQatO2IgKrJN6fv41Xv4JEdrg96/g5KbEs fuQA== X-Forwarded-Encrypted: i=1; AJvYcCXlPdELc6Vqq9pEwvl1Khd3pDCm6T7BkAeeHy+Qfxk1qzlw3W1Ghty1M7O0RwsW4EAFGXzyhr+Cm2MeyGI=@vger.kernel.org X-Gm-Message-State: AOJu0Yzcr8XQtfpKd8+mwcxwaVuACTESy5gGYK7Zw5q29X2vxMkroXXq yOVVVKUbDZCv14U438WYGlebJJjtCgYj4VY9BdaLgXCe4aYLDbjCDf0IQYRmH8U= X-Gm-Gg: ASbGncsTwN5iVgg7vHApNbt+FePlGCdyyO+BfM094Evu55Ba7lDvDz58OIxAIfwqRjM RpZHFPGuBtPzyRUP72BcDfydiBWCDVqnfTX4zc6RSSIcqbWEBMZdcHZH86qndSKqf9sbbM9ECyo GkBZrP62nxZjFUi+J9XZdFOlijCWUNGSdpH0C0YK9UHD1qECQYh10byJSKKnqo6DJ1y0vEwjhjN xWoUZAbh+rxDLEdEuAvoMl6NsaXAwD3UXulOS6E2davwqYVBke0dTabR6hlD87sumRaDry/kBWd 6uWQY8eI9+k6ZtiDs/GR7k7dBHtuaOvHvpZfidRZUVK9reoriE1CxZj0iAQXECzkyH0Z2zJNL1x + X-Google-Smtp-Source: AGHT+IHG62j6un/OgQv23cM3V5FUNAh1VSrXx89rDwqZ/IlptiiF8UNCSL5BArMVaH92vDzHoN6O1Q== X-Received: by 2002:a05:6820:1845:b0:601:a813:5f22 with SMTP id 006d021491bc7-601a81360d3mr11639775eaf.6.1741828581864; Wed, 12 Mar 2025 18:16: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 006d021491bc7-601db659ad8sm39865eaf.8.2025.03.12.18.16.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 18:16:20 -0700 (PDT) From: David Lechner Date: Wed, 12 Mar 2025 20:15:43 -0500 Subject: [PATCH 05/11] iio: adc: ad7606: use devm_mutex_init() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250312-iio-adc-ad7606-improvements-v1-5-d1ec04847aea@baylibre.com> References: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@baylibre.com> In-Reply-To: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@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 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1131; i=dlechner@baylibre.com; h=from:subject:message-id; bh=j0OwH7hw7Z1b3HyiF1OCjv9TuVAtV2k/Sj7t3TrDRug=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn0jHaB/tuEDvy1HQERh8WW6U7nCYeKHCBENB7F bBkbdWQ8/OJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9Ix2hUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAPe6BAAkH3NMfjir7Y5B2pqR8bhdCvPJQwbeSvxpljn5Mh GpL+cqJpYKZCTVuGH3VTTCDG/k/9GUrmLp1eW6Pa8TW4nIjUt8fNnsXocBri25z7P9PBSB5xRFP OCMvorGEOmuKXIthn5YFTTITvdjyAkrAQJ8OPfhgeIozUFGfMA8UBWaj+MG/LpsYpWXt27vQEYI QkKzC5pCEz2beAqGknJhLBOAaCmOAsIgbcB1Q69XCivTreM3AT43KAvZhv8FBs6RWOkDc9I9ZYf 3iu5z7ECH6VDmihvx8nq7Vn1t95p6rZyTwIzml4WMPjWywktbMnI9abCT4gd/cTfLuhSOY6UouZ Y760zBwLa183b/R5rikNi4NnsOIaVajfsRAZDXIVAyRWXpYQvrePDFh1EQirnJOUpMGEZWPPDI0 VBXBfxMa6m5xmIVvYCzsC3llUXCK+4M49x/HWC7YwCoUgxUXA5uXt8LJ93dmTYdqs7veErh13Gl IvcgWl0cgQV8OYYP0K12P6rxt000EDMvDUbeY3NQuWn+3AMOjQoTlYAqPGZ0KCgMz12xKlDIvG5 JHB7fm2WHxXAu6mWYuEoI8gELegex6CEp7qpxDIB4AlLBSS9bFebumJ1b0q9kkZ2UwXb4nsoIx3 +uPhrMzvMD76T08u7PfVj2SkDNDJOZmZc7pM0KGjHWOE= 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. Signed-off-by: David Lechner Reviewed-by: Nuno S=C3=A1 --- 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 440e1e5a9b18570dc6441bff91afbc51d20cbc47..f190269ac8ddd859e94eb24c26f= 5f010d0951646 100644 --- a/drivers/iio/adc/ad7606.c +++ b/drivers/iio/adc/ad7606.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -1332,8 +1333,11 @@ int ad7606_probe(struct device *dev, int irq, void _= _iomem *base_address, st =3D iio_priv(indio_dev); dev_set_drvdata(dev, indio_dev); =20 + ret =3D devm_mutex_init(dev, &st->lock); + if (ret) + return ret; + st->dev =3D dev; - mutex_init(&st->lock); st->bops =3D bops; st->base_address =3D base_address; st->oversampling =3D 1; --=20 2.43.0 From nobody Mon Feb 9 14:42:21 2026 Received: from mail-oo1-f51.google.com (mail-oo1-f51.google.com [209.85.161.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 98A0116FF44 for ; Thu, 13 Mar 2025 01:16:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828587; cv=none; b=IQqT+HI0QKnhyL7di0kMKLehuUOJI4HE8bKQCrdtSA2gHLPBMjr6XaOs2o2m6g2W/NSq5EfsB5yxGjjLZMeH6zcnRp52j2nazZNdSiJQDdVZRGZjSPhd0fJsdLDQPDiaCyVuXq0rA3P3AAqEN7rW9aqP9flgy2wFnEBEBz22zMQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828587; c=relaxed/simple; bh=G6T/2KDF4C5JsW8WYTxDGIcsK077JHDl513PdKR03Zs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=D4/9gLTVz/RqskVPymix/+dzSUY16D3Jmk133TuNcq6O+RD+omAcDWyfOBI1grhJ2Yp+9cvPv+Gshm6xYLaY/iGbwF0eCIUQqFBMO6ojcV3eXtL9/ZB/Lsw95O7JU7rJ5ILPgUhHPtLgxoSqVISpe+FvUqaV5p8NXSNjCJKrFQY= 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=ssBCQ26N; arc=none smtp.client-ip=209.85.161.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="ssBCQ26N" Received: by mail-oo1-f51.google.com with SMTP id 006d021491bc7-6003b679812so90658eaf.3 for ; Wed, 12 Mar 2025 18:16:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1741828584; x=1742433384; 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=vqKSGn1O/86vBug4de9CRWQ48RhJd0oISYiM5GUaq+8=; b=ssBCQ26Nc0hQaHiJlO/z4uVuuBE78mMbY+leGhaTqCvKxV0bHC1AwVPtv5Xa+9u7f4 6Or8VyBdgeT3T8Tj6mO+em157qp+/GNAU4AGGTjyGk00sSrYHeU4k+fTapdj7M/8rdAp O3YZCVTsnWyYU3NWXySyReBbJiIT5AYX8uI/mBpgpaZ8yKaJb1Uww76DRMbjwXyPMDDJ DfNOLG4EOaFA2mzxz8DH9u0z0JIQDNuk/+fKInUJ0OQ43FXEqahXUg94tZixS/dMaqZz 3QjgA3gi/X0/J0uF6GI0J05Mn/GoSAnTfrqdYX4rDf0bwggwudYaZ58C66xcFM/qtI9r 6Iog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741828584; x=1742433384; 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=vqKSGn1O/86vBug4de9CRWQ48RhJd0oISYiM5GUaq+8=; b=byo9uUKtBncBjx05q/Y9ga2RU5EN5Eku0XKB/tbc5edtjEZM6yW7aVzpHIfBM5N3Nw ya1DhE2Uqf6k/riRRWFm+5d8OisH3undw1HeqtZb//qGSFXp/+ZKIP+wwwAeN41/GRgE +j1iNsrfYW94bpeVdJt4VHzX1FDLNZhKFCz8+5fPi6Mz0L0QVSiW4C91+Q6+T85Kj9LX RDij34hu+v1/FnNoH9dXYU5wBU/6d2ty1tL/VucCtdsFQ8IP7oAbtbnKkgBLrhw565cx J1w8OnCFTUCDbGBfI+0hnNx7fYk6vAKa7uI4sJBO/alOfmrLdgpbmRXmLDyFicGunPdO 8H6w== X-Forwarded-Encrypted: i=1; AJvYcCUPrGY2m4UG+YbHHP16NXtZTSgUOJ+I66jfbPMnbDNK+/RvAWQKrBGv/I+kOKnHJ35YWwa+QtzyP1f8Chs=@vger.kernel.org X-Gm-Message-State: AOJu0YxFpMAHpxw/wQGdHOcjxeXCYXFW6lItK+MrQBkGngWSry9py+el Ac2Or9rFemhw1ZmyzlNY+m03SMP81NHon8diUQIq0H2ylddyT9G8Fes7FsJvm9L4y4G60r9yoDC 7pVU= X-Gm-Gg: ASbGncspOm2Xw+Ul1LNWVNZDDndsz4gajUuL3Z7Xz/YVXSETWIRAxmNpR7sMbSHXT4z ZT0EDngpruttbnGikuFL55NvXuROrsCwo4smIYGZXSWkZtBWzKCI48UsCrL10SgimxJ29lHoHA7 dd4qPqfG2yJ0CfeNfwOcNdBBximk1BuQIy5uDpf3TkrqgYGrVfmxpHp/RaNAYvzE9hSjh3AwxJH yGXrwh4DlYvf+UVuJoZqhvSU3WSXFsLwUMgc/PiZ28r8p8MdLvULne2NABKbap462OA2iqgnDAk sdtSpLXROHYZ1Vxrai4x2VmoKpxSp6QYV21qfhepcuzxnJz18Lz152gVPAdwpNfBL1Y5J7vP0iO OAVldDDAS1kA= X-Google-Smtp-Source: AGHT+IFn+Gu4WaglzOvc/w350Ccu55y0spz2nKJMrLuphFNAedL18lQyKziTYY0RnAUjpY2+hWiHUg== X-Received: by 2002:a4a:ec46:0:b0:601:bf4d:86e6 with SMTP id 006d021491bc7-601bf4d88d1mr5787314eaf.1.1741828584549; Wed, 12 Mar 2025 18:16:24 -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 006d021491bc7-601db659ad8sm39865eaf.8.2025.03.12.18.16.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 18:16:23 -0700 (PDT) From: David Lechner Date: Wed, 12 Mar 2025 20:15:44 -0500 Subject: [PATCH 06/11] iio: adc: ad7606: fix kernel-doc comments Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250312-iio-adc-ad7606-improvements-v1-6-d1ec04847aea@baylibre.com> References: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@baylibre.com> In-Reply-To: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@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 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7781; i=dlechner@baylibre.com; h=from:subject:message-id; bh=G6T/2KDF4C5JsW8WYTxDGIcsK077JHDl513PdKR03Zs=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn0jHbIlTN9NpWATQrGaRPKhfK7x4ZDeRxfGXTW +l8VL0aqNOJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9Ix2xUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAOg1hAAkJ4wWePRT0ryxssBC1FBgRQaSo+RSKtGWSTPxO7 iSrSvH+3+TqfJNQ1MHeeDCY/5v1tUxDYlcEUZPfFsHdsunYUFUgcPhETm9qsTjJB/11eTZNXKoe GtrEa1WM6xtT6rXAD4Yq1/cQpHruvq1WHACRH2M5n1TUpjzDNDwms+Tlphb7aIYDvBWewM9HW0V xb0rXtMAliIhDdb5627WsOO57wzwVn8UQrXr4LF5YxHCPII9HtsmD6mvlhl5EjI3wYsNmHQdS6a DmL8sePfnqGgFmiBalVdTScGZDVXwPEVUVF7s5ODUVp+r41JG/qXylrlhsWLNW+2xvZXRd98QTD Gsd1WJxtLmrzZelk9AsavwpKVk+1SbYITaKyrQeuk8fYCyuGgiTelPZPkPj1wna93hWPJ7a/qlt r5UfwEz4wzWSJVVmIj1eMKtXcQfV36izGNkxIvod8EFNmKbzJjRmrBZkdYueClhmWe22A9pDaKG fzza7PvpeAoz1VaqyTFZwZCnYeWfwDsutZOMbKGjXin9yigJd4aBdtV1/e4gSiNu4p3nC+lMmkx P0cXw7XW85ZBPI8EErEaeMKAyotpi2i2z99ltexlQxH2hFxYfoz2qbYWnVQb/Sk8GDkfcKVopuy cKxbdlh18FJSIq0nEKLmgLRvxz2+9gVGYlzeoCc5twPk= 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. * 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. Signed-off-by: David Lechner Reviewed-by: Nuno S=C3=A1 --- drivers/iio/adc/ad7606.h | 90 ++++++++++++++++++++++++--------------------= ---- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/drivers/iio/adc/ad7606.h b/drivers/iio/adc/ad7606.h index 71a30525eaab512fa811f28fa79268a1a976bc8c..3da78488c8a247dccbff930023f= 98717d540081a 100644 --- a/drivers/iio/adc/ad7606.h +++ b/drivers/iio/adc/ad7606.h @@ -120,17 +120,17 @@ typedef int (*ad7606_sw_setup_cb_t)(struct iio_dev *i= ndio_dev); /** * struct ad7606_chip_info - chip specific information * @channels: channel specification - * @max_samplerate: maximum supported samplerate - * @name device name + * @max_samplerate: maximum supported sample rate + * @name: device name * @num_channels: number of channels - * @num_adc_channels the number of channels the ADC actually inputs. + * @num_adc_channels: the number of channels the ADC actually inputs. * @scale_setup_cb: callback to setup the scales for each channel * @sw_setup_cb: callback to setup the software mode if available. - * @oversampling_avail pointer to the array which stores the available + * @oversampling_avail: pointer to the array which stores the available * oversampling ratios. - * @oversampling_num number of elements stored in oversampling_avail array - * @os_req_reset some devices require a reset to update oversampling - * @init_delay_ms required delay in milliseconds for initialization + * @oversampling_num: number of elements stored in oversampling_avail array + * @os_req_reset: some devices require a reset to update oversampling + * @init_delay_ms: required delay in milliseconds for initialization * after a restart */ struct ad7606_chip_info { @@ -149,10 +149,10 @@ struct ad7606_chip_info { =20 /** * struct ad7606_chan_scale - channel scale configuration - * @scale_avail pointer to the array which stores the available scales - * @num_scales number of elements stored in the scale_avail array - * @range voltage range selection, selects which scale to apply - * @reg_offset offset for the register value, to be applied when + * @scale_avail: pointer to the array which stores the available scales + * @num_scales: number of elements stored in the scale_avail array + * @range: voltage range selection, selects which scale to apply + * @reg_offset: offset for the register value, to be applied when * writing the value of 'range' to the register value */ struct ad7606_chan_scale { @@ -165,32 +165,33 @@ struct ad7606_chan_scale { =20 /** * struct ad7606_state - driver instance specific data - * @dev pointer to kernel device - * @chip_info entry in the table of chips that describes this device - * @bops bus operations (SPI or parallel) - * @chan_scales scale configuration for channels - * @oversampling oversampling selection - * @cnvst_pwm pointer to the PWM device connected to the cnvst pin - * @base_address address from where to read data in parallel operation - * @sw_mode_en software mode enabled - * @oversampling_avail pointer to the array which stores the available + * @dev: pointer to kernel device + * @chip_info: entry in the table of chips that describes this device + * @bops: bus operations (SPI or parallel) + * @chan_scales: scale configuration for channels + * @oversampling: oversampling selection + * @cnvst_pwm: pointer to the PWM device connected to the cnvst pin + * @base_address: address from where to read data in parallel operation + * @sw_mode_en: software mode enabled + * @oversampling_avail: pointer to the array which stores the available * oversampling ratios. - * @num_os_ratios number of elements stored in oversampling_avail array - * @write_scale pointer to the function which writes the scale - * @write_os pointer to the function which writes the os - * @lock protect sensor state from concurrent accesses to GPIOs - * @gpio_convst GPIO descriptor for conversion start signal (CONVST) - * @gpio_reset GPIO descriptor for device hard-reset - * @gpio_range GPIO descriptor for range selection - * @gpio_standby GPIO descriptor for stand-by signal (STBY), + * @num_os_ratios: number of elements stored in oversampling_avail array + * @back: pointer to the iio_backend structure, if used + * @write_scale: pointer to the function which writes the scale + * @write_os: pointer to the function which writes the os + * @lock: protect sensor state from concurrent accesses to GPIOs + * @gpio_convst: GPIO descriptor for conversion start signal (CONVST) + * @gpio_reset: GPIO descriptor for device hard-reset + * @gpio_range: GPIO descriptor for range selection + * @gpio_standby: GPIO descriptor for stand-by signal (STBY), * controls power-down mode of device - * @gpio_frstdata GPIO descriptor for reading from device when data + * @gpio_frstdata: GPIO descriptor for reading from device when data * is being read on the first channel - * @gpio_os GPIO descriptors to control oversampling on the device - * @complete completion to indicate end of conversion - * @trig The IIO trigger associated with the device. - * @data buffer for reading data from the device - * @d16 be16 buffer for reading data from the device + * @gpio_os: GPIO descriptors to control oversampling on the device + * @trig: The IIO trigger associated with the device. + * @completion: completion to indicate end of conversion + * @data: buffer for reading data from the device + * @d16: be16 buffer for reading data from the device */ struct ad7606_state { struct device *dev; @@ -232,17 +233,16 @@ struct ad7606_state { =20 /** * struct ad7606_bus_ops - driver bus operations - * @iio_backend_config function pointer for configuring the iio_backend for + * @iio_backend_config: function pointer for configuring the iio_backend f= or * the compatibles that use it - * @read_block function pointer for reading blocks of data + * @read_block: function pointer for reading blocks of data * @sw_mode_config: pointer to a function which configured the device * for software mode - * @reg_read function pointer for reading spi register - * @reg_write function pointer for writing spi register - * @write_mask function pointer for write spi register with mask - * @update_scan_mode function pointer for handling the calls to iio_info's= update_scan - * mode when enabling/disabling channels. - * @rd_wr_cmd pointer to the function which calculates the spi address + * @reg_read: function pointer for reading spi register + * @reg_write: function pointer for writing spi register + * @update_scan_mode: function pointer for handling the calls to iio_info's + * update_scan mode when enabling/disabling channels. + * @rd_wr_cmd: pointer to the function which calculates the spi address */ struct ad7606_bus_ops { /* more methods added in future? */ @@ -258,9 +258,9 @@ struct ad7606_bus_ops { }; =20 /** - * struct ad7606_bus_info - agregate ad7606_chip_info and ad7606_bus_ops - * @chip_info entry in the table of chips that describes this device - * @bops bus operations (SPI or parallel) + * struct ad7606_bus_info - aggregate ad7606_chip_info and ad7606_bus_ops + * @chip_info: entry in the table of chips that describes this device + * @bops: bus operations (SPI or parallel) */ struct ad7606_bus_info { const struct ad7606_chip_info *chip_info; --=20 2.43.0 From nobody Mon Feb 9 14:42:21 2026 Received: from mail-oi1-f175.google.com (mail-oi1-f175.google.com [209.85.167.175]) (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 58BC318A6B8 for ; Thu, 13 Mar 2025 01:16:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828589; cv=none; b=pGlO3HI1kYoUJP+9jcKBOPU395+Ahi9uUvHXtlTsZa8gAkcBymx6Sr4bjdqua/OR62MM44CcdS6pvf9FsokH1FNugSNcqllF746GIG2EGxhPmCTmSukWSK6xv1R/99jj1FCAWvlJGEzSnghGkUR+Z+8AbEnhfwq1wiEf3QLw3DU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828589; c=relaxed/simple; bh=BXxvhC5h0AzOsTfVrve7Pb4FmR2Y2J/J4eRNQCs5LgY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NTQnwqqwyuH63aq9c8gJSH626Y/KX5z95BwfpakhFFCpQ5bLv2eFBsqNmMvHFIv3pXX8dh8vA/7vyWS2Dm3+ZCtN2k5wOj/LujMWXXSVzEvH4i2HCj7N9bDAdMj/2XGfMdMUywjZ9AuwdXZCtGSU/HoLXQ81zPVBEtCi7D3Tk8g= 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=EO3uNL4P; arc=none smtp.client-ip=209.85.167.175 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="EO3uNL4P" Received: by mail-oi1-f175.google.com with SMTP id 5614622812f47-3f682a2c3c8so235128b6e.1 for ; Wed, 12 Mar 2025 18:16:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1741828587; x=1742433387; 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=hGg77fuJf8u7pd2v1khgNbAaPlfakR6tpz3TWo15l/k=; b=EO3uNL4PD5o5AGUda/nLPI2wC+/k91/ITAqVNtLA6AFFf5rewPEuZyAnF9j5wwWUCQ hzfRMZPWLeGnX9vPApdSO8FY6fFCZZi7j3auVF8zmOHoBz9vy3dBnYnyQr9l6nSwPEWo 2ZhdUjWKVStBUld7adwebb3IlSrUbLYcemwqsLtvnjAlPcb4TflLZ5pswY5ZX18pXoND R5KIO0TurDTPu4vR+XgQx/qhwGOU5hmLjvGQYOsdIJhpI59fHo3GSMiRcdv2D5e1XyK9 GH4SgvMn8WzZbRSxuvw0b3emLpKHLGMjVecZ2+3htmslS7kQy11bbb0VV/OsO+Nlky3N XTqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741828587; x=1742433387; 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=hGg77fuJf8u7pd2v1khgNbAaPlfakR6tpz3TWo15l/k=; b=Zt3bdparMxpYPMLc0OCpYzuLzaodNBdgI4fzEfsTaxRinvWCQfmhuK2ybtB8OO288+ Sb5HhqmN0kA1WDbBVJ5OnnvusJxw/INM+UpQ2P2SUYqLMIsMf41YOsMHAGDZq6AZ9zes 5uJ+4WmHUJMNFt/wrC2JNnsYuXtUEEW/a/quRjBy96Hlj8FSrF7stFHh6g8d7mqyLgwK J88tm8OnrzjM3K5LffusESLfezbGwgELrwYABwrEM7RI3XrP3fTc1U5VBUDD5ewB6NVN 1YjsNOgf+gqcQHUP5Ma0+KBowJMqBXGAwEbKaomiXyBAz1VH5r/a0gS1eXQrOAB7HNAZ brcw== X-Forwarded-Encrypted: i=1; AJvYcCVWztqrIgzURngFRZ8xG3oooWQxKcnJYgQFr8d+x2gRnQtXkCPFxzePJWv2vgQjCDCWekHqHvCsRw9/PLE=@vger.kernel.org X-Gm-Message-State: AOJu0Yzg3ytxSbb1MEL7KRN0UQrGtqRNmmqOMi+XwINwKJEZTMSsLstB QaK/FIkzzrd1b9TUhR1nMLTJClmuGGLIUQwzV4lUIOPAyJz5cyf0aygqU7bEWHQ= X-Gm-Gg: ASbGncuNjip+BmGDqHtVQjryjfb6IV1mqpINE1Tj/M7DnKa4K0pzvTYNbkLvbyRiIbj eBcI0CgVvmgI6bK7xpPYkR8os4JkOF4/AmNSYUPr0/fy/BDmUtNerK2UyDP6Sc8EXicZTY0Gumg G16dQGrIqM3vx1Gzb0H+YPPXozRFKf4qs+SB3cv+AaAVkIWGBxVJnBH6KtskRa2LhING7l20g7B lhciRSYKXjBljekh0/zHIREIlBYYW7YLn/9g02MDNkytWgQWTvyInnpGgARG+7IESg+IIdlAOX8 TzNHIJdioSE/nWYU0rW8bUwo7CQA4FYInYYvM8hBORKqeN0RZDC8L/jhbYjX8tcdUYo6kotpfuK l X-Google-Smtp-Source: AGHT+IFF3ucG6AT4ENx14DV/1jOP8xEPl32fTE/2LRKY9G4AxiJc2mp7+lQh8fVzYz9dJAWgQZROgQ== X-Received: by 2002:a05:6808:1444:b0:3fb:174f:820c with SMTP id 5614622812f47-3fb174f84cfmr3738216b6e.0.1741828587294; Wed, 12 Mar 2025 18:16:27 -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 006d021491bc7-601db659ad8sm39865eaf.8.2025.03.12.18.16.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 18:16:26 -0700 (PDT) From: David Lechner Date: Wed, 12 Mar 2025 20:15:45 -0500 Subject: [PATCH 07/11] iio: adc: ad7606: use kernel identifier name style Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250312-iio-adc-ad7606-improvements-v1-7-d1ec04847aea@baylibre.com> References: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@baylibre.com> In-Reply-To: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@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 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2957; i=dlechner@baylibre.com; h=from:subject:message-id; bh=BXxvhC5h0AzOsTfVrve7Pb4FmR2Y2J/J4eRNQCs5LgY=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn0jHbpzZ5OD6Gt8KIxbuLJe2BjzUgY4PeSr1rx n7iU9UVq/6JAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9Ix2xUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fANJvg/+IGuaCUn8KZSm3li7iEdEGYmKimcf36FtJQq/J2w iT+LLVWRs3PB99TSrBbkAjD+EsY5dh7MSf84/EAFI5noMHgdlRcke72HJ/j29pzLaKLxMwQpWZ9 ssMKieU+TarO/N8hZZQNrS3xWI2nEvNFxhKnSWbtZ0sFgBu2I17OGEHZlTgGZ76YOx+AVmmUuqQ +UE1r4p0X8IOkqWdQgIvLNAac1QLdifcCmlkaVQjTVp6UP9+3XEh8aXnoOpbCpXCbLU+Q3Qa0t4 7M9UYk/qb6q19EukUh4HFvURCdYakyzwXW2/DIv8b9SLuvUzyMLIpPFQkVpiONurttdwuIpKjf8 1nPO2pirsH+4JeiYZkJrKVO//iBDSqkPqY5YKIHtkYEog295r86zFHen1A4q3Iyy3HkN+H3H77V KO+w2jTZTDtstCuR4CPHUaya9Feuud5oYS+DZW60aFcV4WhWXKr29cws0BKd55dBm4DYNF6dUey g8mCAGALgcASI86Zwkl1Fys7U8KHTEvIrJXEyDaA4Sd63zHp4ukfOE0oiKm7rfZBsrjNNqjvCPo SR3YXhZ6TY9t0J0W+8haY2o6OB8OStp84h3tqkzhcwSn3rJOcqSPoRshGouDBJ+Ijts2Ip3gAkJ 6sclWzjh+HCz+SiycVhJw2fzqfhrdzZtjUqXZT+kBIxA= 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. Signed-off-by: David Lechner Reviewed-by: Nuno S=C3=A1 --- 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 3da78488c8a247dccbff930023f98717d540081a..01b0e2fcf343a77631fbf20c12a= c9d02c80c3455 100644 --- a/drivers/iio/adc/ad7606.h +++ b/drivers/iio/adc/ad7606.h @@ -254,7 +254,7 @@ struct ad7606_bus_ops { unsigned int addr, unsigned int val); int (*update_scan_mode)(struct iio_dev *indio_dev, const unsigned long *s= can_mask); - u16 (*rd_wr_cmd)(int addr, char isWriteOp); + u16 (*rd_wr_cmd)(int addr, char is_write_op); }; =20 /** diff --git a/drivers/iio/adc/ad7606_spi.c b/drivers/iio/adc/ad7606_spi.c index c028e08efe2c82cd97249f98eec50a9a9c06471f..1abaf8626206cb30e532cf9f82e= 0d050706aa1e0 100644 --- a/drivers/iio/adc/ad7606_spi.c +++ b/drivers/iio/adc/ad7606_spi.c @@ -59,16 +59,16 @@ static const struct iio_chan_spec ad7606c_18_sw_channel= s[] =3D { AD7606_SW_CHANNEL(7, 18), }; =20 -static u16 ad7616_spi_rd_wr_cmd(int addr, char isWriteOp) +static u16 ad7616_spi_rd_wr_cmd(int addr, char is_write_op) { /* * The address of register consist of one w/r bit * 6 bits of address followed by one reserved bit. */ - return ((addr & 0x7F) << 1) | ((isWriteOp & 0x1) << 7); + return ((addr & 0x7F) << 1) | ((is_write_op & 0x1) << 7); } =20 -static u16 ad7606B_spi_rd_wr_cmd(int addr, char is_write_op) +static u16 ad7606b_spi_rd_wr_cmd(int addr, char is_write_op) { /* * The address of register consists of one bit which @@ -171,7 +171,7 @@ static int ad7616_sw_mode_config(struct iio_dev *indio_= dev) return 0; } =20 -static int ad7606B_sw_mode_config(struct iio_dev *indio_dev) +static int ad7606b_sw_mode_config(struct iio_dev *indio_dev) { struct ad7606_state *st =3D iio_priv(indio_dev); int ret; @@ -195,7 +195,7 @@ static int ad7606c_18_sw_mode_config(struct iio_dev *in= dio_dev) { int ret; =20 - ret =3D ad7606B_sw_mode_config(indio_dev); + ret =3D ad7606b_sw_mode_config(indio_dev); if (ret) return ret; =20 @@ -228,15 +228,15 @@ static const struct ad7606_bus_ops ad7606b_spi_bops = =3D { .read_block =3D ad7606_spi_read_block, .reg_read =3D ad7606_spi_reg_read, .reg_write =3D ad7606_spi_reg_write, - .rd_wr_cmd =3D ad7606B_spi_rd_wr_cmd, - .sw_mode_config =3D ad7606B_sw_mode_config, + .rd_wr_cmd =3D ad7606b_spi_rd_wr_cmd, + .sw_mode_config =3D ad7606b_sw_mode_config, }; =20 static const struct ad7606_bus_ops ad7606c_18_spi_bops =3D { .read_block =3D ad7606_spi_read_block18to32, .reg_read =3D ad7606_spi_reg_read, .reg_write =3D ad7606_spi_reg_write, - .rd_wr_cmd =3D ad7606B_spi_rd_wr_cmd, + .rd_wr_cmd =3D ad7606b_spi_rd_wr_cmd, .sw_mode_config =3D ad7606c_18_sw_mode_config, }; =20 --=20 2.43.0 From nobody Mon Feb 9 14:42:21 2026 Received: from mail-oo1-f42.google.com (mail-oo1-f42.google.com [209.85.161.42]) (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 DC00E199FA8 for ; Thu, 13 Mar 2025 01:16:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828592; cv=none; b=XsZajk7QYttPSW7a72yn/iFcgDz3qV2AMvP8X9VLxDb/Gr3Dg21xWn/DgLCfU8SWvjanQCXQ3TJgd9wIJPn7pVF1kYX5YDzK41V5k3iCYuQz8ogL/jUE4SgGRcbNv68k5oDFkfH1Q4Lh3i6wW9giZEYsOAECjqT0TV0ewbsW97Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828592; c=relaxed/simple; bh=6WgP3e20Vf+cIoXFBzeYV7N3cHhALzd0d4Tp1M1tS8Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=G4qZIRBSCfnABzGXZNmTT1UVqU4OZGbaILufDpsL9WnGTB58g8cV9yWJfRCnHAr9tgl1tC6jlP1Bf81UvFqDCcjFuJExbp1Bn83Qa5DukdAoi1D8o2gx/Z5aSYppRZFVJ4LZiPyAZKOM/u0cxO2HV9Y5oR5wIabVvHhC5jRD7To= 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=Bowf4vj/; arc=none smtp.client-ip=209.85.161.42 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="Bowf4vj/" Received: by mail-oo1-f42.google.com with SMTP id 006d021491bc7-601c469cce3so109224eaf.2 for ; Wed, 12 Mar 2025 18:16:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1741828590; x=1742433390; 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=ErtaCYUzf6VOfPJiLrhtMgArALjNBXZLULBJurS3Qis=; b=Bowf4vj/EGwqTS9N/awdyDJMNg7NOla9xLUSO4gabN8yU0GJMNhFq4BPgE9dlgOpJR XkuxGoiMAbppbAobURohct+gNNYSJ5hdqs0Ny6sNUlwkTSbXXz6OXe7y5D0M71eOHPHt W6YvvovTs5F2ywWIBqXzls51tpa0Z1XMzsQGKbEy5HifC9T8xF/vLpPoiL0TEt4SBJ80 m/ay9Egi/6gJGpzsxpNxlDxEegC4DIfYQWdUqur+Qfpw3jHRsPy1pPUu+m+OM9tbzxYX pr5Vh8y+lou2DCdwP0ZvkyaSURDXYkfWjJ6V8Imd3qGrG1PkYskRMgnVuxgp+lhe02G2 ETJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741828590; x=1742433390; 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=ErtaCYUzf6VOfPJiLrhtMgArALjNBXZLULBJurS3Qis=; b=lDA4Lqa3pzsnGmZhzbyIjnc2LfwxIkREk5k3+ffZKNtG2hdy0Y1UDIiGWMBFq1Gqdx ncGyLPLdKAJjU+aDSA4ysK5upLgeVtJsRfELx+C2hEZKzYTAqoiDTFp9+BTHlAMeH89P 0SAghIwiuDI11cTWZeQTmIi0RTI7D+mB788CCQx69BmSCg3oqSmsiST32AkRQHgnVRgG gSAD8uGv++dWtpxRtNfjBGJwtZMfbKPuIWeiPJ90txttIFcVcpztH5qGP7ubt4oF4dXH sj4E0o3p6LugYJXeia4MiK1LFBlCNwpFWhD1RjZ7aDo6GnLpkpR8rm0MUanvbWP64rjj fqMw== X-Forwarded-Encrypted: i=1; AJvYcCWAGDsX3loNOog51JFZSlfZRiSpq+sC3wxCVoFSuLB3A0YFgXvIunLs34hNExxVnTtpK5HYXOSzBewn6EU=@vger.kernel.org X-Gm-Message-State: AOJu0Yx9zenirBroTr/tRRv0gKN9uaNg4lq5YRAsrhusjuOFwsMVLTFN 7Qto7rYD0L6kfkR7oByuWwa9UxHV+W2YM91wbIqd/Lwu7a+tCTj7m5adfp4a1QE= X-Gm-Gg: ASbGncsd2NDNkjyQzu0XWeT1IeDt2ZD3b5svXp0CdLXcBmeqwsMV3NWThlo77BKKLni AHQrQBuY7f5X5zh6vMxBC4ulgN0Kj/Ec//tUEt16bf1KGICkhmQiTvc1z4T3uoc6p1lklb42rG7 mPPQmJsoU6D6cjDrYYnaqaabySzVl2rqNr6kkz7Pe/xps9qA0Zz/IVHGaQGMvPLjJbL2SYmBDKT n5qTYlya5rs6vCzLE+U+uksGgtBNoHFunNLQbccsSHcCVZnjo+7mSX5KaDC0U0Q3vFxYVXsavb+ kU5HueVVQhHQ659Of9Itg1chXVKZmTrIMz9pa+R+tcwatGmy6jvKvLmJPNzWcOzkWIZWMVdy0dG S X-Google-Smtp-Source: AGHT+IHoAdzySyGHyMSnxU+r7QqcX1SngNEfBkIN1cJf0TkJIJMv8JrPq0hyqg/4AjRj50PnHQyC4Q== X-Received: by 2002:a05:6820:1a06:b0:601:b7e1:9233 with SMTP id 006d021491bc7-601b7e196cfmr6703137eaf.3.1741828590059; Wed, 12 Mar 2025 18:16:30 -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 006d021491bc7-601db659ad8sm39865eaf.8.2025.03.12.18.16.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 18:16:28 -0700 (PDT) From: David Lechner Date: Wed, 12 Mar 2025 20:15:46 -0500 Subject: [PATCH 08/11] iio: adc: ad7606: don't use address field Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250312-iio-adc-ad7606-improvements-v1-8-d1ec04847aea@baylibre.com> References: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@baylibre.com> In-Reply-To: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@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 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2326; i=dlechner@baylibre.com; h=from:subject:message-id; bh=6WgP3e20Vf+cIoXFBzeYV7N3cHhALzd0d4Tp1M1tS8Q=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn0jHbWLD2czElTLNIrJ6BtKxyNlYORe8dOeTi6 REervvYzkKJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9Ix2xUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAPTChAAiQ7bpcSspWBg4M0tlM+RuSGLLdkW3GZjlnwqkAA O37XMILkqJ3uMIb4SFcbyrSb/jRJ1+FTRQySEllPng4H+F7s0cU1W87JmPDhH5busAZzk7dZzZg NmxdH1wy2k7wNMD3Rk7WlipJiWVvWEcnahPdv1u9+N525Ko1LJHUo/V/ATfIrozNGLsiD4ydoUk 81+E6EbIo1lO6115K/W48SQAvPh9CilgHoMsxfydf1nRZ82qjK6hbse00mOK+mYvxshzdXEkAxE u0DwX1/uZXo9fC/7HU4+LlVBDjW4tj94rE7vpg2ueP/1Cpa9/qWbk9xn6bzXxtoaR//BvCL2xfs jR7Q6pATgAaZ29CSfgkF661RNmFcUMSZhOlZEK3Sq3v5Uoc9HUPkiM4AQTo7CnIQ2RKB1XilSMk FkfVCUXrpRyChd+6fPoTs5oBA4T6ePCnuajYGxpj6fMpJkevBkKJfatFCthb5Y9lr1kDsJ/qds2 ZGdQhIca7SC4NVvoEqaSKm/t72J8vQJSxEiC2EsQCCkKaWHNPnOu9cQFC3+xc1G8JYr9w5KzNc4 FstO0cUo3DlLlc4utpTpSbaulYOThnfd7OXGN+/R2rk2IjgEVtFSwhSJpazQq91tF3ZEPv0uTp/ DKZihplvEkPzLcfhT4zJdBE7RKafBUBvmhgL7y/eHUAE= 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. Signed-off-by: David Lechner Reviewed-by: Nuno S=C3=A1 --- 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 f190269ac8ddd859e94eb24c26f5f010d0951646..02ff4be3545d45f0e10bbea7251= 862f4e3daf97f 100644 --- a/drivers/iio/adc/ad7606.c +++ b/drivers/iio/adc/ad7606.c @@ -776,14 +776,14 @@ static int ad7606_read_raw(struct iio_dev *indio_dev, case IIO_CHAN_INFO_RAW: if (!iio_device_claim_direct(indio_dev)) return -EBUSY; - ret =3D ad7606_scan_direct(indio_dev, chan->address, val); + ret =3D ad7606_scan_direct(indio_dev, chan->scan_index, val); iio_device_release_direct(indio_dev); if (ret < 0) return ret; return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: if (st->sw_mode_en) - ch =3D chan->address; + ch =3D chan->scan_index; cs =3D &st->chan_scales[ch]; *val =3D cs->scale_avail[cs->range][0]; *val2 =3D cs->scale_avail[cs->range][1]; @@ -865,7 +865,7 @@ static int ad7606_write_raw(struct iio_dev *indio_dev, switch (mask) { case IIO_CHAN_INFO_SCALE: if (st->sw_mode_en) - ch =3D chan->address; + ch =3D chan->scan_index; cs =3D &st->chan_scales[ch]; for (i =3D 0; i < cs->num_scales; i++) { scale_avail_uv[i] =3D cs->scale_avail[i][0] * MICRO + @@ -1072,7 +1072,7 @@ static int ad7606_read_avail(struct iio_dev *indio_de= v, =20 case IIO_CHAN_INFO_SCALE: if (st->sw_mode_en) - ch =3D chan->address; + ch =3D chan->scan_index; =20 cs =3D &st->chan_scales[ch]; *vals =3D (const int *)cs->scale_avail; diff --git a/drivers/iio/adc/ad7606.h b/drivers/iio/adc/ad7606.h index 01b0e2fcf343a77631fbf20c12ac9d02c80c3455..f6a6c89dbdc708f4e25e3c9ade9= e9e614a7f99b1 100644 --- a/drivers/iio/adc/ad7606.h +++ b/drivers/iio/adc/ad7606.h @@ -45,7 +45,6 @@ .type =3D IIO_VOLTAGE, \ .indexed =3D 1, \ .channel =3D num, \ - .address =3D num, \ .info_mask_separate =3D mask_sep, \ .info_mask_separate_available =3D \ mask_sep_avail, \ --=20 2.43.0 From nobody Mon Feb 9 14:42:21 2026 Received: from mail-oo1-f47.google.com (mail-oo1-f47.google.com [209.85.161.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9BB011C8604 for ; Thu, 13 Mar 2025 01:16:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828596; cv=none; b=bUt5v6pozes9hffbKQSxkPbAJJ82g8iEueSExxYGve1IbkHIUarVWcmO8Rd9r61Y8LUxW20ATyy7TahWZkXF7ocoB6TVU4zSfgDtsZ04zvOMtPtgCYlBEbePfU9M32EMj/TW0qxOE4wAUhbQ0usF+s2LO7W6XJODkgIXBNtKqpQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828596; c=relaxed/simple; bh=akEsK+MydePNjGNlqt6JoBX9UovhB+AF09zT7VtsUh4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gbdNd28KMIjydn14wVhcMeSQZTGDyjq5AB2FAKRreV5h11ksz/l8GMG/tHfFKoH/h7MLIrSuGyF5fNH2WnRpjquSzXKpdcggGwjrxWcn4A2Xu1ya5lv6VrHf5ZcONGDiXmbdHOM3WttjqjGf4vh6kKwqDqK4AZM1IBHKlx4Mvxo= 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=vtf8/d2v; arc=none smtp.client-ip=209.85.161.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="vtf8/d2v" Received: by mail-oo1-f47.google.com with SMTP id 006d021491bc7-5f89aa7a101so136742eaf.2 for ; Wed, 12 Mar 2025 18:16:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1741828592; x=1742433392; 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=xUFLaRcDCA7FCvRbsTh4BbCfT/fIUbX2SqbhdxolA8A=; b=vtf8/d2v7gcv0EEmfw0up2a01tVqN87zFTOwYl3mqgVnhkE+3ay/wU7fgiOyQrGuUX tPBY5xd3xE0hh5mVmhHCgnt1F70h21B/Ajz87S8XNvLJDOKIkqUDZCUBL4saBGsg6jy5 Udw7bMExedbr/RNehhspQ/qHIx1xu4wh4G0cefw5qLRP+DdOrN+raLP3A8xFhMotCFmM c5P/z+Rm5NMdP09cjdgvK0oADNiDgxrUIR8pIHAOMho5GVyd+9kf0eugPydm8FzwL8t3 Nnx84N3R768TrGBrNQwFPr5FNo3be3eCKPRmMm0uXo63SmTOfwqCRG2VpLfZMVgreTum MpzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741828592; x=1742433392; 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=xUFLaRcDCA7FCvRbsTh4BbCfT/fIUbX2SqbhdxolA8A=; b=Q0kQNVNrQBRO+t0kiw9d7eVLedCyrUB1kv9iGI+xZdyc+40myFb51cOXY2ijmPL3Ol SAnG67cGnQY6dSqNoBaKdVEnexSWjDd6cFACfGpXMInVmfvA6pTZq0P7waOAFKT4Tu+Y Ax6+KX0IKdON/q0fjIf+7WyIsWIoXVtU7+XCwzrxZB3JALYh6UfDeOezAfOJbnQ23Mv6 WClIz9GBoRmU9acGzyydGawTJwJg9Y/k4uEOtPWx4dmdhvLVH4O6tsU5BgH+dyD2VXQS fe+5BBF3YmX+vrpDU9c2+NfySW45lHY7OMhnf5lngNO1Qw4Q4CbimKV3Byuqy710bIoj V5LQ== X-Forwarded-Encrypted: i=1; AJvYcCWiQZGsdZnwVeYDnX5SRU4Xyk+iynmx0OZX7zcpyDoz1nYTPpmowdKao0fq67AHmJdLNVKPKvpvkrcEZQE=@vger.kernel.org X-Gm-Message-State: AOJu0YyefDpgHJK9N89UFoioICL+ceDtoKQJzSzb/7CC3azoNdiKuLhz D80W5M4SjA1f9MRx7YASxre6Ua1sUB+yRvQjLJlJiM3YYpPv6R/ShioO7q2VaiA= X-Gm-Gg: ASbGncsazqJgZmUn9oeJjA1bzlEIFYnILRBLXdd78NTw+9xlb9KjrxtFFhsLKyJoVNb w87HQ2Qfl31RrzspeGhyfvNNSCxuAyv78TgnqO4seDMP/tJtmH5l3J126MTjIsSP171oKpB2na2 Kx6J0RVsyCo0lf66WesmwA/BnE/CEXPFD1Gzv/UbTACXJIABsyynphiTSGt2GxMb2jgrlPZGdOE /YIRgKmXJ8B1mDVXJ6nzkDd6ldwwfbIZJjaXu+oonaHkT7ruCAd64+339AyqEloloc8r/UUvWK5 nWxVw1DZ8ujBhl7bohsEIujnV5Fgz7IHghUwDpZWKYatOG8xWFth2MVj/JXNjWjFi/3Mrun6Krb C X-Google-Smtp-Source: AGHT+IHPAbMjLbwFvEUHWWDePQo9K4D2fvvx8k3LSqJizbYNQKiwaesPnVLjlDw6yL9xZpi1dagVuA== X-Received: by 2002:a05:6820:2018:b0:5fe:87b7:40f5 with SMTP id 006d021491bc7-6004ab182bfmr9901604eaf.5.1741828592721; Wed, 12 Mar 2025 18:16: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 006d021491bc7-601db659ad8sm39865eaf.8.2025.03.12.18.16.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 18:16:31 -0700 (PDT) From: David Lechner Date: Wed, 12 Mar 2025 20:15:47 -0500 Subject: [PATCH 09/11] iio: adc: ad7606: drop ch param from ad7606_scale_setup_cb_t Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250312-iio-adc-ad7606-improvements-v1-9-d1ec04847aea@baylibre.com> References: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@baylibre.com> In-Reply-To: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@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 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6245; i=dlechner@baylibre.com; h=from:subject:message-id; bh=akEsK+MydePNjGNlqt6JoBX9UovhB+AF09zT7VtsUh4=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn0jHbSdA21LPjEOVfB/II39YISFVEWJ9kdCgwZ U2LORYLwVSJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9Ix2xUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAM4Wg/9GogO2kg8aWDf3/nkfhs8WL8I9wavPwayO3FRhmp M7yKC/CJ2eOXqugeWw+0m3Qn/Deb+lFP3EqL6bwTrFj6mHcHb0+0T8ZcH4ZQJtQafNtRsm/3wag YWKVVtI6fJ89cXPqdL+Qrj6KJR2+KrLd+j+zYGHtxRKi0527sYyrzm6BBF2uqn9sxiOwahyggl3 T+QHchu00RCCV6ztOvX5YMPOYzJu1npa4Gc8ck5BQI5F96aRNRpY49nKkhSOobDh7YaV43MPrH6 BlJNy+LC7tqScs1XERAKr6SD0K/d9CehPger5C6/m7Aaxx+elI6yZy4BbL/eb0dEfKaCY84gyNs fgP5VzowT130dubMdVvd04XScv2xRN9810kr+z7Xor+bLUvTBUgEYcgVE/lNcJuLA7Xg+WndIky PlQ5VX2CIcj1DSCW+udGh+0pXSWYx5hbRLNNa3vlFfDlvsuTqGYg0OWiNqoFG8w7cU92/LTEEfb 0P788rauyOljoMYzKQzTAjiYeDuLGfrZSbo3NOmlZMTDXqRDB9AXWhwN7IDbewHChORPWdrJ8CH gyx2U7fHBB+0Al53yb5UCHDg86y5fVO3/Bz+uF4FOlwfy4Sxx3l4+5uM9KVCTs00ET0zzpEf5sK mD3p8uU8gCE5H2BtA+EkyTKZUWaDh3imu7VK8YgjyWK8= 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. Signed-off-by: David Lechner Reviewed-by: Nuno S=C3=A1 --- 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 02ff4be3545d45f0e10bbea7251862f4e3daf97f..12871134b22f5ebcb66e9b57cef= b8affa523685e 100644 --- a/drivers/iio/adc/ad7606.c +++ b/drivers/iio/adc/ad7606.c @@ -182,17 +182,17 @@ static const struct iio_chan_spec ad7616_channels[] = =3D { }; =20 static int ad7606c_18bit_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch); + struct iio_chan_spec *chan); static int ad7606c_16bit_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch); + struct iio_chan_spec *chan); static int ad7606_16bit_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch); + struct iio_chan_spec *chan); static int ad7607_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch); + struct iio_chan_spec *chan); static int ad7608_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch); + struct iio_chan_spec *chan); static int ad7609_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch); + struct iio_chan_spec *chan); static int ad7616_sw_mode_setup(struct iio_dev *indio_dev); static int ad7606b_sw_mode_setup(struct iio_dev *indio_dev); =20 @@ -346,10 +346,10 @@ int ad7606_reset(struct ad7606_state *st) EXPORT_SYMBOL_NS_GPL(ad7606_reset, "IIO_AD7606"); =20 static int ad7606_16bit_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch) + struct iio_chan_spec *chan) { struct ad7606_state *st =3D iio_priv(indio_dev); - struct ad7606_chan_scale *cs =3D &st->chan_scales[ch]; + struct ad7606_chan_scale *cs =3D &st->chan_scales[chan->scan_index]; =20 if (!st->sw_mode_en) { /* tied to logic low, analog input range is +/- 5V */ @@ -425,10 +425,10 @@ static int ad7606_get_chan_config(struct iio_dev *ind= io_dev, int ch, } =20 static int ad7606c_18bit_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch) + struct iio_chan_spec *chan) { struct ad7606_state *st =3D iio_priv(indio_dev); - struct ad7606_chan_scale *cs =3D &st->chan_scales[ch]; + struct ad7606_chan_scale *cs =3D &st->chan_scales[chan->scan_index]; bool bipolar, differential; int ret; =20 @@ -439,7 +439,8 @@ static int ad7606c_18bit_chan_scale_setup(struct iio_de= v *indio_dev, return 0; } =20 - ret =3D ad7606_get_chan_config(indio_dev, ch, &bipolar, &differential); + ret =3D ad7606_get_chan_config(indio_dev, chan->scan_index, &bipolar, + &differential); if (ret) return ret; =20 @@ -482,10 +483,10 @@ static int ad7606c_18bit_chan_scale_setup(struct iio_= dev *indio_dev, } =20 static int ad7606c_16bit_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch) + struct iio_chan_spec *chan) { struct ad7606_state *st =3D iio_priv(indio_dev); - struct ad7606_chan_scale *cs =3D &st->chan_scales[ch]; + struct ad7606_chan_scale *cs =3D &st->chan_scales[chan->scan_index]; bool bipolar, differential; int ret; =20 @@ -496,7 +497,8 @@ static int ad7606c_16bit_chan_scale_setup(struct iio_de= v *indio_dev, return 0; } =20 - ret =3D ad7606_get_chan_config(indio_dev, ch, &bipolar, &differential); + ret =3D ad7606_get_chan_config(indio_dev, chan->scan_index, &bipolar, + &differential); if (ret) return ret; =20 @@ -540,10 +542,10 @@ static int ad7606c_16bit_chan_scale_setup(struct iio_= dev *indio_dev, } =20 static int ad7607_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch) + struct iio_chan_spec *chan) { struct ad7606_state *st =3D iio_priv(indio_dev); - struct ad7606_chan_scale *cs =3D &st->chan_scales[ch]; + struct ad7606_chan_scale *cs =3D &st->chan_scales[chan->scan_index]; =20 cs->range =3D 0; cs->scale_avail =3D ad7607_hw_scale_avail; @@ -552,10 +554,10 @@ static int ad7607_chan_scale_setup(struct iio_dev *in= dio_dev, } =20 static int ad7608_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch) + struct iio_chan_spec *chan) { struct ad7606_state *st =3D iio_priv(indio_dev); - struct ad7606_chan_scale *cs =3D &st->chan_scales[ch]; + struct ad7606_chan_scale *cs =3D &st->chan_scales[chan->scan_index]; =20 cs->range =3D 0; cs->scale_avail =3D ad7606_18bit_hw_scale_avail; @@ -564,10 +566,10 @@ static int ad7608_chan_scale_setup(struct iio_dev *in= dio_dev, } =20 static int ad7609_chan_scale_setup(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch) + struct iio_chan_spec *chan) { struct ad7606_state *st =3D iio_priv(indio_dev); - struct ad7606_chan_scale *cs =3D &st->chan_scales[ch]; + struct ad7606_chan_scale *cs =3D &st->chan_scales[chan->scan_index]; =20 cs->range =3D 0; cs->scale_avail =3D ad7609_hw_scale_avail; @@ -1305,7 +1307,7 @@ static int ad7606_chan_scales_setup(struct iio_dev *i= ndio_dev) indio_dev->channels =3D chans; =20 for (ch =3D 0; ch < st->chip_info->num_adc_channels; ch++) { - ret =3D st->chip_info->scale_setup_cb(indio_dev, &chans[ch + offset], ch= ); + ret =3D st->chip_info->scale_setup_cb(indio_dev, &chans[ch + offset]); if (ret) return ret; } diff --git a/drivers/iio/adc/ad7606.h b/drivers/iio/adc/ad7606.h index f6a6c89dbdc708f4e25e3c9ade9e9e614a7f99b1..fd4c0d615a880ac6fdcaad213d4= 843329c3bd7fe 100644 --- a/drivers/iio/adc/ad7606.h +++ b/drivers/iio/adc/ad7606.h @@ -113,7 +113,7 @@ struct ad7606_state; =20 typedef int (*ad7606_scale_setup_cb_t)(struct iio_dev *indio_dev, - struct iio_chan_spec *chan, int ch); + struct iio_chan_spec *chan); typedef int (*ad7606_sw_setup_cb_t)(struct iio_dev *indio_dev); =20 /** --=20 2.43.0 From nobody Mon Feb 9 14:42:21 2026 Received: from mail-oo1-f50.google.com (mail-oo1-f50.google.com [209.85.161.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 6D6F76F2F2 for ; Thu, 13 Mar 2025 01:16:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828598; cv=none; b=hCwm7ZhmcLgd9jeN/20YC5MnOjiuaWTIohAH5k3azFj2yYATPebLgSwVjvdUfPcWDfabi52xW9RZSfhlvDfoZMwxp9UjWDU44GSgnZGW60T5ovVsPeY6amN5p9FQnHj4efFlI7x2CSd0p3QlUc3L1NPpRTshYhF0MFuSDEiIytI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828598; c=relaxed/simple; bh=JMX6wF/Wi0W6m+5PXlr1OVY5Q4zq4jQJg9QzPmRrpxA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AWr4qWa35NGho1UnPq2vcABbR8NDRw28cG3xL11PIKhrziOJL7TdInvZnEWoS5WNfb9zs7waglruuKEVhlC7hGIb/fjLNZlWaleeIuTkStR1K0z7EaCesr+0s3vPM8fny3U4w+6h8f6bfY3bjKYjTf56xX9oLOHqEhrpuyjcWlQ= 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=cunk6ZFM; arc=none smtp.client-ip=209.85.161.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="cunk6ZFM" Received: by mail-oo1-f50.google.com with SMTP id 006d021491bc7-5fe8759153dso167152eaf.1 for ; Wed, 12 Mar 2025 18:16:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1741828595; x=1742433395; 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=V+BPRgicQsx1bc8NEXElXDyLom5LmWB7oanDNY9l0Ug=; b=cunk6ZFMe1xyO3H1N9C75ZUb+MnKO0oCnfx43127cHmczvIba4XaAv+6CF2wt1fp0C HBjImBmZ5AcUbg9PZYq9/pfP/2JVjey/Ii3MOVNP9J5WlhpTD2dChyhqhj8VKgFIECxs IZjvy0sTxV6gFrrxcFJCYPB9QXP7PTiDpdTcNgPlrE2Z1joNcAzBsFHOhET4O9NeaTXv rKl8h+z/8sg+cpxvHAcWJPFzDX9oEBAFZJQR9A9uDN5LjktRcMdf7eGzhhQ++Pj360kd deZgQflU4EJW2hnW7UdB/X7x0EgPIN+xQ4PUBEkg2r4MWr9ZX7tJBTp2PTNNecE/BiFt Npww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741828595; x=1742433395; 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=V+BPRgicQsx1bc8NEXElXDyLom5LmWB7oanDNY9l0Ug=; b=uOHiXDyOs3yPpmcntWzwSFR4JlVEbAgGKTrvm1Qu6GJF/QJ9vtG2BYldcW6DD3DQjR p35e9HZo+k1/Y+Gwz2qSsJ7FPxn1y5Vv/6eca6mJsJI8LBR1cVIWDTxsObYebgQTU2YW cPy+i2heDQ+DCKX8UfLfowFmWH77htbeMJb1TGO4pGtGV4Uj4G/tIgvCkqkpC4syIUD8 SJ/QEYAtYquOKBGh3eU3LAP7CLmTe8X2poo494WWdqkVMrzaD9zN0xG85axOCCeR68m2 +M83mJ/YMbZOidr7q6FDDFQoWdSimBSprzkPyIkw7v6CLJ/gWdACMjzLf20rsynq4DnO eulQ== X-Forwarded-Encrypted: i=1; AJvYcCUZNluhvdUcMfB2WiM2Jx1DbSQufDya8Yv3pYm1shJDBzGDy0IutWGdWMy6wJkmWMcOT0zL5xAbxMySsBU=@vger.kernel.org X-Gm-Message-State: AOJu0YzUJ4CEVONwlJ/djLJY9Sm7aC3gx6zRc8O7eFhKW01A+4oDNIzN HXr0J4Tt/hr65dqc4ELEx7pgS37VoDTnhVs/f+7E10m/WeVmp/kSLKHTfq0rHfo= X-Gm-Gg: ASbGncsCe0HChvgzStQLmHJYU0nzI684gOdtPxzlTfAwAP4pZCKmD6zeRWTAiWLXb1P gkhUh84eLwXS9kjlJJfTcjIyD/jFreDOJTAsf6D061zpcq8XllhVm6dMfXmOZdhRJq1CKJ8iU7f cgTtA497T0U3yWRhfYqLYr5U7QX6bWHSYPBDuhtrosdPxHmuEpJQbtDBOnirnDTQ1ZWfGuYy6Xx cFjl6SQKZE0aGdk/OVMVS2RsfKhTn9DrFM0p59boB+o/QjCiUBNTeoKTCOQQFyAgD8noAsZZnkI JxK0KVCOWz9Ag0yfzdv/V6xgP98bw834SDqKmES3oRxRqbxHD3KnuDaqEpkL5v9cCoWlgCBg+yN M X-Google-Smtp-Source: AGHT+IF5YAiUP++mOswR6HNKH0g+irpYGntStaafkpj1VGZxfSXuYbFuJL1diFdm0bFas8OTPBSA5w== X-Received: by 2002:a4a:ee03:0:b0:601:ab41:75f6 with SMTP id 006d021491bc7-601ab417789mr7925601eaf.3.1741828595471; Wed, 12 Mar 2025 18:16:35 -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 006d021491bc7-601db659ad8sm39865eaf.8.2025.03.12.18.16.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 18:16:34 -0700 (PDT) From: David Lechner Date: Wed, 12 Mar 2025 20:15:48 -0500 Subject: [PATCH 10/11] iio: adc: ad7606: dynamically allocate channel info Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250312-iio-adc-ad7606-improvements-v1-10-d1ec04847aea@baylibre.com> References: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@baylibre.com> In-Reply-To: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@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 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=24015; i=dlechner@baylibre.com; h=from:subject:message-id; bh=JMX6wF/Wi0W6m+5PXlr1OVY5Q4zq4jQJg9QzPmRrpxA=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn0jHbC0yGWDZZpnFZ7rCFn57zIg7LLwnd7iM7p GNeVqGF21KJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9Ix2xUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAO2JxAApAQRBc/Njo7+O6BemdKPWXGQLEkfhCA/1SrT5Kl 8StmnEgk28KwEqwjiya9PAJYUXdX8zZoGG+90fYrN78P4Qp9vpctsykvrxo0NGLhrolKQdXDGr1 7TskTeYzi85zKABo7J/zRE/4QGjmkmpgZ1QFwq4gDPhwRF0nE7pIeo5kBeGo86sCrHNvnr7Do9A TdJxvuTlN6BSa5Aiek28G52lgM6WFzXNa7FTWhqRDGUI1LfE36cTUbItgT1meYVX/RnABhfbq/w SbT6hzvsEt+h9jJEzL7NM3Y7krjhYvNuZ9Q9S6wXCBJM5T0l2xA5usu6XzsOP4BYzKowhcBb67r FyOrrtw5sKdPHQA5x9iZqElushiecgp1UAsl5d2De0m3EvE5sRzYWi427MQX2hBQiFBBfr+3Psa +0+GUyCtkFFTNAlhyfN/2oqw9pMtRV2TRlN/9Owvs3t38fadVc0L89x/ZCadeWoKYtc4oDDrmwR DRcpt283lwRhbHRgfGiF17nnmToSXkLYnZAjmUWWGFF70bvulpg2lxukgke+B6hAMOdaDzkPpFB u4UfApyYzHRjIhemP8rJvcmfzKDYOcoHY2PWoJBqzlN3zmBxNzvf+K7sv3w/qGlEt1WbfcMGWMI nBqRBBVy5xWxAzE0DIASbZjP2Gsefv+UknXOsgtxPAIg= 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 stemps 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. Signed-off-by: David Lechner Reviewed-by: Nuno S=C3=A1 --- 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 12871134b22f5ebcb66e9b57cefb8affa523685e..e6eb82b4de09dc35753f9ca363f= 619ff93884e56 100644 --- a/drivers/iio/adc/ad7606.c +++ b/drivers/iio/adc/ad7606.c @@ -95,92 +95,6 @@ static const unsigned int ad7616_oversampling_avail[8] = =3D { 1, 2, 4, 8, 16, 32, 64, 128, }; =20 -static const struct iio_chan_spec ad7605_channels[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(4), - AD7605_CHANNEL(0), - AD7605_CHANNEL(1), - AD7605_CHANNEL(2), - AD7605_CHANNEL(3), -}; - -static const struct iio_chan_spec ad7606_channels_16bit[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(8), - AD7606_CHANNEL(0, 16), - AD7606_CHANNEL(1, 16), - AD7606_CHANNEL(2, 16), - AD7606_CHANNEL(3, 16), - AD7606_CHANNEL(4, 16), - AD7606_CHANNEL(5, 16), - AD7606_CHANNEL(6, 16), - AD7606_CHANNEL(7, 16), -}; - -static const struct iio_chan_spec ad7606_channels_18bit[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(8), - AD7606_CHANNEL(0, 18), - AD7606_CHANNEL(1, 18), - AD7606_CHANNEL(2, 18), - AD7606_CHANNEL(3, 18), - AD7606_CHANNEL(4, 18), - AD7606_CHANNEL(5, 18), - AD7606_CHANNEL(6, 18), - AD7606_CHANNEL(7, 18), -}; - -static const struct iio_chan_spec ad7607_channels[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(8), - AD7606_CHANNEL(0, 14), - AD7606_CHANNEL(1, 14), - AD7606_CHANNEL(2, 14), - AD7606_CHANNEL(3, 14), - AD7606_CHANNEL(4, 14), - AD7606_CHANNEL(5, 14), - AD7606_CHANNEL(6, 14), - AD7606_CHANNEL(7, 14), -}; - -static const struct iio_chan_spec ad7608_channels[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(8), - AD7606_CHANNEL(0, 18), - AD7606_CHANNEL(1, 18), - AD7606_CHANNEL(2, 18), - AD7606_CHANNEL(3, 18), - AD7606_CHANNEL(4, 18), - AD7606_CHANNEL(5, 18), - AD7606_CHANNEL(6, 18), - AD7606_CHANNEL(7, 18), -}; - -/* - * The current assumption that this driver makes for AD7616, is that it's - * working in Hardware Mode with Serial, Burst and Sequencer modes activat= ed. - * To activate them, following pins must be pulled high: - * -SER/PAR - * -SEQEN - * And following pins must be pulled low: - * -WR/BURST - * -DB4/SER1W - */ -static const struct iio_chan_spec ad7616_channels[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(16), - AD7606_CHANNEL(0, 16), - AD7606_CHANNEL(1, 16), - AD7606_CHANNEL(2, 16), - AD7606_CHANNEL(3, 16), - AD7606_CHANNEL(4, 16), - AD7606_CHANNEL(5, 16), - AD7606_CHANNEL(6, 16), - AD7606_CHANNEL(7, 16), - AD7606_CHANNEL(8, 16), - AD7606_CHANNEL(9, 16), - AD7606_CHANNEL(10, 16), - AD7606_CHANNEL(11, 16), - AD7606_CHANNEL(12, 16), - AD7606_CHANNEL(13, 16), - AD7606_CHANNEL(14, 16), - AD7606_CHANNEL(15, 16), -}; - static int ad7606c_18bit_chan_scale_setup(struct iio_dev *indio_dev, struct iio_chan_spec *chan); static int ad7606c_16bit_chan_scale_setup(struct iio_dev *indio_dev, @@ -198,20 +112,18 @@ static int ad7606b_sw_mode_setup(struct iio_dev *indi= o_dev); =20 const struct ad7606_chip_info ad7605_4_info =3D { .max_samplerate =3D 300 * KILO, - .channels =3D ad7605_channels, .name =3D "ad7605-4", + .bits =3D 16, .num_adc_channels =3D 4, - .num_channels =3D 5, .scale_setup_cb =3D ad7606_16bit_chan_scale_setup, }; EXPORT_SYMBOL_NS_GPL(ad7605_4_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606_8_info =3D { .max_samplerate =3D 200 * KILO, - .channels =3D ad7606_channels_16bit, .name =3D "ad7606-8", + .bits =3D 16, .num_adc_channels =3D 8, - .num_channels =3D 9, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7606_16bit_chan_scale_setup, @@ -220,10 +132,9 @@ EXPORT_SYMBOL_NS_GPL(ad7606_8_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606_6_info =3D { .max_samplerate =3D 200 * KILO, - .channels =3D ad7606_channels_16bit, .name =3D "ad7606-6", + .bits =3D 16, .num_adc_channels =3D 6, - .num_channels =3D 7, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7606_16bit_chan_scale_setup, @@ -232,10 +143,9 @@ EXPORT_SYMBOL_NS_GPL(ad7606_6_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606_4_info =3D { .max_samplerate =3D 200 * KILO, - .channels =3D ad7606_channels_16bit, .name =3D "ad7606-4", + .bits =3D 16, .num_adc_channels =3D 4, - .num_channels =3D 5, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7606_16bit_chan_scale_setup, @@ -243,11 +153,10 @@ const struct ad7606_chip_info ad7606_4_info =3D { EXPORT_SYMBOL_NS_GPL(ad7606_4_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606b_info =3D { - .channels =3D ad7606_channels_16bit, .max_samplerate =3D 800 * KILO, .name =3D "ad7606b", + .bits =3D 16, .num_adc_channels =3D 8, - .num_channels =3D 9, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7606_16bit_chan_scale_setup, @@ -257,10 +166,9 @@ EXPORT_SYMBOL_NS_GPL(ad7606b_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606c_16_info =3D { .max_samplerate =3D 1 * MEGA, - .channels =3D ad7606_channels_16bit, .name =3D "ad7606c16", + .bits =3D 16, .num_adc_channels =3D 8, - .num_channels =3D 9, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7606c_16bit_chan_scale_setup, @@ -270,10 +178,9 @@ EXPORT_SYMBOL_NS_GPL(ad7606c_16_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7607_info =3D { .max_samplerate =3D 200 * KILO, - .channels =3D ad7607_channels, .name =3D "ad7607", + .bits =3D 14, .num_adc_channels =3D 8, - .num_channels =3D 9, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7607_chan_scale_setup, @@ -282,10 +189,9 @@ EXPORT_SYMBOL_NS_GPL(ad7607_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7608_info =3D { .max_samplerate =3D 200 * KILO, - .channels =3D ad7608_channels, .name =3D "ad7608", + .bits =3D 18, .num_adc_channels =3D 8, - .num_channels =3D 9, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7608_chan_scale_setup, @@ -294,10 +200,9 @@ EXPORT_SYMBOL_NS_GPL(ad7608_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7609_info =3D { .max_samplerate =3D 200 * KILO, - .channels =3D ad7608_channels, .name =3D "ad7609", + .bits =3D 18, .num_adc_channels =3D 8, - .num_channels =3D 9, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7609_chan_scale_setup, @@ -306,10 +211,9 @@ EXPORT_SYMBOL_NS_GPL(ad7609_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7606c_18_info =3D { .max_samplerate =3D 1 * MEGA, - .channels =3D ad7606_channels_18bit, .name =3D "ad7606c18", + .bits =3D 18, .num_adc_channels =3D 8, - .num_channels =3D 9, .oversampling_avail =3D ad7606_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7606_oversampling_avail), .scale_setup_cb =3D ad7606c_18bit_chan_scale_setup, @@ -319,11 +223,10 @@ EXPORT_SYMBOL_NS_GPL(ad7606c_18_info, "IIO_AD7606"); =20 const struct ad7606_chip_info ad7616_info =3D { .max_samplerate =3D 1 * MEGA, - .channels =3D ad7616_channels, .init_delay_ms =3D 15, .name =3D "ad7616", + .bits =3D 16, .num_adc_channels =3D 16, - .num_channels =3D 17, .oversampling_avail =3D ad7616_oversampling_avail, .oversampling_num =3D ARRAY_SIZE(ad7616_oversampling_avail), .os_req_reset =3D true, @@ -373,7 +276,6 @@ static int ad7606_get_chan_config(struct iio_dev *indio= _dev, int ch, { struct ad7606_state *st =3D iio_priv(indio_dev); unsigned int num_channels =3D st->chip_info->num_adc_channels; - unsigned int offset =3D indio_dev->num_channels - st->chip_info->num_adc_= channels; struct device *dev =3D st->dev; int ret; =20 @@ -389,7 +291,7 @@ static int ad7606_get_chan_config(struct iio_dev *indio= _dev, int ch, continue; =20 /* channel number (here) is from 1 to num_channels */ - if (reg < offset || reg > num_channels) { + if (reg < 1 || reg > num_channels) { dev_warn(dev, "Invalid channel number (ignoring): %d\n", reg); continue; @@ -706,8 +608,8 @@ static int ad7606_scan_direct(struct iio_dev *indio_dev= , unsigned int ch, int *val) { struct ad7606_state *st =3D iio_priv(indio_dev); - unsigned int realbits =3D st->chip_info->channels[1].scan_type.realbits; const struct iio_chan_spec *chan; + unsigned int realbits; int ret; =20 if (st->gpio_convst) { @@ -739,7 +641,9 @@ static int ad7606_scan_direct(struct iio_dev *indio_dev= , unsigned int ch, if (ret) goto error_ret; =20 - chan =3D &indio_dev->channels[ch + 1]; + chan =3D &indio_dev->channels[ch]; + realbits =3D chan->scan_type.realbits; + if (chan->scan_type.sign =3D=3D 'u') { if (realbits > 16) *val =3D st->data.buf32[ch]; @@ -1289,29 +1193,84 @@ static int ad7606b_sw_mode_setup(struct iio_dev *in= dio_dev) return st->bops->sw_mode_config(indio_dev); } =20 -static int ad7606_chan_scales_setup(struct iio_dev *indio_dev) +static int ad7606_probe_channels(struct iio_dev *indio_dev) { struct ad7606_state *st =3D iio_priv(indio_dev); - unsigned int offset =3D indio_dev->num_channels - st->chip_info->num_adc_= channels; - struct iio_chan_spec *chans; - size_t size; - int ch, ret; - - /* Clone IIO channels, since some may be differential */ - size =3D indio_dev->num_channels * sizeof(*indio_dev->channels); - chans =3D devm_kzalloc(st->dev, size, GFP_KERNEL); - if (!chans) + struct device *dev =3D indio_dev->dev.parent; + struct iio_chan_spec *channels; + bool slow_bus; + int ret, i; + + slow_bus =3D !st->bops->iio_backend_config; + indio_dev->num_channels =3D st->chip_info->num_adc_channels; + + /* Slow buses also get 1 more channel for soft timestamp */ + if (slow_bus) + indio_dev->num_channels++; + + channels =3D devm_kcalloc(dev, indio_dev->num_channels, sizeof(*channels), + GFP_KERNEL); + if (!channels) return -ENOMEM; =20 - memcpy(chans, indio_dev->channels, size); - indio_dev->channels =3D chans; + for (i =3D 0; i < indio_dev->num_channels; i++) { + struct iio_chan_spec *chan =3D &channels[i]; =20 - for (ch =3D 0; ch < st->chip_info->num_adc_channels; ch++) { - ret =3D st->chip_info->scale_setup_cb(indio_dev, &chans[ch + offset]); + chan->type =3D IIO_VOLTAGE; + chan->indexed =3D 1; + chan->channel =3D i; + chan->scan_index =3D i; + chan->scan_type.sign =3D 's'; + chan->scan_type.realbits =3D st->chip_info->bits; + chan->scan_type.storagebits =3D st->chip_info->bits > 16 ? 32 : 16; + chan->scan_type.endianness =3D IIO_CPU; + + if (indio_dev->modes & INDIO_DIRECT_MODE) + chan->info_mask_separate |=3D BIT(IIO_CHAN_INFO_RAW); + + if (st->sw_mode_en) { + chan->info_mask_separate |=3D BIT(IIO_CHAN_INFO_SCALE); + chan->info_mask_separate_available |=3D + BIT(IIO_CHAN_INFO_SCALE); + + /** + * All chips with software mode support oversampling, + * so we skip the oversampling_available check. And the + * shared_by_type instead of shared_by_all on slow + * buses is for backward compatibility. + */ + if (slow_bus) + chan->info_mask_shared_by_type |=3D + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO); + else + chan->info_mask_shared_by_all |=3D + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO); + + chan->info_mask_shared_by_all_available |=3D + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO); + } else { + chan->info_mask_shared_by_type |=3D + BIT(IIO_CHAN_INFO_SCALE); + + if (st->chip_info->oversampling_avail) + chan->info_mask_shared_by_all |=3D + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO); + } + + if (!slow_bus) + chan->info_mask_shared_by_all |=3D + BIT(IIO_CHAN_INFO_SAMP_FREQ); + + ret =3D st->chip_info->scale_setup_cb(indio_dev, chan); if (ret) return ret; } =20 + if (slow_bus) + channels[i] =3D (struct iio_chan_spec)IIO_CHAN_SOFT_TIMESTAMP(i); + + indio_dev->channels =3D channels; + return 0; } =20 @@ -1343,6 +1302,11 @@ int ad7606_probe(struct device *dev, int irq, void _= _iomem *base_address, st->bops =3D bops; st->base_address =3D base_address; st->oversampling =3D 1; + st->sw_mode_en =3D device_property_read_bool(dev, "adi,sw-mode"); + + if (st->sw_mode_en && !chip_info->sw_setup_cb) + return dev_err_probe(dev, -EINVAL, + "Software mode is not supported for this chip\n"); =20 ret =3D devm_regulator_get_enable(dev, "avcc"); if (ret) @@ -1371,10 +1335,14 @@ int ad7606_probe(struct device *dev, int irq, void = __iomem *base_address, else indio_dev->info =3D &ad7606_info_no_os_or_range; } - indio_dev->modes =3D INDIO_DIRECT_MODE; + + /* AXI ADC backend doesn't support single read. */ + indio_dev->modes =3D st->bops->iio_backend_config ? 0 : INDIO_DIRECT_MODE; indio_dev->name =3D chip_info->name; - indio_dev->channels =3D st->chip_info->channels; - indio_dev->num_channels =3D st->chip_info->num_channels; + + ret =3D ad7606_probe_channels(indio_dev); + if (ret) + return ret; =20 ret =3D ad7606_reset(st); if (ret) @@ -1466,17 +1434,11 @@ int ad7606_probe(struct device *dev, int irq, void = __iomem *base_address, st->write_scale =3D ad7606_write_scale_hw; st->write_os =3D ad7606_write_os_hw; =20 - st->sw_mode_en =3D st->chip_info->sw_setup_cb && - device_property_present(st->dev, "adi,sw-mode"); if (st->sw_mode_en) { indio_dev->info =3D &ad7606_info_sw_mode; st->chip_info->sw_setup_cb(indio_dev); } =20 - ret =3D ad7606_chan_scales_setup(indio_dev); - if (ret) - return ret; - return devm_iio_device_register(dev, indio_dev); } EXPORT_SYMBOL_NS_GPL(ad7606_probe, "IIO_AD7606"); diff --git a/drivers/iio/adc/ad7606.h b/drivers/iio/adc/ad7606.h index fd4c0d615a880ac6fdcaad213d4843329c3bd7fe..b67058cd021a3d00ff0f461766d= 51e46d7998f32 100644 --- a/drivers/iio/adc/ad7606.h +++ b/drivers/iio/adc/ad7606.h @@ -40,76 +40,6 @@ #define AD7606_RANGE_CH_ADDR(ch) (0x03 + ((ch) >> 1)) #define AD7606_OS_MODE 0x08 =20 -#define AD760X_CHANNEL(num, mask_sep, mask_type, mask_all, \ - mask_sep_avail, mask_all_avail, bits) { \ - .type =3D IIO_VOLTAGE, \ - .indexed =3D 1, \ - .channel =3D num, \ - .info_mask_separate =3D mask_sep, \ - .info_mask_separate_available =3D \ - mask_sep_avail, \ - .info_mask_shared_by_type =3D mask_type, \ - .info_mask_shared_by_all =3D mask_all, \ - .info_mask_shared_by_all_available =3D \ - mask_all_avail, \ - .scan_index =3D num, \ - .scan_type =3D { \ - .sign =3D 's', \ - .realbits =3D (bits), \ - .storagebits =3D (bits) > 16 ? 32 : 16, \ - .endianness =3D IIO_CPU, \ - }, \ -} - -#define AD7606_SW_CHANNEL(num, bits) \ - AD760X_CHANNEL(num, \ - /* mask separate */ \ - BIT(IIO_CHAN_INFO_RAW) | \ - BIT(IIO_CHAN_INFO_SCALE), \ - /* mask type */ \ - BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ - /* mask all */ \ - 0, \ - /* mask separate available */ \ - BIT(IIO_CHAN_INFO_SCALE), \ - /* mask all available */ \ - BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ - bits) - -#define AD7605_CHANNEL(num) \ - AD760X_CHANNEL(num, BIT(IIO_CHAN_INFO_RAW), \ - BIT(IIO_CHAN_INFO_SCALE), 0, 0, 0, 16) - -#define AD7606_CHANNEL(num, bits) \ - AD760X_CHANNEL(num, BIT(IIO_CHAN_INFO_RAW), \ - BIT(IIO_CHAN_INFO_SCALE), \ - BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ - 0, 0, bits) - -#define AD7616_CHANNEL(num) AD7606_SW_CHANNEL(num, 16) - -#define AD7606_BI_CHANNEL(num) \ - AD760X_CHANNEL(num, 0, \ - BIT(IIO_CHAN_INFO_SCALE), \ - BIT(IIO_CHAN_INFO_SAMP_FREQ) | \ - BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ - 0, 0, 16) - -#define AD7606_BI_SW_CHANNEL(num) \ - AD760X_CHANNEL(num, \ - /* mask separate */ \ - BIT(IIO_CHAN_INFO_SCALE), \ - /* mask type */ \ - 0, \ - /* mask all */ \ - BIT(IIO_CHAN_INFO_SAMP_FREQ) | \ - BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ - /* mask separate available */ \ - BIT(IIO_CHAN_INFO_SCALE), \ - /* mask all available */ \ - BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ - 16) - struct ad7606_state; =20 typedef int (*ad7606_scale_setup_cb_t)(struct iio_dev *indio_dev, @@ -118,10 +48,9 @@ typedef int (*ad7606_sw_setup_cb_t)(struct iio_dev *ind= io_dev); =20 /** * struct ad7606_chip_info - chip specific information - * @channels: channel specification * @max_samplerate: maximum supported sample rate * @name: device name - * @num_channels: number of channels + * @bits: data width in bits * @num_adc_channels: the number of channels the ADC actually inputs. * @scale_setup_cb: callback to setup the scales for each channel * @sw_setup_cb: callback to setup the software mode if available. @@ -133,11 +62,10 @@ typedef int (*ad7606_sw_setup_cb_t)(struct iio_dev *in= dio_dev); * after a restart */ struct ad7606_chip_info { - const struct iio_chan_spec *channels; unsigned int max_samplerate; const char *name; + unsigned int bits; unsigned int num_adc_channels; - unsigned int num_channels; ad7606_scale_setup_cb_t scale_setup_cb; ad7606_sw_setup_cb_t sw_setup_cb; const unsigned int *oversampling_avail; diff --git a/drivers/iio/adc/ad7606_par.c b/drivers/iio/adc/ad7606_par.c index 335fb481bfde15b79331eabdcbc970d70880338c..e33b07ab5eace4b78e7cf39ee7e= 8d9379c9f73e7 100644 --- a/drivers/iio/adc/ad7606_par.c +++ b/drivers/iio/adc/ad7606_par.c @@ -21,28 +21,6 @@ #include "ad7606.h" #include "ad7606_bus_iface.h" =20 -static const struct iio_chan_spec ad7606b_bi_channels[] =3D { - AD7606_BI_CHANNEL(0), - AD7606_BI_CHANNEL(1), - AD7606_BI_CHANNEL(2), - AD7606_BI_CHANNEL(3), - AD7606_BI_CHANNEL(4), - AD7606_BI_CHANNEL(5), - AD7606_BI_CHANNEL(6), - AD7606_BI_CHANNEL(7), -}; - -static const struct iio_chan_spec ad7606b_bi_sw_channels[] =3D { - AD7606_BI_SW_CHANNEL(0), - AD7606_BI_SW_CHANNEL(1), - AD7606_BI_SW_CHANNEL(2), - AD7606_BI_SW_CHANNEL(3), - AD7606_BI_SW_CHANNEL(4), - AD7606_BI_SW_CHANNEL(5), - AD7606_BI_SW_CHANNEL(6), - AD7606_BI_SW_CHANNEL(7), -}; - static int ad7606_par_bus_update_scan_mode(struct iio_dev *indio_dev, const unsigned long *scan_mask) { @@ -94,9 +72,6 @@ static int ad7606_par_bus_setup_iio_backend(struct device= *dev, return ret; } =20 - indio_dev->channels =3D ad7606b_bi_channels; - indio_dev->num_channels =3D 8; - return 0; } =20 @@ -120,19 +95,11 @@ static int ad7606_par_bus_reg_write(struct ad7606_stat= e *st, unsigned int addr, return pdata->bus_reg_write(st->back, addr, val); } =20 -static int ad7606_par_bus_sw_mode_config(struct iio_dev *indio_dev) -{ - indio_dev->channels =3D ad7606b_bi_sw_channels; - - return 0; -} - static const struct ad7606_bus_ops ad7606_bi_bops =3D { .iio_backend_config =3D ad7606_par_bus_setup_iio_backend, .update_scan_mode =3D ad7606_par_bus_update_scan_mode, .reg_read =3D ad7606_par_bus_reg_read, .reg_write =3D ad7606_par_bus_reg_write, - .sw_mode_config =3D ad7606_par_bus_sw_mode_config, }; =20 static int ad7606_par16_read_block(struct device *dev, diff --git a/drivers/iio/adc/ad7606_spi.c b/drivers/iio/adc/ad7606_spi.c index 1abaf8626206cb30e532cf9f82e0d050706aa1e0..b2b975fb7fea4d1af6caef59e75= ca495501bc140 100644 --- a/drivers/iio/adc/ad7606_spi.c +++ b/drivers/iio/adc/ad7606_spi.c @@ -15,50 +15,6 @@ =20 #define MAX_SPI_FREQ_HZ 23500000 /* VDRIVE above 4.75 V */ =20 -static const struct iio_chan_spec ad7616_sw_channels[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(16), - AD7616_CHANNEL(0), - AD7616_CHANNEL(1), - AD7616_CHANNEL(2), - AD7616_CHANNEL(3), - AD7616_CHANNEL(4), - AD7616_CHANNEL(5), - AD7616_CHANNEL(6), - AD7616_CHANNEL(7), - AD7616_CHANNEL(8), - AD7616_CHANNEL(9), - AD7616_CHANNEL(10), - AD7616_CHANNEL(11), - AD7616_CHANNEL(12), - AD7616_CHANNEL(13), - AD7616_CHANNEL(14), - AD7616_CHANNEL(15), -}; - -static const struct iio_chan_spec ad7606b_sw_channels[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(8), - AD7606_SW_CHANNEL(0, 16), - AD7606_SW_CHANNEL(1, 16), - AD7606_SW_CHANNEL(2, 16), - AD7606_SW_CHANNEL(3, 16), - AD7606_SW_CHANNEL(4, 16), - AD7606_SW_CHANNEL(5, 16), - AD7606_SW_CHANNEL(6, 16), - AD7606_SW_CHANNEL(7, 16), -}; - -static const struct iio_chan_spec ad7606c_18_sw_channels[] =3D { - IIO_CHAN_SOFT_TIMESTAMP(8), - AD7606_SW_CHANNEL(0, 18), - AD7606_SW_CHANNEL(1, 18), - AD7606_SW_CHANNEL(2, 18), - AD7606_SW_CHANNEL(3, 18), - AD7606_SW_CHANNEL(4, 18), - AD7606_SW_CHANNEL(5, 18), - AD7606_SW_CHANNEL(6, 18), - AD7606_SW_CHANNEL(7, 18), -}; - static u16 ad7616_spi_rd_wr_cmd(int addr, char is_write_op) { /* @@ -160,48 +116,13 @@ static int ad7606_spi_reg_write(struct ad7606_state *= st, return spi_write(spi, &st->d16[0], sizeof(st->d16[0])); } =20 -static int ad7616_sw_mode_config(struct iio_dev *indio_dev) -{ - /* - * Scale can be configured individually for each channel - * in software mode. - */ - indio_dev->channels =3D ad7616_sw_channels; - - return 0; -} - static int ad7606b_sw_mode_config(struct iio_dev *indio_dev) { struct ad7606_state *st =3D iio_priv(indio_dev); - int ret; =20 /* Configure device spi to output on a single channel */ - ret =3D st->bops->reg_write(st, AD7606_CONFIGURATION_REGISTER, - AD7606_SINGLE_DOUT); - if (ret) - return ret; - - /* - * Scale can be configured individually for each channel - * in software mode. - */ - indio_dev->channels =3D ad7606b_sw_channels; - - return 0; -} - -static int ad7606c_18_sw_mode_config(struct iio_dev *indio_dev) -{ - int ret; - - ret =3D ad7606b_sw_mode_config(indio_dev); - if (ret) - return ret; - - indio_dev->channels =3D ad7606c_18_sw_channels; - - return 0; + return st->bops->reg_write(st, AD7606_CONFIGURATION_REGISTER, + AD7606_SINGLE_DOUT); } =20 static const struct ad7606_bus_ops ad7606_spi_bops =3D { @@ -221,7 +142,6 @@ static const struct ad7606_bus_ops ad7616_spi_bops =3D { .reg_read =3D ad7606_spi_reg_read, .reg_write =3D ad7606_spi_reg_write, .rd_wr_cmd =3D ad7616_spi_rd_wr_cmd, - .sw_mode_config =3D ad7616_sw_mode_config, }; =20 static const struct ad7606_bus_ops ad7606b_spi_bops =3D { @@ -237,7 +157,7 @@ static const struct ad7606_bus_ops ad7606c_18_spi_bops = =3D { .reg_read =3D ad7606_spi_reg_read, .reg_write =3D ad7606_spi_reg_write, .rd_wr_cmd =3D ad7606b_spi_rd_wr_cmd, - .sw_mode_config =3D ad7606c_18_sw_mode_config, + .sw_mode_config =3D ad7606b_sw_mode_config, }; =20 static const struct ad7606_bus_info ad7605_4_bus_info =3D { --=20 2.43.0 From nobody Mon Feb 9 14:42:21 2026 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 04D0F1D89F0 for ; Thu, 13 Mar 2025 01:16:38 +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=1741828600; cv=none; b=izcOJKQLB/m8sl62O/tbhF+9CChSYOl0lY3EsF2WudUdBk0EkPG6gHh9c6X1Ld2VOxLVJv3S9WiEIZFAuqwKZM/L0x0XH3ZeeFGRtQyTRCd1/4hHEQ8L5oi3+Eijvjipf9PfCvsRHhNMaxZ/waVuFsQ1BwCDB7UaucAvlcuVR20= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741828600; c=relaxed/simple; bh=53ONRiOABCptcxL3WGaLlWT6fl3RdJ2bBnZWG9HzvuU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=H+b+1FCg2HcznQIccLlstK7lxGxCpAo/+cxlEpTdKAZvnJ1XVUP7zbnxmoksQwSjNdSdtsDEn8i90aYQVfk+rs8Cw78jtuCVhju0vdj6P7pGyh3OLsaSFA78N1CIBCasYbLHvfhSxSXalixvRDxViV8eORRftoHe83DYvNP8r5U= 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=P5gl1zhW; 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="P5gl1zhW" Received: by mail-ot1-f44.google.com with SMTP id 46e09a7af769-7272f3477e9so121899a34.3 for ; Wed, 12 Mar 2025 18:16:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1741828598; x=1742433398; 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=Xv9hPIQLpYDvfh5yD5dclx8jxi1p8xrXy5GO73MBJkE=; b=P5gl1zhW/NmnbENrD6+UN7UHgZnD5pHZUrcYanZlb5OatTIJ9wLugWrRm26gH7LZ1q EIsNaacY2NBdeYc9/jUsCmPwqRDE7CBWidNxCErWCiRJ3Pdu+IvxOmYwBTtUghIuToSc XgyHrWj+xd928WqPF1MJcAn/O/XiXxIXg0UNgkIsw+H8FWoW5Clna8yQdFKDXZMG41lG /rjlCuqZFq0TZ/Dsiipn6B+GpGHkkviq8KTWw/OsWqf8Y86EIlrGE4JFQEt38XL2oEQX ze+KDr3BDoxKT18jcWj0KjtNcx7Es8qaRMc/c3fKWAZfepXo7yrR4nI5jGDleVFPZrmP HBMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741828598; x=1742433398; 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=Xv9hPIQLpYDvfh5yD5dclx8jxi1p8xrXy5GO73MBJkE=; b=vjxR54ipY97pfmvB1ErgO+kbw1URzE9wpKn3w6xfUAAxkEvPtbzXoVVsQK8ep6+T1c FgV1YaHDjNOCjY3+wP5HPQDgGwncEisFopNo3pvnLoXH8c7UqesIPRt9/gwywdL8JemW Zj5PSrA5sBsjwn3iJlxl2F292sF7P5LWjkQbSeeR+dSlwZJOko7fdkQ82e6TdJWCLtXY VX0SK93ZZOKNknvlyoNI2zp7We/213HoxB9joANV1bJFX2R8RAYXFpiBVj6RFQN9xMZA AahTlEb1XAoUCQnAWlhYoyt+7oDwKxn3azXvb1ZgQz8wt156wwWxzIkCqrmYaAfMULQT upQg== X-Forwarded-Encrypted: i=1; AJvYcCX5EQ7SAaz0xn4HsC3iIqYCJ4xdyg1IQ3ApxxLFeKjEmMCvGP2Fs+wkrEf2/L4ZAPpbe4kNBbGWZSHiQsU=@vger.kernel.org X-Gm-Message-State: AOJu0YxMLu8BYNpiTWdzmoWvdXlHfn3xFlm7NIJe855Evq29VHJuJoAe L/K1qKDJM43HqGFEsLoDxhOAtEt+2KsEmF31/PVM5QlxjBKts5gTCsBDWdWZj3c= X-Gm-Gg: ASbGncv9qqP7Y7btCIdCo/gMZvzo2uHBgwlmWwS6gpzKf2/sBEzw57mk6LDRbkegbaI 4/m9xcHX4hbxfjNv2BmVW71m9tPbjtN6ZuXtNKD3CXkIzQy+6m+3BAu0y9xJjJMaCoJqrpkmgFX BRy+zQhwIwjon/wpjMDrWth1qDhThVSFpT8uE1p4JnR0HDD+fAq+V6rQE3/gXVh062XKSjlXESr mGxqe0DpSX6xtw3TiO9z0DtEPAH+Km5nikfdA3GFHioemHRQp5j3YcgVeGHbHBjfTKKckBMnu5f ov73MsDQjdtBWkBtxMALtLUMUBaoK2cozD4NmK8t+1Nb3JClIVnlTruxlVm351oGRtxvM74WwgX u X-Google-Smtp-Source: AGHT+IEV69HY5VNUjdgasp5RyTvYJGHiBK9Q8etypNphuhRoELCRTehmlHf3J3TG1MXjj3gzgiMimA== X-Received: by 2002:a05:6830:6f44:b0:72b:89ca:5120 with SMTP id 46e09a7af769-72b89caa394mr9660712a34.8.1741828598072; Wed, 12 Mar 2025 18:16:38 -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 006d021491bc7-601db659ad8sm39865eaf.8.2025.03.12.18.16.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 18:16:36 -0700 (PDT) From: David Lechner Date: Wed, 12 Mar 2025 20:15:49 -0500 Subject: [PATCH 11/11] iio: adc: ad7606_par: add ad7606c chips Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250312-iio-adc-ad7606-improvements-v1-11-d1ec04847aea@baylibre.com> References: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@baylibre.com> In-Reply-To: <20250312-iio-adc-ad7606-improvements-v1-0-d1ec04847aea@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 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1692; i=dlechner@baylibre.com; h=from:subject:message-id; bh=53ONRiOABCptcxL3WGaLlWT6fl3RdJ2bBnZWG9HzvuU=; b=owEBgwJ8/ZANAwAKAR+K+IyC93wDAcsmYgBn0jHbxvaCQrQgNIs++uwe1E8a2NdIiz0yfeW/J VX1pGFeYqqJAkkEAAEKADMWIQSKc9gqah9QmQfzc4gfiviMgvd8AwUCZ9Ix2xUcZGF2aWRAbGVj aG5vbG9neS5jb20ACgkQH4r4jIL3fAMKRA/9GgURgGtjoCiunTTxdXpNNrj/BWmhaluRQC2X9fJ eaD752dGW+GSfsw9umBPkUTCEE6GgpVcEOBVbbftRobMlU0bBrD13J/QyscQY5P8mohhfcDWwWH tkS3bzAMrQXyjq/NneMV/0r8ydQcfueVycvsHi5iTtAtrv2Pr7RRRohfdNrGz6Pb75LyZZ5YJBR bfwqq/rtGK4GH3Ad2PjeLWrg18yAH3tvEPX00CrX/x5ljYryow4ab+QLtnAHAYyyBaM+1b+F1XD 63ZRvtiYoHc/018xFi0C83Zj13YkNQ5k2C8/Ly3iTwa36S7Lvpk3+fionGJeDC5AWA3cXL1kvAu rpSr9kqYcdTKZjXzFYBemcB0OZ1LF1MJbACZsEWAU1KjvS0dXHYBl/xdcEt4cn4I7aFN1cslGCU fy2UVV5WmfF7o2Zwzwmle0L9G7J6lpw29aL5wCjq628HLmqNTi3bqWbyCmgxxHNcmHVJEYv79aj DOEqXkbvCvucEUwTty8hl0l40EeVKRi3NDKagkTGtSQw/bDWhBx/fKnN29MXvLRJ4LMi3JYaEaX B5l4g/TwJA0eeRucX31+nmU2I9ztJ00RLA8Xg6z7vBApDdxIUVmCjbLk/WoK1uKW1dk1t7MxyQ2 2+LoVhzdXZFbTxxMGPKxD/bTblF/RxNAVIFju5gXhvJM= X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Add lookup table entries for ad7606c-16 and ad7606c-18 chips. Signed-off-by: David Lechner Reviewed-by: Nuno S=C3=A1 --- drivers/iio/adc/ad7606_par.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/iio/adc/ad7606_par.c b/drivers/iio/adc/ad7606_par.c index e33b07ab5eace4b78e7cf39ee7e8d9379c9f73e7..634852c4bbd2c531d6c0e02d2f1= e62db9008cad9 100644 --- a/drivers/iio/adc/ad7606_par.c +++ b/drivers/iio/adc/ad7606_par.c @@ -222,6 +222,8 @@ static const struct platform_device_id ad7606_driver_id= s[] =3D { { .name =3D "ad7606-6", .driver_data =3D (kernel_ulong_t)&ad7606_6_info, = }, { .name =3D "ad7606-8", .driver_data =3D (kernel_ulong_t)&ad7606_8_info, = }, { .name =3D "ad7606b", .driver_data =3D (kernel_ulong_t)&ad7606b_info, }, + { .name =3D "ad7606c-16", .driver_data =3D (kernel_ulong_t)&ad7606c_16_in= fo }, + { .name =3D "ad7606c-18", .driver_data =3D (kernel_ulong_t)&ad7606c_18_in= fo }, { .name =3D "ad7607", .driver_data =3D (kernel_ulong_t)&ad7607_info, }, { .name =3D "ad7608", .driver_data =3D (kernel_ulong_t)&ad7608_info, }, { .name =3D "ad7609", .driver_data =3D (kernel_ulong_t)&ad7609_info, }, @@ -235,6 +237,8 @@ static const struct of_device_id ad7606_of_match[] =3D { { .compatible =3D "adi,ad7606-6", .data =3D &ad7606_6_info }, { .compatible =3D "adi,ad7606-8", .data =3D &ad7606_8_info }, { .compatible =3D "adi,ad7606b", .data =3D &ad7606b_info }, + { .compatible =3D "adi,ad7606c-16", .data =3D &ad7606c_16_info }, + { .compatible =3D "adi,ad7606c-18", .data =3D &ad7606c_18_info }, { .compatible =3D "adi,ad7607", .data =3D &ad7607_info }, { .compatible =3D "adi,ad7608", .data =3D &ad7608_info }, { .compatible =3D "adi,ad7609", .data =3D &ad7609_info }, --=20 2.43.0