Skip to content

Commit 3d1364f

Browse files
committed
iio: dac: Add MAX22007 DAC driver support
Add support for the Analog Devices MAX22007 DAC with the following: - Main driver implementation in drivers/iio/dac/max22007.c - Raspberry Pi device tree overlay support - Kconfig and Makefile updates for build system integration Signed-off-by: Janani Sunil <[email protected]>
1 parent 0a83934 commit 3d1364f

File tree

5 files changed

+618
-0
lines changed

5 files changed

+618
-0
lines changed

arch/arm/boot/dts/overlays/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
322322
rpi-ltc6952.dtbo \
323323
rpi-max14830-i2c.dtbo \
324324
rpi-max14830-spi.dtbo \
325+
rpi-max22007.dtbo \
325326
rpi-max31335.dtbo \
326327
rpi-poe.dtbo \
327328
rpi-poe-plus.dtbo \
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/*
3+
* Analog Devices MAX22007
4+
*
5+
* hdl_project: <max22007_rpi>
6+
*
7+
* Copyright (C) 2025 Analog Devices Inc.
8+
*/
9+
10+
/dts-v1/;
11+
/plugin/;
12+
13+
#include <dt-bindings/iio/dac/adi,max22007.h>
14+
15+
&spi0 {
16+
status = "okay";
17+
#address-cells = <1>;
18+
#size-cells = <0>;
19+
20+
max22007: max22007@0 {
21+
22+
compatible = "adi,max22007";
23+
reg = <0>;
24+
spi-max-frequency = <500000>;
25+
spi-cpha;
26+
spi-cpol;
27+
adi,crc-enable;
28+
status = "okay";
29+
30+
#address-cells = <1>;
31+
#size-cells = <0>;
32+
33+
channel@0 {
34+
reg = <0>;
35+
adi,dac-latch-mode = <MAX22007_LDAC_CONTROL>;
36+
adi,mode = <0>;
37+
};
38+
39+
channel@1 {
40+
reg = <1>;
41+
adi,dac-latch-mode = <MAX22007_LDAC_CONTROL>;
42+
adi,mode = <0>;
43+
};
44+
45+
channel@2 {
46+
reg = <2>;
47+
adi,dac-latch-mode = <MAX22007_LDAC_CONTROL>;
48+
adi,mode = <0>;
49+
};
50+
51+
channel@3 {
52+
reg = <3>;
53+
adi,dac-latch-mode = <MAX22007_LDAC_CONTROL>;
54+
adi,mode = <0>;
55+
};
56+
};
57+
};
58+
59+
&spidev0 {
60+
status = "disabled";
61+
};
62+
63+
&spidev1 {
64+
status = "disabled";
65+
};

drivers/iio/dac/Kconfig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,18 @@ config MAX517
472472
This driver can also be built as a module. If so, the module
473473
will be called max517.
474474

475+
config MAX22007
476+
tristate "Analog Devices MAX22007 DAC Driver"
477+
depends on SPI
478+
select CRC8
479+
help
480+
Say Y here if you want to build a driver for Analog Devices MAX22007.
481+
482+
MAX22007 is a single-channel, 16-bit, voltage-output digital to
483+
analog converter (DAC) with SPI interface.
484+
485+
If compiled as a module, it will be called max22007.
486+
475487
config MAX5522
476488
tristate "Maxim MAX5522 DAC driver"
477489
depends on SPI_MASTER

drivers/iio/dac/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ obj-$(CONFIG_LTC2664) += ltc2664.o
4646
obj-$(CONFIG_LTC2688) += ltc2688.o
4747
obj-$(CONFIG_M62332) += m62332.o
4848
obj-$(CONFIG_MAX517) += max517.o
49+
obj-$(CONFIG_MAX22007) += max22007.o
4950
obj-$(CONFIG_MAX5522) += max5522.o
5051
obj-$(CONFIG_MAX5821) += max5821.o
5152
obj-$(CONFIG_MCP4725) += mcp4725.o

0 commit comments

Comments
 (0)