Skip to content

Commit 1f8bf37

Browse files
danmoisnunojsa
authored andcommitted
drivers: iio: adc: Add ADRV902x support
The ADRV9025/26/29 are a highly integrated, radio frequency (RF) agile transceivers offering four independently controlled transmitters, dedicated observation receiver inputs for monitoring each transmitter channel, four independently controlled receivers, integrated synthesizers, and digital signal processing functions providing a complete transceiver solution. The device provides the performance demanded by cellular infrastructure applications, such as small cell base station radios, macro 3G/4G/5G systems, and massive multiple in/multiple out (MIMO) base stations. Note: * DPD support has been omitted in this initial version. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: George Mois <george.mois@analog.com>
1 parent 8b3a46a commit 1f8bf37

File tree

8 files changed

+3012
-0
lines changed

8 files changed

+3012
-0
lines changed

drivers/iio/adc/Kconfig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,18 @@ config ADRV9009
532532
ADRV9009/ADRV9008 RF Transceivers. Provides direct access
533533
via sysfs.
534534

535+
config ADRV9025
536+
tristate "Analog Devices ADRV9025/ADRV9026/ADRV9029 RF Transceiver driver"
537+
depends on SPI
538+
select CF_AXI_ADC
539+
help
540+
Say yes here to build support for Analog Devices:
541+
ADRV9025/ADRV9026/ADRV9026 RF Transceivers. Provides direct access
542+
via sysfs.
543+
544+
To compile this driver as a module, choose M here: the module will be
545+
called adrv9025_drv.
546+
535547
config AD6676
536548
tristate "Analog Devices AD6676 Wideband IF Receiver driver"
537549
depends on SPI

drivers/iio/adc/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ adrv9009_drv-y := adrv9009.o adrv9009_conv.o \
9393

9494
obj-$(CONFIG_ADRV9009) += adrv9009_drv.o
9595

96+
obj-$(CONFIG_ADRV9025) += madura/
97+
9698
obj-$(CONFIG_ADRV9001) += navassa/
9799

98100
obj-$(CONFIG_AD9467) += ad9467.o

drivers/iio/adc/madura/Makefile

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
SRCS = devices/adrv9025/private/src/adrv9025_bf_analog_orx_mem_map.c \
2+
devices/adrv9025/private/src/adrv9025_bf_analog_rx_mem_map.c \
3+
devices/adrv9025/private/src/adrv9025_bf_analog_tx_mem_map.c \
4+
devices/adrv9025/private/src/adrv9025_bf_core.c \
5+
devices/adrv9025/private/src/adrv9025_bf_deser.c \
6+
devices/adrv9025/private/src/adrv9025_bf_hal.c \
7+
devices/adrv9025/private/src/adrv9025_bf_jesd_common.c \
8+
devices/adrv9025/private/src/adrv9025_bf_jrx_link.c \
9+
devices/adrv9025/private/src/adrv9025_bf_jtx_link.c \
10+
devices/adrv9025/private/src/adrv9025_bf_orx.c \
11+
devices/adrv9025/private/src/adrv9025_bf_pll_mem_map.c \
12+
devices/adrv9025/private/src/adrv9025_bf_rx.c \
13+
devices/adrv9025/private/src/adrv9025_bf_tx.c \
14+
devices/adrv9025/private/src/adrv9025_bf_txdac_mem_map.c \
15+
devices/adrv9025/private/src/adrv9025_cals.c \
16+
devices/adrv9025/private/src/adrv9025_cpu.c \
17+
devices/adrv9025/private/src/adrv9025_crc32.c \
18+
devices/adrv9025/private/src/adrv9025_data_interface.c \
19+
devices/adrv9025/private/src/adrv9025_gpio.c \
20+
devices/adrv9025/private/src/adrv9025_init.c \
21+
devices/adrv9025/private/src/adrv9025_radioctrl.c \
22+
devices/adrv9025/private/src/adrv9025_rx.c \
23+
devices/adrv9025/private/src/adrv9025_shared_resource_manager.c \
24+
devices/adrv9025/private/src/adrv9025_tx.c \
25+
devices/adrv9025/private/src/adrv9025_utilities.c \
26+
devices/adrv9025/public/src/adi_adrv9025_agc.c \
27+
devices/adrv9025/public/src/adi_adrv9025_arm.c \
28+
devices/adrv9025/public/src/adi_adrv9025.c \
29+
devices/adrv9025/public/src/adi_adrv9025_cals.c \
30+
devices/adrv9025/public/src/adi_adrv9025_cpu.c \
31+
devices/adrv9025/public/src/adi_adrv9025_data_interface.c \
32+
devices/adrv9025/public/src/adi_adrv9025_gpio.c \
33+
devices/adrv9025/public/src/adi_adrv9025_hal.c \
34+
devices/adrv9025/public/src/adi_adrv9025_radioctrl.c \
35+
devices/adrv9025/public/src/adi_adrv9025_rx.c \
36+
devices/adrv9025/public/src/adi_adrv9025_tx.c \
37+
devices/adrv9025/public/src/adi_adrv9025_utilities.c \
38+
common/adi_logging/adi_common_log.c \
39+
common/adi_error/adi_common_error.c \
40+
common/adi_hal/adi_common_hal.c \
41+
platforms/linux_platform.c \
42+
adrv9025.c \
43+
adrv9025_conv.c
44+
45+
# Avoid FP operations and data sytpes - Remove DPD *_dfe.c files
46+
#SRCS := $(filter-out /devices/adrv9025/private/src/adrv9025_dfe.c /devices/adrv9025/public/src/adi_adrv9025_dfe.c, $(SRCS))
47+
48+
ccflags-y += -I$(src)/devices/adrv9025/private/include/ \
49+
-I$(src)/devices/adrv9025/public/include/ \
50+
-I$(src)/common/ \
51+
-I$(src)/common/adi_hal/ \
52+
-I$(src)/common/adi_error/ \
53+
-I$(src)/common/adi_libc/ \
54+
-I$(src)/common/adi_logging/ \
55+
-I$(src)/platforms/ \
56+
-DADRV9025_CHANNELID_CHECK=0 \
57+
-DADI_COMMON_VERBOSE=1 \
58+
-DADI_ADRV9025_RADIOCTRL_RANGE_CHECK=1 \
59+
-DADI_ADRV9025_ARM_VERBOSE=0
60+
61+
adrv9025_drv-y := $(SRCS:.c=.o)
62+
obj-$(CONFIG_ADRV9025) += adrv9025_drv.o

0 commit comments

Comments
 (0)