Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
b10e3dd
units: add conversion macros for percentage related units
jonathanns Jan 14, 2026
682361f
regmap: provide regmap_assign_bits()
brgl Nov 8, 2024
a4aa410
iio: introduced iio_push_to_buffers_with_ts() that takes a data_total…
jic23 Apr 13, 2025
95aba02
spi: Add spi_bpw_to_bytes() helper and use it
andy-shev Apr 17, 2025
50e33bf
iio: adc: ad7768-1: Backport driver from kernel 6.12
jonathanns Mar 11, 2026
8afe07a
iio: adc: ad7768-1: Move setting of val a bit later to avoid unnecess…
jic23 Feb 17, 2025
38fe4ed
iio: adc: ad7768-1: Switch to sparse friendly iio_device_claim/releas…
jic23 Feb 17, 2025
087096a
iio: adc: ad7768-1: Fix conversion result sign
scuciurean Mar 6, 2025
f0a1cc6
iio: adc: ad7768-1: set MOSI idle state to prevent accidental reset
jonathanns Mar 6, 2025
b4ee4db
iio: adc: ad7768-1: remove unnecessary locking
jonathanns Mar 6, 2025
0b2a1ba
iio: adc: ad7768-1: convert driver to use regmap
jonathanns Apr 11, 2025
9251953
iio: adc: ad7768-1: Add reset gpio
scuciurean Apr 11, 2025
40be1a4
iio: adc: ad7768-1: Move buffer allocation to a separate function
scuciurean Apr 11, 2025
4517c3b
iio: normalize array sentinel style
dlech Apr 11, 2025
eaa5a35
iio: adc: Use iio_push_to_buffers_with_ts() to provide length for run…
jic23 Apr 13, 2025
6f99389
iio: adc: ad7768-1: reorganize driver headers
jonathanns May 8, 2025
d45c80f
iio: adc: ad7768-1: Ensure SYNC_IN pulse minimum timing requirement
jonathanns Jun 4, 2025
3c85208
dt-bindings: iio: adc: ad7768-1: document regulator provider property
jonathanns Jun 11, 2025
f72028e
dt-bindings: iio: adc: ad7768-1: Document GPIO controller
jonathanns Jun 11, 2025
b79d6a3
dt-bindings: iio: adc: ad7768-1: add trigger-sources property
jonathanns Jun 11, 2025
93e7efa
iio: adc: ad7768-1: add regulator to control VCM output
jonathanns Jun 11, 2025
a4a6021
iio: adc: ad7768-1: Add GPIO controller support
scuciurean Jun 11, 2025
936b6d2
iio: adc: ad7768-1: add multiple scan types to support 16-bits mode
jonathanns Jun 11, 2025
e543eee
iio: adc: ad7768-1: add support for Synchronization over SPI
jonathanns Jun 11, 2025
9a88cea
iio: adc: ad7768-1: replace manual attribute declaration
jonathanns Jun 11, 2025
3818cbf
iio: adc: ad7768-1: add filter type and oversampling ratio attributes
jonathanns Jun 11, 2025
2fe6899
iio: adc: ad7768-1: add low pass -3dB cutoff attribute
jonathanns Jun 11, 2025
78a1d70
iio: adc: ad7768-1: Remove logically dead code
Aug 16, 2025
64ec243
iio: adc: ad7768-1: use devm_regulator_get_enable_read_voltage()
jonathanns Aug 24, 2025
6a5f2fb
iio: adc: ad7768-1: replace sprintf() with sysfs_emit()
nunojsa Sep 30, 2025
552940f
dt-bindings: iio: adc: ad7768-1: add new supported parts
jonathanns Jan 14, 2026
777b3ab
arm: dts: zynq-zed-adv7511-ad7768-1-evb: support new features
jonathanns Mar 2, 2026
948422f
arm: dts: zynq-coraz7s-cn0540: update to support new features
jonathanns Mar 27, 2026
fb4bddf
arm: dts: socfpga_cyclone5_de10_nano_cn0540: update to support new fe…
jonathanns Mar 27, 2026
d81e49b
arm: dts: Add device tree for ADAQ7767-1 on ZedBoard
jonathanns Mar 2, 2026
bc984e5
arm: dts: Add device tree for ADAQ7768-1 on ZedBoard
jonathanns Mar 2, 2026
6533c5d
arm: dts: Add device tree for ADAQ7769-1 on ZedBoard
jonathanns Mar 2, 2026
f4915aa
iio: adc: ad7768-1: introduce chip info for future multidevice support
jonathanns Jan 14, 2026
2895a91
iio: adc: ad7768-1: refactor ad7768_write_raw()
jonathanns Jan 14, 2026
66251e5
iio: adc: ad7768-1: add support for ADAQ776x-1 ADC Family
jonathanns Jan 14, 2026
6f06599
iio: Replace IRQF_ONESHOT with IRQF_NO_THREAD
Jan 28, 2026
2b6db8b
iio: adc: ad7768-1: Fix ERR_PTR dereference in ad7768_fill_scale_tbl
Feb 14, 2026
47056c6
iio: adc: ad7768-1: fix one-shot mode data acquisition
jonathanns Feb 23, 2026
cabacbd
iio: adc: ad7768-1: remove switch to one-shot mode
jonathanns Feb 23, 2026
19beabc
iio: adc: ad7768-1: disable IRQ autoenable
jonathanns Feb 23, 2026
169cd2e
iio: adc: ad7768-1: add support for SPI offload
jonathanns Feb 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 127 additions & 5 deletions Documentation/devicetree/bindings/iio/adc/adi,ad7768-1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,26 @@
$id: http://devicetree.org/schemas/iio/adc/adi,ad7768-1.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices AD7768-1 ADC device driver
title: Analog Devices AD7768-1 ADC family

maintainers:
- Michael Hennerich <michael.hennerich@analog.com>

description: |
Datasheet at:
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7768-1.pdf
Analog Devices AD7768-1 24-Bit Single Channel Low Power sigma-delta ADC family

https://www.analog.com/media/en/technical-documentation/data-sheets/ad7768-1.pdf
https://www.analog.com/media/en/technical-documentation/data-sheets/adaq7767-1.pdf
https://www.analog.com/media/en/technical-documentation/data-sheets/adaq7768-1.pdf
https://www.analog.com/media/en/technical-documentation/data-sheets/adaq7769-1.pdf

properties:
compatible:
const: adi,ad7768-1
enum:
- adi,ad7768-1
- adi,adaq7767-1
- adi,adaq7768-1
- adi,adaq7769-1

reg:
maxItems: 1
Expand All @@ -26,7 +34,26 @@ properties:
clock-names:
const: mclk

trigger-sources:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 2
description: |
A list of phandles referencing trigger source providers. Each entry
represents a trigger source for the ADC:

- First entry specifies the device responsible for driving the
synchronization (SYNC_IN) pin, as an alternative to adi,sync-in-gpios.
This can be a `gpio-trigger` or another `ad7768-1` device. If the
device's own SYNC_OUT pin is internally connected to its SYNC_IN pin,
reference the device itself or omit this property.
- Second entry optionally defines a GPIO3 pin used as a START signal trigger.

Use the accompanying trigger source cell to identify the type of each entry.

interrupts:
description:
DRDY (Data Ready) pin, which signals conversion results are available.
maxItems: 1

'#address-cells':
Expand All @@ -39,6 +66,25 @@ properties:
description:
ADC reference voltage supply

adi,aaf-gain-bp:
description: |
Specifies the gain applied by the Analog Anti-Aliasing Filter (AAF)
to the ADC input in basis points (one hundredth of a percent).
The hardware gain is determined by which input pin(s) the signal goes
through into the AAF. The possible connections are:
* For the ADAQ7767-1: Input connected to IN1±, IN2± or IN3±.
* For the ADAQ7769-1: OUT_PGA pin connected to IN1_AAF+, IN2_AAF+,
or IN3_AAF+.
enum: [1430, 3640, 10000]
default: 10000

pga-gpios:
description:
GAIN 0, GAIN1 and GAIN2 pins for gain selection. For devices that have
PGA configuration input pins, pga-gpios must be defined.
minItems: 3
maxItems: 3

adi,sync-in-gpios:
maxItems: 1
description:
Expand All @@ -47,6 +93,19 @@ properties:
in any way, for example if the filter decimation rate changes.
As the line is active low, it should be marked GPIO_ACTIVE_LOW.

regulators:
type: object
description:
list of regulators provided by this controller.

properties:
vcm-output:
$ref: /schemas/regulator/regulator.yaml#
type: object
unevaluatedProperties: false

additionalProperties: false

reset-gpios:
maxItems: 1

Expand All @@ -57,6 +116,23 @@ properties:
"#io-channel-cells":
const: 1

"#trigger-source-cells":
description: |
Cell indicates the trigger output signal: 0 = SYNC_OUT, 1 = GPIO3,
2 = DRDY.

For better readability, macros for these values are available in
dt-bindings/iio/adc/adi,ad7768-1.h.
const: 1

gpio-controller: true

"#gpio-cells":
const: 2
description: |
The first cell is for the GPIO number: 0 to 3.
The second cell takes standard GPIO flags.

required:
- compatible
- reg
Expand All @@ -65,7 +141,16 @@ required:
- vref-supply
- spi-cpol
- spi-cpha
- adi,sync-in-gpios

dependencies:
adi,sync-in-gpios:
not:
required:
- trigger-sources
trigger-sources:
not:
required:
- adi,sync-in-gpios

patternProperties:
"^channel@([0-9]|1[0-5])$":
Expand All @@ -89,6 +174,35 @@ patternProperties:
allOf:
- $ref: /schemas/spi/spi-peripheral-props.yaml#

# AAF Gain property only applies to ADAQ7767-1 and ADAQ7769-1 devices
- if:
properties:
compatible:
contains:
enum:
- adi,adaq7767-1
- adi,adaq7769-1
then:
required:
- adi,aaf-gain-bp
else:
properties:
adi,aaf-gain-bp: false

- if:
properties:
compatible:
contains:
enum:
- adi,adaq7768-1
- adi,adaq7769-1
then:
required:
- pga-gpios
else:
properties:
pga-gpios: false

unevaluatedProperties: false

examples:
Expand All @@ -105,6 +219,8 @@ examples:
spi-max-frequency = <2000000>;
spi-cpol;
spi-cpha;
gpio-controller;
#gpio-cells = <2>;
vref-supply = <&adc_vref>;
interrupts = <25 IRQ_TYPE_EDGE_RISING>;
interrupt-parent = <&gpio>;
Expand All @@ -120,6 +236,12 @@ examples:
reg = <0>;
label = "channel_0";
};

regulators {
vcm_reg: vcm-output {
regulator-name = "ad7768-1-vcm";
};
};
};
};
...
1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -1429,6 +1429,7 @@ S: Supported
W: https://ez.analog.com/linux-software-drivers
F: Documentation/devicetree/bindings/iio/adc/adi,ad7768-1.yaml
F: drivers/iio/adc/ad7768-1.c
F: include/dt-bindings/iio/adc/adi,ad7768-1.h

ANALOG DEVICES INC AD7780 DRIVER
M: Michael Hennerich <Michael.Hennerich@analog.com>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/gpio/gpio.h>

#include <dt-bindings/iio/adc/adi,ad7768-1.h>

/ {
vref: regulator-vref {
Expand Down Expand Up @@ -98,14 +99,18 @@
};

spi@30000 {
compatible = "adi,legacy-axi-spi-engine-1.00.a";
compatible = "adi,axi-spi-engine-1.00.a";
reg = <0x00030000 0x00010000>;
interrupt-parent = <&intc>;
interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&sys_clk &h2f_user0_clk>;
clock-names = "s_axi_aclk", "spi_clk";
num-cs = <1>;

trigger-sources = <&ad7768_1 AD7768_TRIGGER_SOURCE_DRDY>;
dmas = <&axi_dmac_0 0>;
dma-names = "offload0-rx";

#address-cells = <0x1>;
#size-cells = <0x0>;

Expand All @@ -117,14 +122,28 @@
spi-cpha;
#gpio-cells = <2>;
gpio-controller;
interrupts = <0 46 IRQ_TYPE_EDGE_RISING>;
interrupt-parent = <&intc>;
vref-supply = <&vref>;
adi,sync-in-gpios = <&gpio_out 1 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio_out 0 GPIO_ACTIVE_LOW>;
clocks = <&ad7768_1_mclk>;
clock-names = "mclk";
dmas = <&axi_dmac_0 0>;
dma-names = "rx";
#trigger-source-cells = <1>;
#io-channel-cells = <1>;

#address-cells = <1>;
#size-cells = <0>;
regulators {
vcm_reg: vcm-output {
regulator-name = "ad7768-1-vcm";
};
};

channel@0 {
reg = <0>;
label = "channel_0";
};
};
};
};
26 changes: 23 additions & 3 deletions arch/arm/boot/dts/xilinx/zynq-coraz7s-cn0540.dts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/gpio/gpio.h>

#include <dt-bindings/iio/adc/adi,ad7768-1.h>

/ {
vref: regulator-vref {
compatible = "regulator-fixed";
Expand All @@ -27,58 +29,58 @@
};

clocks {
ad7768_1_mclk: clock@0 {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <16384000>;
};

Check warning on line 36 in arch/arm/boot/dts/xilinx/zynq-coraz7s-cn0540.dts

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

(unit_address_vs_reg): /clocks/clock@0: node has a unit name, but no reg or ranges property
};

one-bit-adc-dac@0 {
compatible = "adi,one-bit-adc-dac";
#address-cells = <1>;
#size-cells = <0>;
in-gpios = <&gpio0 91 GPIO_ACTIVE_HIGH>;
out-gpios = <&gpio0 88 GPIO_ACTIVE_HIGH>,
<&gpio0 89 GPIO_ACTIVE_HIGH>,
<&gpio0 94 GPIO_ACTIVE_HIGH>,
<&ad7768_1 0 GPIO_ACTIVE_HIGH>,
<&ad7768_1 1 GPIO_ACTIVE_HIGH>,
<&ad7768_1 2 GPIO_ACTIVE_HIGH>,
<&ad7768_1 3 GPIO_ACTIVE_HIGH>;
channel@0 {
reg = <0>;
label = "cn0540_sw_ff_gpio";
};
channel@1 {
reg = <1>;
label = "cn0540_red_led";
};
channel@2 {
reg = <2>;
label = "cn0540_blue_led";
};
channel@3 {
reg = <3>;
label = "cn0540_shutdown_gpio";
};
channel@4 {
reg = <4>;
label = "cn0540_ad7768-1-gpio0";
};
channel@5 {
reg = <5>;
label = "cn0540_ad7768-1-gpio1";
};
channel@6 {
reg = <6>;
label = "cn0540_FDA_DIS";
};
channel@7 {
reg = <7>;
label = "cn0540_FDA_MODE";
};
};

Check warning on line 83 in arch/arm/boot/dts/xilinx/zynq-coraz7s-cn0540.dts

View workflow job for this annotation

GitHub Actions / build_gcc_arm / build

(unit_address_vs_reg): /one-bit-adc-dac@0: node has a unit name, but no reg or ranges property
};

&adc {
Expand Down Expand Up @@ -120,14 +122,18 @@
};

axi_spi_engine_0: spi@44a00000 {
compatible = "adi,legacy-axi-spi-engine-1.00.a";
compatible = "adi,axi-spi-engine-1.00.a";
reg = <0x44a00000 0x10000>;
interrupt-parent = <&intc>;
interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clkc 15 &spi_clk>;
clock-names = "s_axi_aclk", "spi_clk";
num-cs = <1>;

trigger-sources = <&ad7768_1 AD7768_TRIGGER_SOURCE_DRDY>;
dmas = <&rx_dma 0>;
dma-names = "offload0-rx";

#address-cells = <0x1>;
#size-cells = <0x0>;

Expand All @@ -140,13 +146,27 @@
vref-supply = <&vref>;
#gpio-cells = <2>;
gpio-controller;
interrupts = <99 IRQ_TYPE_EDGE_RISING>;
interrupt-parent = <&gpio0>;
adi,sync-in-gpios = <&gpio0 87 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio0 93 GPIO_ACTIVE_LOW>;
clocks = <&ad7768_1_mclk>;
clock-names = "mclk";
dmas = <&rx_dma 0>;
dma-names = "rx";
#trigger-source-cells = <1>;
#io-channel-cells = <1>;

#address-cells = <1>;
#size-cells = <0>;
regulators {
vcm_reg: vcm-output {
regulator-name = "ad7768-1-vcm";
};
};

channel@0 {
reg = <0>;
label = "channel_0";
};
};
};

Expand Down
Loading
Loading