Re: [PATCH v16 00/14] ADF41513/ADF41510 PLL frequency synthesizers
From: Jonathan Cameron
Date: Sun Jun 14 2026 - 16:56:55 EST
On Thu, 04 Jun 2026 10:58:54 +0100
Rodrigo Alencar via B4 Relay <devnull+rodrigo.alencar.analog.com@xxxxxxxxxx> wrote:
> This patch series adds support for the Analog Devices ADF41513 and ADF41510
> ultralow noise PLL frequency synthesizers. These devices are designed for
> implementing local oscillators (LOs) in high-frequency applications.
> The ADF41513 covers frequencies from 1 GHz to 26.5 GHz, while the ADF41510
> operates from 1 GHz to 10 GHz.
>
> Key features supported by this driver:
> - Integer-N and fractional-N operation modes
> - High maximum PFD frequency (250 MHz integer-N, 125 MHz fractional-N)
> - 25-bit fixed modulus or 49-bit variable modulus fractional modes
> - Digital lock detect functionality
> - Phase resync capability for consistent output phase
> - Load Enable vs Reference signal syncronization
>
> The series includes:
> 1. PLL driver implementation
> 2. Device tree bindings documentation
> 3. IIO ABI documentation
> 4. Parsing utils for 64-bit decimal values
>
> Signed-off-by: Rodrigo Alencar <rodrigo.alencar@xxxxxxxxxx>
Applied to the testing branch of iio.git
Thanks for your persistence with this. On a particular plus I think this
is the largest series I've yet seen that Sashiko gave a clean bill of health
to (so not even any false positives!)
Jonathan
> ---
> Changes in v16:
> - Incorporate Andy's series: https://lore.kernel.org/all/20260602203706.103449-1-andriy.shevchenko@xxxxxxxxxxxxxxx
> - Drop iio_val_s64_to_s32s() and iio_val_s64_from_s32s().
> - Add/change comments and minor changes.
> - Link to v15: https://lore.kernel.org/r/20260531-adf41513-iio-driver-v15-0-da09adf1c0dd@xxxxxxxxxx
>
> Changes in v15:
> - Set bleed value when chaging mode.
> - Link to v14: https://lore.kernel.org/r/20260524-adf41513-iio-driver-v14-0-06824d9c15f4@xxxxxxxxxx
>
> Changes in v14:
> - Review include headers.
> - Use named fields in spi device table.
> - Address relevant sashiko's feedback.
> - Minor tweaks to iio core changes.
> - Link to v13: https://lore.kernel.org/r/20260517-adf41513-iio-driver-v13-0-bb6e134a360f@xxxxxxxxxx
>
> Changes in v13:
> - Introduce _parse_integer_limit_init()
> - Better support for 0 and larger scales in kstrtodec64()
> - Increase test scope for kstrtodec64()
> - Fix LSB_P1 check at startup when going for fixed modulus mode.
> - Clear phase adjust when setting phase (It turns out sashiko was correct).
> - Make sure Load Enable is not selected when powering up.
> - Address some minor comments.
> - Link to v12: https://lore.kernel.org/r/20260510-adf41513-iio-driver-v12-0-34af2ed2779f@xxxxxxxxxx
>
> Changes in v12:
> - Contraint charge pump current.
> - Fix division-by-zero issues.
> - Address PM and sysfs powerdown conflicts.
> - Program proper phase resync value in clk divider mode.
> - Link to v11: https://lore.kernel.org/r/20260506-adf41513-iio-driver-v11-0-2b7e99cfe8f2@xxxxxxxxxx
>
> Changes in v11:
> - Cleanup ext info attribute read/write callbacks.
> - Adjust attribute names in the documentation.
> - Turn s64 compose macros into static inline functions.
> - Link to v10: https://lore.kernel.org/r/20260415-adf41513-iio-driver-v10-0-df61046d5457@xxxxxxxxxx
>
> Changes in v10:
> - Drop simple_strntoull() changes
> - Create kstrtodec64() and kstrtoudec64() helpers.
> - Add IIO value format for 64-bit decimal values.
> - PLL driver code implements new decimal format for frequency attr.
> - Link to v9: https://lore.kernel.org/r/20260320-adf41513-iio-driver-v9-0-132f0d076374@xxxxxxxxxx
>
> Changes in v9:
> - Expose simple_strntoull() in a safer prototype instead of new kstrntoull()
> - Link to v8: https://lore.kernel.org/r/20260303-adf41513-iio-driver-v8-0-8dd2417cc465@xxxxxxxxxx
>
> Changes in v8:
> - Add new function kstrntoull() to lib/kstrtox.c and tests to lib/test-kstrtox.c.
> - Drop custom iio u64 parser, replacing it for kstrntoull().
> - Dedicated MAINTAINERS entry for drivers/iio/test/iio-test-fixpoint-parse.c.
> - Link to v7: https://lore.kernel.org/r/20260216-adf41513-iio-driver-v7-0-b0ed387ab559@xxxxxxxxxx
>
> Changes in v7:
> - Addressed minor suggestions.
> - frequency_resolution ABI for AD4350 removed in favor of generic one.
> - Link to v6: https://lore.kernel.org/r/20260130-adf41513-iio-driver-v6-0-cf46239026bc@xxxxxxxxxx
>
> Changes in v6:
> - Drop usage of simple_strtoull().
> - Implement better overflow checks with iio_safe_strntou64().
> - Link to v5: https://lore.kernel.org/r/20260123-adf41513-iio-driver-v5-0-2dce812a2dda@xxxxxxxxxx
>
> Changes in v5:
> - Drop local parsing of 64-bit plus fractional parts
> - Add iio_str_to_fixpoint64() to iio core with parsing tests
> - Add DT property dependency for adi,charge-pump-resistor-ohms
> - Add local definition for ADF41513_HZ_PER_GHZ and drop units.h patch
> - Link to v4: https://lore.kernel.org/r/20260116-adf41513-iio-driver-v4-0-dbb7d6782217@xxxxxxxxxx
>
> Changes in v4:
> - Proper usage of units.h macros
> - Simplifications to DT property parsing
> - Adjustments to return value handling
> - Drop of simple DT property node example
> - Link to v3: https://lore.kernel.org/r/20260108-adf41513-iio-driver-v3-0-23d1371aef48@xxxxxxxxxx
>
> Changes in v3:
> - Use FIELD_MODIFY macro in driver implementation
> - Drop refin_frequency iio attribute
> - Drop muxout-select property from dt-bindings (and rename logic-level property)
> - Use -mhz suffix in power-up frequency property
> - Address documentation issues
> - Link to v2: https://lore.kernel.org/r/20251219-adf41513-iio-driver-v2-0-be29a83d5793@xxxxxxxxxx
>
> Changes in v2:
> - separate driver implementation from extra features and improve commit messages
> - use macros from units.h
> - explanation of custom parse function: adf41513_parse_uhz
> - reorganize driver data structures
> - drop clock framework support for now
> - reorganize documentation
> - Link to v1: https://lore.kernel.org/r/20251110-adf41513-iio-driver-v1-0-2df8be0fdc6e@xxxxxxxxxx
>
> ---
> Andy Shevchenko (2):
> lib: kstrtox: Make _parse_integer() take variadic arguments
> lib: vsprintf: use _parse_integer() instead of _parse_integer_limit()
>
> Rodrigo Alencar (12):
> dt-bindings: iio: frequency: add adf41513
> lib: kstrtox: add initial value to _parse_integer_limit()
> lib: kstrtox: add kstrtoudec64() and kstrtodec64()
> lib: test-kstrtox: tests for kstrtodec64() and kstrtoudec64()
> lib: math: div64: add div64_s64_rem()
> iio: core: add decimal value formatting into 64-bit value
> iio: test: iio-test-format: add test case for decimal format
> iio: frequency: adf41513: driver implementation
> iio: frequency: adf41513: handle LE synchronization feature
> iio: frequency: adf41513: features on frequency change
> docs: iio: add documentation for adf41513 driver
> Documentation: ABI: testing: add common ABI file for iio/frequency
>
> Documentation/ABI/testing/sysfs-bus-iio-frequency | 11 +
> .../ABI/testing/sysfs-bus-iio-frequency-adf4350 | 10 -
> .../bindings/iio/frequency/adi,adf41513.yaml | 227 ++++
> Documentation/iio/adf41513.rst | 199 ++++
> Documentation/iio/index.rst | 1 +
> MAINTAINERS | 9 +
> drivers/iio/frequency/Kconfig | 10 +
> drivers/iio/frequency/Makefile | 1 +
> drivers/iio/frequency/adf41513.c | 1246 ++++++++++++++++++++
> drivers/iio/industrialio-core.c | 49 +-
> drivers/iio/test/iio-test-format.c | 97 +-
> include/linux/iio/types.h | 20 +
> include/linux/kstrtox.h | 3 +
> include/linux/math64.h | 18 +
> lib/kstrtox.c | 114 +-
> lib/kstrtox.h | 17 +-
> lib/math/div64.c | 15 +
> lib/test-kstrtox.c | 182 +++
> lib/vsprintf.c | 2 +-
> 19 files changed, 2178 insertions(+), 53 deletions(-)
> ---
> base-commit: ae696dfa47c30016cd429b9db5e70b259b8f509e
> change-id: 20251110-adf41513-iio-driver-aaca8a7f808e
>
> Best regards,