lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20260122192506.06ca7a4f@jic23-huawei>
Date: Thu, 22 Jan 2026 19:25:06 +0000
From: Jonathan Cameron <jic23@...nel.org>
To: Jonathan Santos <Jonathan.Santos@...log.com>
Cc: <linux-iio@...r.kernel.org>, <devicetree@...r.kernel.org>,
 <linux-kernel@...r.kernel.org>, <lars@...afoo.de>,
 <Michael.Hennerich@...log.com>, <dlechner@...libre.com>,
 <nuno.sa@...log.com>, <andy@...nel.org>, <robh@...nel.org>,
 <krzk+dt@...nel.org>, <conor+dt@...nel.org>, <jonath4nns@...il.com>
Subject: Re: [PATCH v6 0/5] Add support for ADAQ776x-1 ADC Family

On Wed, 14 Jan 2026 06:26:22 -0300
Jonathan Santos <Jonathan.Santos@...log.com> wrote:

> This adds support for the ADAQ7767-1, ADAQ7768-1 and ADAQ7769-1 devices. 
> 
> The ADAQ7768-1 and ADAQ7769-1 integrate a programmable gain amplifier (PGA)
> with 7 and 8 gain options, respectively. The ADAQ7767-1 and ADAQ7769-1 
> also feature a 3-pin selectable Anti-aliasing filter (AAF) gain.
> 
> ---
> Changes in v6:
> * Use Pattern PER* for all percentage-related macros and include macros 
>   for Per mille and per cent mille units.
> * Refactored ad7768_parse_aaf_gain() to improve cleanliness and readability.
> * Link to v5: https://lore.kernel.org/linux-iio/cover.1765900411.git.Jonathan.Santos@analog.com/T/#t/
> 
> Changes in v5:
> * Added PERCENT macro along with BASIS_POINTS in units.h.
> * Added new patch to allow writing attributes without direct mode claim.
> * Write scale attribute without direct mode claim to avoid deadlock
>   when using GPIOs from the device's own controller.
> * Link to v4: https://lore.kernel.org/linux-iio/cover.1764101647.git.Jonathan.Santos@analog.com/T/#t
> 
> 
> Changes in v4:
> * Removed u64_fract type patch, as it is not used. u32_fract is sufficient
>   for the PGA gain calculations.
> * Added new patch adding BASIS_POINTS macro to units.h.
> * Included pga-gpios property for parts that support PGA gain.
>   Before we were using the internal gpio controller to manage the PGA pins,
>   but still exposing the controller for external use (causing possible conflicts).
> * Addressed other review comments, see individual patches.
> * Link to v3: https://lore.kernel.org/linux-iio/cover.1757001160.git.Jonathan.Santos@analog.com/T/#t
> 
> Changes in v3:
> * Renamed adi,gain-milli to adi,aaf-gain-bp. Now it represents basis points
>   (one hundredth of a percent).
> * ad7768_channel_masks removed along with available_masks element in
>   ad7768_chip_info struct. It does not add anything for single channels,
>   so not needed, at least for now.
> * New patch adding 64-bit fractional number types to math.h.
> * Moved aaf gain parsing to its own function, and now returning after
>   warning to avoid setting a variable when it shouldn't (avoid confusion).
> * ad7768_set_pga_gain(): removed the pgia enable check, relying on the
>   regmap cache.
> * Addressed other review comments, see individual patches.
> 
> Changes in v2:
> * adi,aaf-gain property renamed to adi,gain-milli. Default value added.
> * fixed some commit messages. 
> * Added 'select RATIONAL' to Kconfig.
> * Added lock to protect PGA value access.
> * rewrote AAF gain check and replaced error returns with warnings.
> * Addressed other review comments, see individual patches.
> * Link to v1: https://lore.kernel.org/linux-iio/cover.1754617360.git.Jonathan.Santos@analog.com/T/#t
> 
> Jonathan Santos (5):
>   dt-bindings: iio: adc: ad7768-1: add new supported parts
>   iio: adc: ad7768-1: introduce chip info for future multidevice support
>   units: add conversion macros for percentage related units
>   iio: adc: ad7768-1: refactor ad7768_write_raw()
>   iio: adc: ad7768-1: add support for ADAQ776x-1 ADC Family
Applied with this diff to last patch.  Will first push out as testing to
let 0-day take a look.

Shout if the change is a problem.

diff --git a/drivers/iio/adc/ad7768-1.c b/drivers/iio/adc/ad7768-1.c
index 980c079ab41a..dc5be3d14664 100644
--- a/drivers/iio/adc/ad7768-1.c
+++ b/drivers/iio/adc/ad7768-1.c
@@ -535,9 +535,10 @@ static void ad7768_fill_scale_tbl(struct iio_dev *dev)
 {
        struct ad7768_state *st = iio_priv(dev);
        const struct iio_scan_type *scan_type;
-       int val, val2, tmp0, tmp1, i;
+       int val, val2, tmp0, i;
        struct u32_fract fract;
        unsigned long n, d;
+       u32 tmp1;
        u64 tmp2;
 
        scan_type = iio_get_current_scan_type(dev, &dev->channels[0]);
@@ -563,7 +564,7 @@ static void ad7768_fill_scale_tbl(struct iio_dev *dev)
                tmp2 = ((u64)val * MICRO) >> val2;
                tmp0 = div_u64_rem(tmp2, NANO, &tmp1);
                st->scale_tbl[i][0] = tmp0; /* Integer part */
-               st->scale_tbl[i][1] = abs(tmp1); /* Fractional part */
+               st->scale_tbl[i][1] = tmp1; /* Fractional part */
        }
 }
 

> 
>  .../bindings/iio/adc/adi,ad7768-1.yaml        |  64 ++-
>  drivers/iio/adc/Kconfig                       |   1 +
>  drivers/iio/adc/ad7768-1.c                    | 423 +++++++++++++++---
>  include/linux/units.h                         |  19 +
>  4 files changed, 453 insertions(+), 54 deletions(-)
> 
> 
> base-commit: e0bc6d7e258486c10bb11e31fd4421c134063b1d


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ