From nobody Tue Dec 16 05:57:01 2025 Received: from mx0b-00128a01.pphosted.com (mx0a-00128a01.pphosted.com [148.163.135.77]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 545F41A2622; Thu, 5 Jun 2025 15:11:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.77 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749136274; cv=none; b=WmW5yZdInXCW6h+vahBHEvXuv0OUq2ws081c28QGpfDkiu+9brgQ8ZIu38liBFiIYLE1MmXPEuVfAklpb5AqPklRM5MndAsb+YDn4KHBwrkhb5YI3eGM0LGwdHjFo2iMtcsNmvsbd30zodIP27jTRTOC5T/Co5mCqaXZTb7mke0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749136274; c=relaxed/simple; bh=SAS9KPdrdQHxXpDY6p7CdH/q5tq1rQIrV4rn7Eb5u84=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JKE52IESWnKpTjgYc7WbTlHDc23edB5sZvvNA8mRzhan0eClzn1JqLllCUiEE4tb7OD0eUANONjbvZ0MQ1WwiSHw/7lIHP+RWhau4HH2L3wvRag058NU6dGnyOmAHl9ZkwKQpiRBKIn6VPQjmqhRzF3cZU1Zppvg8M3nHqs/z88= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=O7RHUmB3; arc=none smtp.client-ip=148.163.135.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="O7RHUmB3" Received: from pps.filterd (m0375855.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 555CdYA2014189; Thu, 5 Jun 2025 11:10:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=Kx8qR pFICWjAGXPdjx+oP5SD1WFa+YnN4FVxsBxtQbY=; b=O7RHUmB3RNe5ZCUx09nwU bNJcMaT7WZilvkCF4iKmLMjO/5ztSFRLRoZ3m0uvn3qcyifbSJ4PpCZW3XZg9QuK vr3R3qJVKGyk4yKUdUFtr+NPzFjExYmsrvXtPhGHui3iHWuLlo/iKF3/7mbNGNXZ siclfIYiiSgkmO3J7Nj5IACmODf+3efOksCSeGff2/mhtYloaTWNvPutbpTYaXYr ZpoqDZNI68Ou624WfEYQclI2l1OkRslagWllmGUejnKTATgrScML4s5DnESjb3dT 1k9NHOjPJEQO0zGmoXHp7f3q7Z1JZQo7Ywa/GR/QBkh8MBodewgEagr8EzAhYhF2 w== Received: from nwd2mta4.analog.com ([137.71.173.58]) by mx0b-00128a01.pphosted.com (PPS) with ESMTPS id 47386c9pk3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 05 Jun 2025 11:10:44 -0400 (EDT) Received: from ASHBMBX9.ad.analog.com (ASHBMBX9.ad.analog.com [10.64.17.10]) by nwd2mta4.analog.com (8.14.7/8.14.7) with ESMTP id 555FAY4x004127 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 5 Jun 2025 11:10:34 -0400 Received: from ASHBMBX9.ad.analog.com (10.64.17.10) by ASHBMBX9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 5 Jun 2025 11:10:34 -0400 Received: from zeus.spd.analog.com (10.66.68.11) by ashbmbx9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server id 15.2.1748.10 via Frontend Transport; Thu, 5 Jun 2025 11:10:34 -0400 Received: from romlx5.adlk.analog.com ([10.48.65.73]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 555FA1uq027831; Thu, 5 Jun 2025 11:10:24 -0400 From: Pop Ioan Daniel To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sergiu Cuciurean , Dragos Bogdan , Antoniu Miclaus , Olivier Moysan , Javier Carrasco , Matti Vaittinen , Angelo Dureghello , Tobias Sperling , Marcelo Schmitt , Trevor Gamblin , Pop Ioan Daniel , Matteo Martelli , AngeloGioacchino Del Regno , Thomas Bonnefille , Ramona Alexandra Nechita , , , Subject: [PATCH v7 1/5] iio: adc: ad4851: ad4851_set_oversampling_ratio parameters update Date: Thu, 5 Jun 2025 18:09:39 +0300 Message-ID: <20250605150948.3091827-2-pop.ioan-daniel@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250605150948.3091827-1-pop.ioan-daniel@analog.com> References: <20250605150948.3091827-1-pop.ioan-daniel@analog.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ADIRuleOP-NewSCL: Rule Triggered X-Proofpoint-ORIG-GUID: Jr_TJkPYAKwFIZwKZE2dNjRGkKpFGq4x X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjA1MDEzMiBTYWx0ZWRfXzH+JW0Paxb64 4TnSC9QvJjadKRsRdRWVnZgf8fQhPCvApLCt5kSlZKW3GnLuD3usB7Pmdax044cra8yz460DgY/ rKMdymx8BlBn/RsS8yvUi5f+SfzDBCpPZE8e5d+8H7+dBej1f9yGPn2ufbiTyx8DwgHDNRa7Zeh ldjfsf4zpclcjgHA/ISZOz4Asz4MSpk7cr92EHV+xRSy2X4sa1YGO6ZLG5SCTrvqilPhtuLyBBF MmoIoFm0Q/1uqVAalad0ZYaIvaIM5IDbdzOTtIm2kt5TfeWSn4EmOwpuSKBI9wyU/2WK7rTZOjA kNnrSH53A+QMawkqwwA8hYizRwcORrBtdxKBbj7mO9U5by8nQYNC8FerKf9P4YBb0p6XJsCG5gB JTcn+qBYMd4WH1ffZ5MufDcFIxvHMtP44oTAa91Qr4V03IY1yvlY05kyHrN+cb87rEaTaGeh X-Authority-Analysis: v=2.4 cv=KYLSsRYD c=1 sm=1 tr=0 ts=6841b374 cx=c_pps a=3WNzaoukacrqR9RwcOSAdA==:117 a=3WNzaoukacrqR9RwcOSAdA==:17 a=6IFa9wvqVegA:10 a=IpJZQVW2AAAA:8 a=gAnH3GRIAAAA:8 a=r0u9AmH2YJ65VWHPuukA:9 a=IawgGOuG5U0WyFbmm1f5:22 X-Proofpoint-GUID: Jr_TJkPYAKwFIZwKZE2dNjRGkKpFGq4x X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-05_03,2025-06-05_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 bulkscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 mlxscore=0 mlxlogscore=999 suspectscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506050132 Content-Type: text/plain; charset="utf-8" Remove chan parameter from ad4851_set_oversampling_ratio parameters list because the parameter is not used. Reviewed-by: David Lechner Signed-off-by: Pop Ioan Daniel --- no changes in v7. drivers/iio/adc/ad4851.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/iio/adc/ad4851.c b/drivers/iio/adc/ad4851.c index 98ebc853db79..12f90aa3a156 100644 --- a/drivers/iio/adc/ad4851.c +++ b/drivers/iio/adc/ad4851.c @@ -294,7 +294,6 @@ static int ad4851_scale_fill(struct iio_dev *indio_dev) } =20 static int ad4851_set_oversampling_ratio(struct iio_dev *indio_dev, - const struct iio_chan_spec *chan, unsigned int osr) { struct ad4851_state *st =3D iio_priv(indio_dev); @@ -831,7 +830,7 @@ static int ad4851_write_raw(struct iio_dev *indio_dev, case IIO_CHAN_INFO_CALIBBIAS: return ad4851_set_calibbias(st, chan->channel, val); case IIO_CHAN_INFO_OVERSAMPLING_RATIO: - return ad4851_set_oversampling_ratio(indio_dev, chan, val); + return ad4851_set_oversampling_ratio(indio_dev, val); default: return -EINVAL; } --=20 2.34.1 From nobody Tue Dec 16 05:57:01 2025 Received: from mx0a-00128a01.pphosted.com (mx0a-00128a01.pphosted.com [148.163.135.77]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA9EE1D0F5A; Thu, 5 Jun 2025 15:11:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.77 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749136285; cv=none; b=hwAzYESVoaK1hCkU7oBDW+hhCoTPA68EYcW1yQlMYGuQJcqgBD7u6/kHOxLSa7f3Rw4+CPHLrQOAcy8km+Urww9+AhKREcGrcPXmvQPNRqbewGbD7lJRLNe3yzmzVGgz7YfNVk/KvMZMOJzPFM/ACcEvzTs6mAJHlTjDqJvqUqM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749136285; c=relaxed/simple; bh=vnDYG3F1y5twics2NHVWZutAOWqilkNCVUEhlS9M/eM=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CfTjiJZev/51/P4Ejk+dTWrH2A3kijV7WzhD2g/KCm9yxK2f2en7DaJiyNe1jb3Ww7+fivpkaGszVrG9oBov21F1KrYpi6tSX5dHWcRYreX6r1uMh0qCKv1k5K7HrSPJTsEhs9uUafhOo2oD/AnJXwQJ9ly9ckio9lvuq6ZuQFI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=vc3yWXZ2; arc=none smtp.client-ip=148.163.135.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="vc3yWXZ2" Received: from pps.filterd (m0167088.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 555EaO4T023329; Thu, 5 Jun 2025 11:10:54 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=MR6Bo XpsdS/SXAJaEvwZvfZ5xtcl5301pDnaUQZ1C1M=; b=vc3yWXZ2MsL934sMgWg1H Ev2ZTHFVDrYJlKV292ReedWCT3n2YAVWFs+FeG0hxIo9R2HWecMBk4rmtcN7bjYR OLExUBjloef3supjr/BbqrtjjXC33d3ZBi0nqyAZ687MtrTShF1/OOJUx+7k5oE5 cofofZ3cV/DMfbFB4/+C+XUbmDAWfYxRd9DY8svX/AYWKEQlalPUumb7IYLwfNCm 9v7/SSys8BGg+AXR/Ri/WoS0kusD8Er+9PD1C/ePel2ZdS6aus5LipOR72umhGxo s5Ws/PCswNhlf4D662ZNLgO7amASAGaz3F4wQCEIfeG6Le/km0rFSojDt6CYh/7G w== Received: from nwd2mta4.analog.com ([137.71.173.58]) by mx0a-00128a01.pphosted.com (PPS) with ESMTPS id 472k2u7b2c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 05 Jun 2025 11:10:52 -0400 (EDT) Received: from ASHBMBX9.ad.analog.com (ASHBMBX9.ad.analog.com [10.64.17.10]) by nwd2mta4.analog.com (8.14.7/8.14.7) with ESMTP id 555FAiiN004142 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 5 Jun 2025 11:10:44 -0400 Received: from ASHBCASHYB5.ad.analog.com (10.64.17.133) by ASHBMBX9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 5 Jun 2025 11:10:44 -0400 Received: from ASHBMBX9.ad.analog.com (10.64.17.10) by ASHBCASHYB5.ad.analog.com (10.64.17.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 5 Jun 2025 11:10:44 -0400 Received: from zeus.spd.analog.com (10.66.68.11) by ashbmbx9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server id 15.2.1748.10 via Frontend Transport; Thu, 5 Jun 2025 11:10:43 -0400 Received: from romlx5.adlk.analog.com ([10.48.65.73]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 555FA1ur027831; Thu, 5 Jun 2025 11:10:33 -0400 From: Pop Ioan Daniel To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , "David Lechner" , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sergiu Cuciurean , "Dragos Bogdan" , Antoniu Miclaus , Olivier Moysan , Javier Carrasco , Matti Vaittinen , Angelo Dureghello , Marcelo Schmitt , Tobias Sperling , Trevor Gamblin , "Matteo Martelli" , Thomas Bonnefille , =?UTF-8?q?Jo=C3=A3o=20Paulo=20Gon=C3=A7alves?= , Alisa-Dariana Roman , Ramona Alexandra Nechita , Ioan Daniel , , , Subject: [PATCH v7 2/5] iio: backend: update iio_backend_oversampling_ratio_set Date: Thu, 5 Jun 2025 18:09:40 +0300 Message-ID: <20250605150948.3091827-3-pop.ioan-daniel@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250605150948.3091827-1-pop.ioan-daniel@analog.com> References: <20250605150948.3091827-1-pop.ioan-daniel@analog.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ADIRuleOP-NewSCL: Rule Triggered X-Proofpoint-GUID: wmgQPYtQoLOBQvvMCMmjJl6E8qDxuwbN X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjA1MDEzMiBTYWx0ZWRfX51eGc7d6RUL4 D2qoOLBZmY9lWBpTBMblziPiXaHnhuEhIuuHUR4Rp/+WiwN5oEoF0Fz4XTGJlLsa/fh7ZiSm1+K YmqkX/5oQIgzYk0lOazeyswKM6+KRy0b4OIXUnKFZY0XN2HuF7M6BqhDbRzA70QdTMtqFWug7lH vxEKx8fAmxqAGbbZlKROLciXlkwcuk471IjwWzmbWW45C7NnWB4VUqKClm+p7rgyath4DVNvNCf M7VHU3xHYulJhbWLO8jhYeAXisX1C+oiz2GlD2QZReJ9Ai8aSoxgtRw1CLUilAWTvqqb141ORe3 VHS8BsosKPXbWe9Xl7kozrZZzGmYUiQPMT+2CB0wU1W9X7rEJh9nI3s7ypot1CU7/R7fs8qyn0L TTpVTYmc6paiw+6aeNFFQI+zYB9/Z0OKyFyrBQCPEkQfCG3sC9S8H31u+ktF9lYnkoagln1i X-Proofpoint-ORIG-GUID: wmgQPYtQoLOBQvvMCMmjJl6E8qDxuwbN X-Authority-Analysis: v=2.4 cv=Fv4F/3rq c=1 sm=1 tr=0 ts=6841b37c cx=c_pps a=3WNzaoukacrqR9RwcOSAdA==:117 a=3WNzaoukacrqR9RwcOSAdA==:17 a=IkcTkHD0fZMA:10 a=6IFa9wvqVegA:10 a=IpJZQVW2AAAA:8 a=gAnH3GRIAAAA:8 a=ZoRCdJloile0LmdOwKkA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=IawgGOuG5U0WyFbmm1f5:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-05_03,2025-06-05_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 bulkscore=0 mlxscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506050132 Add chan parameter to iio_backend_oversampling_ratio_set() to allow for contexts where the channel must be specified. Modify all existing users. Reviewed-by: David Lechner Reviewed-by: Nuno S=C3=A1 Signed-off-by: Pop Ioan Daniel --- no changes in v7. drivers/iio/adc/ad4851.c | 3 ++- drivers/iio/adc/adi-axi-adc.c | 3 ++- drivers/iio/industrialio-backend.c | 3 ++- include/linux/iio/backend.h | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/iio/adc/ad4851.c b/drivers/iio/adc/ad4851.c index 12f90aa3a156..f395fa9f654a 100644 --- a/drivers/iio/adc/ad4851.c +++ b/drivers/iio/adc/ad4851.c @@ -320,7 +320,8 @@ static int ad4851_set_oversampling_ratio(struct iio_dev= *indio_dev, return ret; } =20 - ret =3D iio_backend_oversampling_ratio_set(st->back, osr); + /* Channel is ignored by the backend being used here */ + ret =3D iio_backend_oversampling_ratio_set(st->back, 0, osr); if (ret) return ret; =20 diff --git a/drivers/iio/adc/adi-axi-adc.c b/drivers/iio/adc/adi-axi-adc.c index 4116c44197b8..9e8c30230791 100644 --- a/drivers/iio/adc/adi-axi-adc.c +++ b/drivers/iio/adc/adi-axi-adc.c @@ -381,7 +381,8 @@ static int axi_adc_ad485x_data_size_set(struct iio_back= end *back, } =20 static int axi_adc_ad485x_oversampling_ratio_set(struct iio_backend *back, - unsigned int ratio) + unsigned int chan, + unsigned int ratio) { struct adi_axi_adc_state *st =3D iio_backend_get_priv(back); =20 diff --git a/drivers/iio/industrialio-backend.c b/drivers/iio/industrialio-= backend.c index c1eb9ef9db08..a4e3e54fecb1 100644 --- a/drivers/iio/industrialio-backend.c +++ b/drivers/iio/industrialio-backend.c @@ -720,9 +720,10 @@ EXPORT_SYMBOL_NS_GPL(iio_backend_data_size_set, "IIO_B= ACKEND"); * 0 on success, negative error number on failure. */ int iio_backend_oversampling_ratio_set(struct iio_backend *back, + unsigned int chan, unsigned int ratio) { - return iio_backend_op_call(back, oversampling_ratio_set, ratio); + return iio_backend_op_call(back, oversampling_ratio_set, chan, ratio); } EXPORT_SYMBOL_NS_GPL(iio_backend_oversampling_ratio_set, "IIO_BACKEND"); =20 diff --git a/include/linux/iio/backend.h b/include/linux/iio/backend.h index e59d909cb659..dbf4e4a5f4b1 100644 --- a/include/linux/iio/backend.h +++ b/include/linux/iio/backend.h @@ -144,7 +144,7 @@ struct iio_backend_ops { enum iio_backend_interface_type *type); int (*data_size_set)(struct iio_backend *back, unsigned int size); int (*oversampling_ratio_set)(struct iio_backend *back, - unsigned int ratio); + unsigned int chan, unsigned int ratio); int (*read_raw)(struct iio_backend *back, struct iio_chan_spec const *chan, int *val, int *val2, long mask); @@ -209,6 +209,7 @@ int iio_backend_interface_type_get(struct iio_backend *= back, enum iio_backend_interface_type *type); int iio_backend_data_size_set(struct iio_backend *back, unsigned int size); int iio_backend_oversampling_ratio_set(struct iio_backend *back, + unsigned int chan, unsigned int ratio); int iio_backend_read_raw(struct iio_backend *back, struct iio_chan_spec const *chan, int *val, int *val2, --=20 2.34.1 From nobody Tue Dec 16 05:57:01 2025 Received: from mx0a-00128a01.pphosted.com (mx0a-00128a01.pphosted.com [148.163.135.77]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5E2981E500C; Thu, 5 Jun 2025 15:11:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.77 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749136285; cv=none; b=O96d7T7auLVVuRdF9RR2tWq3fSWgRLlfUcH/4s0K1K5YWumTHTpNQEF3evXLbSbN5aw3vy64Mt9rda/0/bh0mlf/jVQEiTy1Coz6jV77rl1y8MsBdw4/otZcsPHurkL/KdRaaTzZSb3BFaqWChfBmFB+4dx56lBOyNWnfW8Rrww= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749136285; c=relaxed/simple; bh=2JyA02+J17gKDs3P6bAfJ+EgQIB2HUiMcEmOaQpzOZc=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GiraqAEmKEkcd9MnQMT34m2/Lj74bfR7UhcP2gRniUx9ONALYdkeE3lnHSH1ZGDc8Fovl9fkQDuYMCOysCs/EC+2WxHW9TVkRw92Q7COWbzKPNbaATHU39552zrWdRrUQ/eZz76L25rI3FgwKngqdBpn133YeyaTnEjAz68QOPE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=VPvDNEWN; arc=none smtp.client-ip=148.163.135.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="VPvDNEWN" Received: from pps.filterd (m0167089.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 555CUEv5028860; Thu, 5 Jun 2025 11:10:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=SoRsU e701uAXtwjzKmJ7ZwX9X02mhtHa6W5vXKxvKe0=; b=VPvDNEWNDvjDdbnf12xbA M8yIG3ux9ZFgk/KlgIyYueXV/SpX2yxt/gbafOPwkkVlD73XZhqDCnEO5CYDPU1g /Be3RAbZLb07xcSU0L/2AMtPsbfXyFrsJXBWcPH4rdPMh4QAnGQs9Zn0Dvl2zClx Rffhionu8Tkxh5JnrmKq3i1oVxsAFB8r2K4LGbowEqy9RpjVYERiwdtUpCPBd4xh ZR0C/gg5Z1LGSF8FvdfOsnAXQgpt1NzgInJHCU9Va6jfPOWOCcG2ZbT6iN1jCiRM 2cnw5WouUZJr66rNwYaJoKfGjckicA8+vwHcVrSDbZP10eIsrS8bdTU/baysXGbv g== Received: from nwd2mta4.analog.com ([137.71.173.58]) by mx0a-00128a01.pphosted.com (PPS) with ESMTPS id 471g9j8jes-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 05 Jun 2025 11:10:53 -0400 (EDT) Received: from ASHBMBX9.ad.analog.com (ASHBMBX9.ad.analog.com [10.64.17.10]) by nwd2mta4.analog.com (8.14.7/8.14.7) with ESMTP id 555FApaS004157 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 5 Jun 2025 11:10:51 -0400 Received: from ASHBCASHYB4.ad.analog.com (10.64.17.132) by ASHBMBX9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 5 Jun 2025 11:10:51 -0400 Received: from ASHBMBX9.ad.analog.com (10.64.17.10) by ASHBCASHYB4.ad.analog.com (10.64.17.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 5 Jun 2025 11:10:51 -0400 Received: from zeus.spd.analog.com (10.66.68.11) by ashbmbx9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server id 15.2.1748.10 via Frontend Transport; Thu, 5 Jun 2025 11:10:51 -0400 Received: from romlx5.adlk.analog.com ([10.48.65.73]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 555FA1us027831; Thu, 5 Jun 2025 11:10:43 -0400 From: Pop Ioan Daniel To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , "David Lechner" , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sergiu Cuciurean , "Dragos Bogdan" , Antoniu Miclaus , Olivier Moysan , Javier Carrasco , Matti Vaittinen , Guillaume Stols , "Tobias Sperling" , Marcelo Schmitt , Trevor Gamblin , "Esteban Blanc" , =?UTF-8?q?Jo=C3=A3o=20Paulo=20Gon=C3=A7alves?= , Ioan Daniel , , , Subject: [PATCH v7 3/5] iio: adc: adi-axi-adc: add axi_adc_oversampling_ratio_set Date: Thu, 5 Jun 2025 18:09:41 +0300 Message-ID: <20250605150948.3091827-4-pop.ioan-daniel@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250605150948.3091827-1-pop.ioan-daniel@analog.com> References: <20250605150948.3091827-1-pop.ioan-daniel@analog.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ADIRuleOP-NewSCL: Rule Triggered X-Proofpoint-GUID: 4Uyu86V5lcmuTryf4k9WIQPrjTysNjXN X-Authority-Analysis: v=2.4 cv=DfIXqutW c=1 sm=1 tr=0 ts=6841b37d cx=c_pps a=3WNzaoukacrqR9RwcOSAdA==:117 a=3WNzaoukacrqR9RwcOSAdA==:17 a=IkcTkHD0fZMA:10 a=6IFa9wvqVegA:10 a=IpJZQVW2AAAA:8 a=gAnH3GRIAAAA:8 a=hj20C08OGkFrgq5-ZMUA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=IawgGOuG5U0WyFbmm1f5:22 X-Proofpoint-ORIG-GUID: 4Uyu86V5lcmuTryf4k9WIQPrjTysNjXN X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjA1MDEzMiBTYWx0ZWRfX0LGj/hnlDvkA 65cb7c90R1clvbInQXjZ2oXmhClH8sP7W2FZV9bKSA+43l7GVOVhO3lqNtj76onw7uZ7SyxtWhI b7A4j6bYmr4Lf4flrFTalBx9b4IK4enTMehOqlRb+LdGE6dLfSkYA4heqds31aK5HuSAjWQEx0X EIYWnNILqr8l6ypkpyC9Xj2B3Kqz3e6OTd9XYMWrZlH0tPj3QMueCzg+fi7wuIPxy9J9VtND2iz xK1niCkm8vprkWslFFooSS/dQzEQ6ohv3oH/GM8z2DwGkoslALa/yZJ6WGWmEi9McerG+NOnpMg 1TmiJKxucgA6ld6xE4n6qU0u539T5vZWf72BA7tYrTsnXxA0Zhpm5Lu67Y0Hz6rr5J926IafZ4h H5ksAEGtxUn88sv/pi5udETWZYC/cegCiWMcGD4ygFMdrbXSmPg2K4W+Pr5BKyqnAQAqIO+d X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-05_03,2025-06-05_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 suspectscore=0 adultscore=0 mlxlogscore=999 spamscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 bulkscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506050132 Add support for setting decimation rate. Reviewed-by: David Lechner Reviewed-by: Nuno S=C3=A1 Signed-off-by: Pop Ioan Daniel --- no changes in v7. drivers/iio/adc/adi-axi-adc.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/iio/adc/adi-axi-adc.c b/drivers/iio/adc/adi-axi-adc.c index 9e8c30230791..0b8673668745 100644 --- a/drivers/iio/adc/adi-axi-adc.c +++ b/drivers/iio/adc/adi-axi-adc.c @@ -80,6 +80,9 @@ #define ADI_AXI_ADC_REG_CHAN_CTRL_3(c) (0x0418 + (c) * 0x40) #define ADI_AXI_ADC_CHAN_PN_SEL_MASK GENMASK(19, 16) =20 +#define ADI_AXI_ADC_REG_CHAN_USR_CTRL_2(c) (0x0424 + (c) * 0x40) +#define ADI_AXI_ADC_CHAN_USR_CTRL_2_DEC_RATE_N_MASK GENMASK(15, 0) + /* IO Delays */ #define ADI_AXI_ADC_REG_DELAY(l) (0x0800 + (l) * 0x4) #define AXI_ADC_DELAY_CTRL_MASK GENMASK(4, 0) @@ -242,6 +245,19 @@ static int axi_adc_test_pattern_set(struct iio_backend= *back, } } =20 +static int axi_adc_oversampling_ratio_set(struct iio_backend *back, + unsigned int chan, + unsigned int rate) +{ + struct adi_axi_adc_state *st =3D iio_backend_get_priv(back); + + return regmap_update_bits(st->regmap, + ADI_AXI_ADC_REG_CHAN_USR_CTRL_2(chan), + ADI_AXI_ADC_CHAN_USR_CTRL_2_DEC_RATE_N_MASK, + FIELD_PREP(ADI_AXI_ADC_CHAN_USR_CTRL_2_DEC_RATE_N_MASK, + rate)); +} + static int axi_adc_read_chan_status(struct adi_axi_adc_state *st, unsigned= int chan, unsigned int *status) { @@ -550,6 +566,7 @@ static const struct iio_backend_ops adi_axi_adc_ops =3D= { .test_pattern_set =3D axi_adc_test_pattern_set, .chan_status =3D axi_adc_chan_status, .interface_type_get =3D axi_adc_interface_type_get, + .oversampling_ratio_set =3D axi_adc_oversampling_ratio_set, .debugfs_reg_access =3D iio_backend_debugfs_ptr(axi_adc_reg_access), .debugfs_print_chan_status =3D iio_backend_debugfs_ptr(axi_adc_debugfs_pr= int_chan_status), }; --=20 2.34.1 From nobody Tue Dec 16 05:57:01 2025 Received: from mx0a-00128a01.pphosted.com (mx0a-00128a01.pphosted.com [148.163.135.77]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C623277819; Thu, 5 Jun 2025 15:11:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.77 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749136291; cv=none; b=dEmE5urjmjyy/p6b4s4xr7psAIVPhTWzdl1o2dWZNSGJWDIy1KVfXWwKERy/8lBFmSx4VWDYyuGdezhMxAorsDuPwuGI2e8mJ2ngb+JO3sENT1DgC9JwHa0ia8Te9POII3oRyuUtBo5+/9d9zbVsvKVRUisfAsve1R2rMiesH4k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749136291; c=relaxed/simple; bh=5ByCBNtaK+LgpgvpKKzcfc261k1mNXaDpdqFzomi9iY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JFqyG06TPZFQskLdU6zXhq8Z029zIi6ZZFUhFC8+z//+jQxpahWUAJe9C4iaOKNVLp7QgAmfUesdLxq6hEwG5ggpWzJcr2DtcKosg5xBmPyjC8COXQF1aMaWXg60d0vRSWeS5yZ7Xu15dbTcuIHBgUxLbFfaos0eh4ybSqxRTKg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=Rm0iZ/qK; arc=none smtp.client-ip=148.163.135.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="Rm0iZ/qK" Received: from pps.filterd (m0167089.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 555DDGtV028924; Thu, 5 Jun 2025 11:11:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=Sr4Gh eLiPdRY5QMddXSBzGUdMsfxWcpqgC1VQoc31yE=; b=Rm0iZ/qKFqSfOzejSVCDR VyLd5dP0c/uGHr8ktsK/yz61GHtOYCuiIKwbb5pVnV5t2SqZbSU60MbKOl4r6rE0 widnhnjy/5rtaTya/KncR39ztEMIG0ZZi7JTJE7Vme7e9XW5CRv2LzYDaW5+gayE FYxoXfLsqHmSrhFx5eO18LuG/uNeKgVsGMQyiwylKUSeVKezTs43no1+x3zU3BOh MoA4rS2gQ8rGB9m4TycF7TNflrGAlgWZfIXM78m8cjMxXuqidhBTEI/EzeXhrOuz sDigyXq3Ajmlp1E2ECz1nfFe5NBqzKI8Ilvkx5k4dGaENrrO+54w4BZ88cAm1kKn w== Received: from nwd2mta3.analog.com ([137.71.173.56]) by mx0a-00128a01.pphosted.com (PPS) with ESMTPS id 471g9j8jfy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 05 Jun 2025 11:11:05 -0400 (EDT) Received: from ASHBMBX8.ad.analog.com (ASHBMBX8.ad.analog.com [10.64.17.5]) by nwd2mta3.analog.com (8.14.7/8.14.7) with ESMTP id 555FB4d8046975 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 5 Jun 2025 11:11:04 -0400 Received: from ASHBCASHYB4.ad.analog.com (10.64.17.132) by ASHBMBX8.ad.analog.com (10.64.17.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 5 Jun 2025 11:11:04 -0400 Received: from ASHBMBX9.ad.analog.com (10.64.17.10) by ASHBCASHYB4.ad.analog.com (10.64.17.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 5 Jun 2025 11:11:04 -0400 Received: from zeus.spd.analog.com (10.66.68.11) by ashbmbx9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server id 15.2.1748.10 via Frontend Transport; Thu, 5 Jun 2025 11:11:02 -0400 Received: from romlx5.adlk.analog.com ([10.48.65.73]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 555FA1ut027831; Thu, 5 Jun 2025 11:10:52 -0400 From: Pop Ioan Daniel To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , "David Lechner" , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sergiu Cuciurean , "Dragos Bogdan" , Antoniu Miclaus , Olivier Moysan , Javier Carrasco , Matti Vaittinen , Tobias Sperling , Marcelo Schmitt , Trevor Gamblin , Ramona Alexandra Nechita , Herve Codina , "Ioan Daniel" , , , CC: Krzysztof Kozlowski Subject: [PATCH v7 4/5] dt-bindings: iio: adc: add ad7405 Date: Thu, 5 Jun 2025 18:09:42 +0300 Message-ID: <20250605150948.3091827-5-pop.ioan-daniel@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250605150948.3091827-1-pop.ioan-daniel@analog.com> References: <20250605150948.3091827-1-pop.ioan-daniel@analog.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ADIRuleOP-NewSCL: Rule Triggered X-Proofpoint-GUID: NYvmfvo_RkRiIzrvC2T9MUcHw_PV3OCG X-Authority-Analysis: v=2.4 cv=DfIXqutW c=1 sm=1 tr=0 ts=6841b389 cx=c_pps a=PpDZqlmH/M8setHirZLBMw==:117 a=PpDZqlmH/M8setHirZLBMw==:17 a=IkcTkHD0fZMA:10 a=6IFa9wvqVegA:10 a=gEfo2CItAAAA:8 a=gAnH3GRIAAAA:8 a=KKAkSRfTAAAA:8 a=BlUfrHhC_0NcX1HyLxIA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=sptkURWiP4Gy88Gu7hUp:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: NYvmfvo_RkRiIzrvC2T9MUcHw_PV3OCG X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjA1MDEzMiBTYWx0ZWRfXwkMvfK0vVTcz fcXSoy1lQYPvXzhLtFNbLxGZsens18WbjjQ4ttxECuqEyldfbuEjr4GKNhQnyJ/qFH7XatzdcGR Ewg6I53KJmxsvT2rEBLOVWZgvd5JxnMapOlTTP1T9sWZuJlR4TAZOiI+9O5JupsfKRt1NgIcW5/ oqWRczPfxMU8KzCjnmntUqhIFWG3O7pwB4Lfwhg/hTC5ctH3L5bow34PI9gXSf8FhzOF3+8bqVl FovXmamLWUaafkVGTTq4fC56aSn9XLwS4ZEAvt861mGgqhJDFC/iHuoq7zU1dj4yt7wbebzoo4D iX7WDJ2x3G+Cyd6oAMSQtM6JYbB/nos3X00jWvUu9LYVHLEbTZ7zmRZzR/sLher9HWqKiE2ncJ2 iomOWn1oODRjo/0Cn84yw14PsuJLSPxC8Y3BSKyKKRyfrS9wysCCCRRW70R/mBVDRlAOQzFY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-05_03,2025-06-05_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 malwarescore=0 clxscore=1011 priorityscore=1501 suspectscore=0 adultscore=0 mlxlogscore=999 spamscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 bulkscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506050132 Add devicetree bindings for ad7405/adum770x family. Reviewed-by: Krzysztof Kozlowski Signed-off-by: Pop Ioan Daniel --- changes in v7: - add Reviewed-by: tag .../bindings/iio/adc/adi,ad7405.yaml | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7405.ya= ml diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7405.yaml b/Do= cumentation/devicetree/bindings/iio/adc/adi,ad7405.yaml new file mode 100644 index 000000000000..57f097025705 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7405.yaml @@ -0,0 +1,60 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +# Copyright 2025 Analog Devices Inc. +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/adc/adi,ad7405.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Analog Devices AD7405 family + +maintainers: + - Dragos Bogdan + - Pop Ioan Daniel + +description: | + Analog Devices AD7405 is a high performance isolated ADC, 1-channel, + 16-bit with a second-order =CE=A3-=CE=94 modulator that converts an anal= og input signal + into a high speed, single-bit data stream. + + https://www.analog.com/media/en/technical-documentation/data-sheets/ad74= 05.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/adum= 7701.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/adum= 7702.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/ADuM= 7703.pdf + +properties: + compatible: + enum: + - adi,ad7405 + - adi,adum7701 + - adi,adum7702 + - adi,adum7703 + + clocks: + maxItems: 1 + + vdd1-supply: true + + vdd2-supply: true + + io-backends: + maxItems: 1 + +required: + - compatible + - clocks + - vdd1-supply + - vdd2-supply + - io-backends + +additionalProperties: false + +examples: + - | + adc { + compatible =3D "adi,ad7405"; + clocks =3D <&axi_clk_gen 0>; + vdd1-supply =3D <&vdd1>; + vdd2-supply =3D <&vdd2>; + io-backends =3D <&axi_adc>; + }; +... --=20 2.34.1 From nobody Tue Dec 16 05:57:01 2025 Received: from mx0a-00128a01.pphosted.com (mx0a-00128a01.pphosted.com [148.163.135.77]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 50808226D07; Thu, 5 Jun 2025 15:11:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.77 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749136304; cv=none; b=FxYK+rvZzs3SQWjcO8t9wMQt7rgtZiwyvp+xfhFIfFGP2jzdKS1V8+z7Lkz1MUbGx1FCzM4NGIO5cdKA6X21MRY2jTPYDu5e/O1PL7qj22tsPp4glR2FkNzubqfMsFLYMAnbbhvT6gDO9qTayIeWSr5BGqdEhwKqynSeCKeCtBc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749136304; c=relaxed/simple; bh=AkE6eikqbRICrJDgdyEY4dj2dy8Ahj5jbvh6y8zteJs=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=LkhWeqS7e+4Tj7t9jvtFF4ZexqsW9dGnDbArTVHwVrJgP+furEPLfaWP/VUbKYsYdRaxBup0+xsnH0N7fyOYqpiqzkqf9nSAMtP794sYu+6vZq+MBXk+NvodRw3T2POl8oHdZpLhC8hh8LfjqewwSKOF126FQsWBQ3yRPDigvIY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=A3NvI3Rb; arc=none smtp.client-ip=148.163.135.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="A3NvI3Rb" Received: from pps.filterd (m0167088.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 555C4bFX022062; Thu, 5 Jun 2025 11:11:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=36mB5 K/Es1fvkJdJgnEFU1eeWBa1NFggy8+45jAJItY=; b=A3NvI3RbHdR9Rl1s/CWaj wxGBn1ITcW05s8AasGUHb78I42uwy5RUPiESskvfJef04fgX8a0u2N9OQgaHudOV SCzyTLrD+2mZy6Y7sycF0LpTt/M8uyOfYHk4uGuSnWBlJYUHGeG8N8xEW5lgGOV7 JziwFK4+ynUggeLZ/7a9snebeD3jHRH+JDroX63HpqdqQNcsqVM+m3A9Z+TjqSAX E2Wf86li2/Gat7xYjxV89D6jd9bVk2VGY64D11Bq3PbRTCBe/I6l3eRTYi3TVwEK 7LDgt5DoPu08ovxhU/lPtaYlZsuEGre7GrxFMr67Jf1/YV3QH0b56enlCgmwUb+G Q== Received: from nwd2mta4.analog.com ([137.71.173.58]) by mx0a-00128a01.pphosted.com (PPS) with ESMTPS id 472k2u7b4r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 05 Jun 2025 11:11:15 -0400 (EDT) Received: from ASHBMBX9.ad.analog.com (ASHBMBX9.ad.analog.com [10.64.17.10]) by nwd2mta4.analog.com (8.14.7/8.14.7) with ESMTP id 555FBEAE004187 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 5 Jun 2025 11:11:14 -0400 Received: from ASHBCASHYB4.ad.analog.com (10.64.17.132) by ASHBMBX9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 5 Jun 2025 11:11:14 -0400 Received: from ASHBMBX9.ad.analog.com (10.64.17.10) by ASHBCASHYB4.ad.analog.com (10.64.17.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 5 Jun 2025 11:11:14 -0400 Received: from zeus.spd.analog.com (10.66.68.11) by ashbmbx9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server id 15.2.1748.10 via Frontend Transport; Thu, 5 Jun 2025 11:11:14 -0400 Received: from romlx5.adlk.analog.com ([10.48.65.73]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 555FA1uu027831; Thu, 5 Jun 2025 11:11:04 -0400 From: Pop Ioan Daniel To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , "David Lechner" , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sergiu Cuciurean , "Dragos Bogdan" , Antoniu Miclaus , Olivier Moysan , Javier Carrasco , Matti Vaittinen , Angelo Dureghello , Guillaume Stols , Tobias Sperling , Marcelo Schmitt , Trevor Gamblin , Alisa-Dariana Roman , Ramona Alexandra Nechita , Herve Codina , AngeloGioacchino Del Regno , "Thomas Bonnefille" , =?UTF-8?q?Jo=C3=A3o=20Paulo=20Gon=C3=A7alves?= , Ioan Daniel , , , Subject: [PATCH v7 5/5] iio: adc: ad7405: add ad7405 driver Date: Thu, 5 Jun 2025 18:09:43 +0300 Message-ID: <20250605150948.3091827-6-pop.ioan-daniel@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250605150948.3091827-1-pop.ioan-daniel@analog.com> References: <20250605150948.3091827-1-pop.ioan-daniel@analog.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ADIRuleOP-NewSCL: Rule Triggered X-Proofpoint-GUID: ffjLrwqzCg0J9TRbcbDVVB9irkep3AZM X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjA1MDEzMiBTYWx0ZWRfXz64ENhkxiK4G emP9L3AOgC7LZaDG/BQ/0xLQS/OoKkDtOy61nQchMGcxfM271/NnB49/gCdFHeLOErlOlt+snvA YfyOWAvAiefBuOZzOLJ1FoCIH+AAgm0XmEwu9X3REnv0d0u88ouM/ia5T08/PnLFacBCtEfLY1g aoedfcwaRjsYm8MaZfH0hdjL7abVxh8dZpupTaO0C0PEYS9iQHxm/EBwkNCfY/ZHHIoBD9ggvG1 OsJgfuf4HAgjtLaLhcpA+nOPQ5ZsszOWH8ATbFFwVp+vYJyS/mnfb3o5gwuUHcADMn6r21p85Lm L4Wn+9wF7jvIaklHkxUTXmfTuB7PYCWvvxEMUDeNiZ+1xbiI46IZt1tHtxLzz6nHhJ85Pu1s9fv 4/grXSpbopYNzqvUsymu4NlcriAerQxcQxoL55DexufuKkRks2cd7zJO6po4ied+IjJWaUpM X-Proofpoint-ORIG-GUID: ffjLrwqzCg0J9TRbcbDVVB9irkep3AZM X-Authority-Analysis: v=2.4 cv=Fv4F/3rq c=1 sm=1 tr=0 ts=6841b393 cx=c_pps a=3WNzaoukacrqR9RwcOSAdA==:117 a=3WNzaoukacrqR9RwcOSAdA==:17 a=IkcTkHD0fZMA:10 a=6IFa9wvqVegA:10 a=gAnH3GRIAAAA:8 a=xMrnY01I1BIIJWUPG5oA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-05_03,2025-06-05_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 phishscore=0 clxscore=1011 lowpriorityscore=0 priorityscore=1501 bulkscore=0 mlxscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506050132 Add support for the AD7405/ADUM770x, a high performance isolated ADC, 1-channel, 16-bit with a second-order =CE=A3-=CE=94 modulator that converts= an analog input signal into a high speed, single-bit data stream. Signed-off-by: Pop Ioan Daniel Reviewed-by: Nuno S=C3=A1 --- changes in v7: - replace kernel.h with math64.h that define DIV_ROUND_CLOSEST_ULL() - restructure ad7405_set_dec_rate function - fix indentation drivers/iio/adc/Kconfig | 10 ++ drivers/iio/adc/Makefile | 1 + drivers/iio/adc/ad7405.c | 259 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 270 insertions(+) create mode 100644 drivers/iio/adc/ad7405.c diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig index ad06cf556785..43af2070e27f 100644 --- a/drivers/iio/adc/Kconfig +++ b/drivers/iio/adc/Kconfig @@ -251,6 +251,16 @@ config AD7380 To compile this driver as a module, choose M here: the module will be called ad7380. =20 +config AD7405 + tristate "Analog Device AD7405 ADC Driver" + depends on IIO_BACKEND + help + Say yes here to build support for Analog Devices AD7405, ADUM7701, + ADUM7702, ADUM7703 analog to digital converters (ADC). + + To compile this driver as a module, choose M here: the module will be + called ad7405. + config AD7476 tristate "Analog Devices AD7476 1-channel ADCs driver and other similar d= evices from AD and TI" depends on SPI diff --git a/drivers/iio/adc/Makefile b/drivers/iio/adc/Makefile index 07d4b832c42e..8115f30b7862 100644 --- a/drivers/iio/adc/Makefile +++ b/drivers/iio/adc/Makefile @@ -26,6 +26,7 @@ obj-$(CONFIG_AD7291) +=3D ad7291.o obj-$(CONFIG_AD7292) +=3D ad7292.o obj-$(CONFIG_AD7298) +=3D ad7298.o obj-$(CONFIG_AD7380) +=3D ad7380.o +obj-$(CONFIG_AD7405) +=3D ad7405.o obj-$(CONFIG_AD7476) +=3D ad7476.o obj-$(CONFIG_AD7606_IFACE_PARALLEL) +=3D ad7606_par.o obj-$(CONFIG_AD7606_IFACE_SPI) +=3D ad7606_spi.o diff --git a/drivers/iio/adc/ad7405.c b/drivers/iio/adc/ad7405.c new file mode 100644 index 000000000000..c07b90fbd429 --- /dev/null +++ b/drivers/iio/adc/ad7405.c @@ -0,0 +1,259 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Analog Devices AD7405 driver + * + * Copyright 2025 Analog Devices Inc. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +static const unsigned int ad7405_dec_rates_range[] =3D { + 32, 1, 4096, +}; + +struct ad7405_chip_info { + const char *name; + struct iio_chan_spec channel; + const unsigned int full_scale_mv; +}; + +struct ad7405_state { + struct iio_backend *back; + const struct ad7405_chip_info *info; + unsigned int ref_frequency; + unsigned int dec_rate; +}; + +static int ad7405_set_dec_rate(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan, + unsigned int dec_rate) +{ + struct ad7405_state *st =3D iio_priv(indio_dev); + int ret; + + if (dec_rate > 4096 || dec_rate < 32) + return -EINVAL; + + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; + + ret =3D iio_backend_oversampling_ratio_set(st->back, chan->scan_index, de= c_rate); + iio_device_release_direct(indio_dev); + + if (ret < 0) + return ret; + + st->dec_rate =3D dec_rate; + + return 0; +} + +static int ad7405_read_raw(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan, int *val, + int *val2, long info) +{ + struct ad7405_state *st =3D iio_priv(indio_dev); + + switch (info) { + case IIO_CHAN_INFO_SCALE: + *val =3D st->info->full_scale_mv; + *val2 =3D st->info->channel.scan_type.realbits - 1; + return IIO_VAL_FRACTIONAL_LOG2; + case IIO_CHAN_INFO_OVERSAMPLING_RATIO: + *val =3D st->dec_rate; + return IIO_VAL_INT; + case IIO_CHAN_INFO_SAMP_FREQ: + *val =3D DIV_ROUND_CLOSEST_ULL(st->ref_frequency, st->dec_rate); + return IIO_VAL_INT; + case IIO_CHAN_INFO_OFFSET: + *val =3D -(1 << (st->info->channel.scan_type.realbits - 1)); + return IIO_VAL_INT; + default: + return -EINVAL; + } +} + +static int ad7405_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, int val, + int val2, long info) +{ + switch (info) { + case IIO_CHAN_INFO_OVERSAMPLING_RATIO: + if (val < 0) + return -EINVAL; + return ad7405_set_dec_rate(indio_dev, chan, val); + default: + return -EINVAL; + } +} + +static int ad7405_read_avail(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + const int **vals, int *type, int *length, + long info) +{ + switch (info) { + case IIO_CHAN_INFO_OVERSAMPLING_RATIO: + *vals =3D ad7405_dec_rates_range; + *type =3D IIO_VAL_INT; + return IIO_AVAIL_RANGE; + default: + return -EINVAL; + } +} + +static const struct iio_info ad7405_iio_info =3D { + .read_raw =3D &ad7405_read_raw, + .write_raw =3D &ad7405_write_raw, + .read_avail =3D &ad7405_read_avail, +}; + +#define AD7405_IIO_CHANNEL { \ + .type =3D IIO_VOLTAGE, \ + .info_mask_shared_by_type =3D BIT(IIO_CHAN_INFO_SCALE) | \ + BIT(IIO_CHAN_INFO_OFFSET), \ + .info_mask_shared_by_all =3D IIO_CHAN_INFO_SAMP_FREQ | \ + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ + .info_mask_shared_by_all_available =3D \ + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ + .indexed =3D 1, \ + .channel =3D 0, \ + .channel2 =3D 1, \ + .differential =3D 1, \ + .scan_index =3D 0, \ + .scan_type =3D { \ + .sign =3D 'u', \ + .realbits =3D 16, \ + .storagebits =3D 16, \ + }, \ +} + +static const struct ad7405_chip_info ad7405_chip_info =3D { + .name =3D "ad7405", + .full_scale_mv =3D 320, + .channel =3D AD7405_IIO_CHANNEL, +}; + +static const struct ad7405_chip_info adum7701_chip_info =3D { + .name =3D "adum7701", + .full_scale_mv =3D 320, + .channel =3D AD7405_IIO_CHANNEL, +}; + +static const struct ad7405_chip_info adum7702_chip_info =3D { + .name =3D "adum7702", + .full_scale_mv =3D 64, + .channel =3D AD7405_IIO_CHANNEL, +}; + +static const struct ad7405_chip_info adum7703_chip_info =3D { + .name =3D "adum7703", + .full_scale_mv =3D 320, + .channel =3D AD7405_IIO_CHANNEL, +}; + +static const char * const ad7405_power_supplies[] =3D { + "vdd1", "vdd2", +}; + +static int ad7405_probe(struct platform_device *pdev) +{ + struct device *dev =3D &pdev->dev; + struct iio_dev *indio_dev; + struct ad7405_state *st; + struct clk *clk; + int ret; + + indio_dev =3D devm_iio_device_alloc(dev, sizeof(*st)); + if (!indio_dev) + return -ENOMEM; + + st =3D iio_priv(indio_dev); + + st->info =3D device_get_match_data(dev); + if (!st->info) + return dev_err_probe(dev, -EINVAL, "no chip info\n"); + + ret =3D devm_regulator_bulk_get_enable(dev, ARRAY_SIZE(ad7405_power_suppl= ies), + ad7405_power_supplies); + if (ret) + return dev_err_probe(dev, ret, "failed to get and enable supplies"); + + clk =3D devm_clk_get_enabled(dev, NULL); + if (IS_ERR(clk)) + return PTR_ERR(clk); + + st->ref_frequency =3D clk_get_rate(clk); + if (!st->ref_frequency) + return -EINVAL; + + indio_dev->name =3D st->info->name; + indio_dev->channels =3D &st->info->channel; + indio_dev->num_channels =3D 1; + indio_dev->info =3D &ad7405_iio_info; + + st->back =3D devm_iio_backend_get(dev, NULL); + if (IS_ERR(st->back)) + return dev_err_probe(dev, PTR_ERR(st->back), + "failed to get IIO backend"); + + ret =3D iio_backend_chan_enable(st->back, 0); + if (ret) + return ret; + + ret =3D devm_iio_backend_request_buffer(dev, st->back, indio_dev); + if (ret) + return ret; + + ret =3D devm_iio_backend_enable(dev, st->back); + if (ret) + return ret; + + /* + * Set 256 decimation rate. The default value in the AXI_ADC register + * is 0, so we set the register with a decimation rate value that is + * functional for all parts. + */ + ret =3D ad7405_set_dec_rate(indio_dev, &indio_dev->channels[0], 256); + if (ret) + return ret; + + return devm_iio_device_register(dev, indio_dev); +} + +static const struct of_device_id ad7405_of_match[] =3D { + { .compatible =3D "adi,ad7405", .data =3D &ad7405_chip_info, }, + { .compatible =3D "adi,adum7701", .data =3D &adum7701_chip_info, }, + { .compatible =3D "adi,adum7702", .data =3D &adum7702_chip_info, }, + { .compatible =3D "adi,adum7703", .data =3D &adum7703_chip_info, }, + { } +}; +MODULE_DEVICE_TABLE(of, ad7405_of_match); + +static struct platform_driver ad7405_driver =3D { + .driver =3D { + .name =3D "ad7405", + .owner =3D THIS_MODULE, + .of_match_table =3D ad7405_of_match, + }, + .probe =3D ad7405_probe, +}; +module_platform_driver(ad7405_driver); + +MODULE_AUTHOR("Dragos Bogdan "); +MODULE_AUTHOR("Pop Ioan Daniel "); +MODULE_DESCRIPTION("Analog Devices AD7405 driver"); +MODULE_LICENSE("GPL"); +MODULE_IMPORT_NS("IIO_BACKEND"); --=20 2.34.1