Skip to content

Commit 9fe145c

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 82e6e3a commit 9fe145c

File tree

5 files changed

+616
-0
lines changed

5 files changed

+616
-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: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
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+
status = "okay";
28+
29+
#address-cells = <1>;
30+
#size-cells = <0>;
31+
32+
channel@0 {
33+
reg = <0>;
34+
adi,dac-latch-mode = <MAX22007_LDAC_CONTROL>;
35+
adi,channel-mode = <MAX22007_VOLTAGE_MODE>;
36+
adi,channel-power = <MAX22007_CH_POWER_OFF>;
37+
};
38+
39+
channel@1 {
40+
reg = <1>;
41+
adi,dac-latch-mode = <MAX22007_LDAC_CONTROL>;
42+
adi,channel-mode = <MAX22007_VOLTAGE_MODE>;
43+
adi,channel-power = <MAX22007_CH_POWER_OFF>;
44+
};
45+
46+
channel@2 {
47+
reg = <2>;
48+
adi,dac-latch-mode = <MAX22007_LDAC_CONTROL>;
49+
adi,channel-mode = <MAX22007_VOLTAGE_MODE>;
50+
adi,channel-power = <MAX22007_CH_POWER_OFF>;
51+
};
52+
53+
channel@3 {
54+
reg = <3>;
55+
adi,dac-latch-mode = <MAX22007_LDAC_CONTROL>;
56+
adi,channel-mode = <MAX22007_VOLTAGE_MODE>;
57+
adi,channel-power = <MAX22007_CH_POWER_OFF>;
58+
};
59+
};
60+
};
61+
62+
&spidev0 {
63+
status = "disabled";
64+
};
65+
66+
&spidev1 {
67+
status = "disabled";
68+
};

drivers/iio/dac/Kconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,16 @@ 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+
MAX22007 is a single-channel, 16-bit, voltage-output digital to
482+
analog converter (DAC) with SPI interface.
483+
If compiled as a module, it will be called max22007.
484+
475485
config MAX5522
476486
tristate "Maxim MAX5522 DAC driver"
477487
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)