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
12509f0
units: add conversion macros for percentage related units
jonathanns Jan 14, 2026
9c9fc5c
regmap: provide regmap_assign_bits()
brgl Nov 8, 2024
27e8f27
iio: introduced iio_push_to_buffers_with_ts() that takes a data_total…
jic23 Apr 13, 2025
7218804
spi: Add spi_bpw_to_bytes() helper and use it
andy-shev Apr 17, 2025
aef410e
iio: adc: ad7768-1: Backport driver from kernel 6.12
jonathanns Mar 11, 2026
a7b8893
iio: adc: ad7768-1: Move setting of val a bit later to avoid unnecess…
jic23 Feb 17, 2025
425555c
iio: adc: ad7768-1: Switch to sparse friendly iio_device_claim/releas…
jic23 Feb 17, 2025
e2988c9
iio: adc: ad7768-1: Fix conversion result sign
scuciurean Mar 6, 2025
b0db699
iio: adc: ad7768-1: set MOSI idle state to prevent accidental reset
jonathanns Mar 6, 2025
32939e9
iio: adc: ad7768-1: remove unnecessary locking
jonathanns Mar 6, 2025
baea669
iio: adc: ad7768-1: convert driver to use regmap
jonathanns Apr 11, 2025
9f698ee
iio: adc: ad7768-1: Add reset gpio
scuciurean Apr 11, 2025
b3128a2
iio: adc: ad7768-1: Move buffer allocation to a separate function
scuciurean Apr 11, 2025
4708293
iio: normalize array sentinel style
dlech Apr 11, 2025
7c90950
iio: adc: Use iio_push_to_buffers_with_ts() to provide length for run…
jic23 Apr 13, 2025
20ecb78
iio: adc: ad7768-1: reorganize driver headers
jonathanns May 8, 2025
d0885ca
iio: adc: ad7768-1: Ensure SYNC_IN pulse minimum timing requirement
jonathanns Jun 4, 2025
d95f97e
dt-bindings: iio: adc: ad7768-1: document regulator provider property
jonathanns Jun 11, 2025
5d31f30
dt-bindings: iio: adc: ad7768-1: Document GPIO controller
jonathanns Jun 11, 2025
023bd5d
dt-bindings: iio: adc: ad7768-1: add trigger-sources property
jonathanns Jun 11, 2025
620a5bc
iio: adc: ad7768-1: add regulator to control VCM output
jonathanns Jun 11, 2025
abb41ad
iio: adc: ad7768-1: Add GPIO controller support
scuciurean Jun 11, 2025
c3d984e
iio: adc: ad7768-1: add multiple scan types to support 16-bits mode
jonathanns Jun 11, 2025
65eb358
iio: adc: ad7768-1: add support for Synchronization over SPI
jonathanns Jun 11, 2025
7386794
iio: adc: ad7768-1: replace manual attribute declaration
jonathanns Jun 11, 2025
76e5730
iio: adc: ad7768-1: add filter type and oversampling ratio attributes
jonathanns Jun 11, 2025
f35f69d
iio: adc: ad7768-1: add low pass -3dB cutoff attribute
jonathanns Jun 11, 2025
0aaba3a
iio: adc: ad7768-1: Remove logically dead code
Aug 16, 2025
c162b78
iio: adc: ad7768-1: use devm_regulator_get_enable_read_voltage()
jonathanns Aug 24, 2025
5429f33
iio: adc: ad7768-1: replace sprintf() with sysfs_emit()
nunojsa Sep 30, 2025
2952638
dt-bindings: iio: adc: ad7768-1: add new supported parts
jonathanns Jan 14, 2026
522c60a
arm: dts: zynq-zed-adv7511-ad7768-1-evb: support new features
jonathanns Mar 2, 2026
15ad0fa
arm: dts: zynq-coraz7s-cn0540: update to support new features
jonathanns Mar 27, 2026
da8503a
arm: dts: socfpga_cyclone5_de10_nano_cn0540: update to support new fe…
jonathanns Mar 27, 2026
ea29c1d
arm: dts: Add device tree for ADAQ7767-1 on ZedBoard
jonathanns Mar 2, 2026
b6d0bb5
arm: dts: Add device tree for ADAQ7768-1 on ZedBoard
jonathanns Mar 2, 2026
495a4c0
arm: dts: Add device tree for ADAQ7769-1 on ZedBoard
jonathanns Mar 2, 2026
34dece1
iio: adc: ad7768-1: introduce chip info for future multidevice support
jonathanns Jan 14, 2026
afaadd8
iio: adc: ad7768-1: refactor ad7768_write_raw()
jonathanns Jan 14, 2026
32d0dbc
iio: adc: ad7768-1: add support for ADAQ776x-1 ADC Family
jonathanns Jan 14, 2026
99b0160
iio: Replace IRQF_ONESHOT with IRQF_NO_THREAD
Jan 28, 2026
8464aed
iio: adc: ad7768-1: Fix ERR_PTR dereference in ad7768_fill_scale_tbl
Feb 14, 2026
c17fe42
iio: adc: ad7768-1: fix one-shot mode data acquisition
jonathanns Feb 23, 2026
835315f
iio: adc: ad7768-1: remove switch to one-shot mode
jonathanns Feb 23, 2026
8e78b22
iio: adc: ad7768-1: disable IRQ autoenable
jonathanns Feb 23, 2026
9c8426b
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