43#define ADGM3121_REG_SWITCH_DATA 0x20
46#define ADGM3121_SW1_EN NO_OS_BIT(0)
47#define ADGM3121_SW2_EN NO_OS_BIT(1)
48#define ADGM3121_SW3_EN NO_OS_BIT(2)
49#define ADGM3121_SW4_EN NO_OS_BIT(3)
50#define ADGM3121_INTERNAL_ERROR NO_OS_GENMASK(7, 6)
51#define ADGM3121_RESERVED NO_OS_GENMASK(5, 4)
54#define ADGM3121_SPI_READ NO_OS_BIT(15)
55#define ADGM3121_SPI_WRITE 0
56#define ADGM3121_SPI_ADDR_MSK NO_OS_GENMASK(14, 8)
57#define ADGM3121_SPI_DAISY_CHAIN_CMD 0x2500
60#define ADGM3121_SWITCHING_TIME_US 200
61#define ADGM3121_POWER_UP_TIME_MS 45
165 uint8_t *error_status);
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
adgm3121_mode
Control mode enumeration.
Definition adgm3121.h:87
@ ADGM3121_MODE_PARALLEL
Definition adgm3121.h:88
@ ADGM3121_MODE_SPI
Definition adgm3121.h:89
int adgm3121_get_switch_state(struct adgm3121_dev *dev, enum adgm3121_switch sw, enum adgm3121_state *state)
Get the current state of a specific switch.
Definition adgm3121.c:275
int adgm3121_remove(struct adgm3121_dev *dev)
Free resources allocated by adgm3121_init()
Definition adgm3121.c:550
int adgm3121_reset_switches(struct adgm3121_dev *dev)
Reset all switches to off state.
Definition adgm3121.c:372
int adgm3121_enter_daisy_chain_mode(struct adgm3121_dev *dev)
Enter SPI daisy chain mode.
Definition adgm3121.c:382
int adgm3121_init(struct adgm3121_dev **device, struct adgm3121_init_param *init_param)
Initialize the device.
Definition adgm3121.c:435
int adgm3121_read_register(struct adgm3121_dev *dev, uint8_t reg_addr, uint8_t *data)
Read from device register via SPI.
Definition adgm3121.c:80
adgm3121_state
Switch state enumeration.
Definition adgm3121.h:78
@ ADGM3121_ENABLE
Definition adgm3121.h:80
@ ADGM3121_DISABLE
Definition adgm3121.h:79
int adgm3121_set_switch_state(struct adgm3121_dev *dev, enum adgm3121_switch sw, enum adgm3121_state state)
Set the state of a specific switch.
Definition adgm3121.c:255
int adgm3121_set_switches(struct adgm3121_dev *dev, uint8_t switch_mask)
Set multiple switches at once using bitmask.
Definition adgm3121.c:294
int adgm3121_write_register(struct adgm3121_dev *dev, uint8_t reg_addr, uint8_t data)
Write to device register via SPI.
Definition adgm3121.c:48
adgm3121_switch
Switch enumeration (valid for both devices)
Definition adgm3121.h:67
@ ADGM3121_SW3
Definition adgm3121.h:70
@ ADGM3121_SW4
Definition adgm3121.h:71
@ ADGM3121_SW2
Definition adgm3121.h:69
@ ADGM3121_SW1
Definition adgm3121.h:68
int adgm3121_check_internal_error(struct adgm3121_dev *dev, uint8_t *error_status)
Check for internal errors.
Definition adgm3121.c:411
int adgm3121_get_switches(struct adgm3121_dev *dev, uint8_t *switch_mask)
Get all switch states as bitmask.
Definition adgm3121.c:334
Header file of GPIO Interface.
Header file of SPI Interface.
Header file of utility functions.
Device structure.
Definition adgm3121.h:96
struct no_os_gpio_desc * gpio_pin_spi
Definition adgm3121.h:105
struct no_os_gpio_desc * gpio_in1
Definition adgm3121.h:100
struct no_os_gpio_desc * gpio_in4
Definition adgm3121.h:103
struct no_os_gpio_desc * gpio_in3
Definition adgm3121.h:102
uint8_t switch_states
Definition adgm3121.h:109
struct no_os_spi_desc * spi_desc
Definition adgm3121.h:98
bool daisy_chain_mode
Definition adgm3121.h:111
enum adgm3121_mode mode
Definition adgm3121.h:107
struct no_os_gpio_desc * gpio_in2
Definition adgm3121.h:101
Initialization parameters.
Definition adgm3121.h:118
struct no_os_gpio_init_param gpio_in4
Definition adgm3121.h:125
struct no_os_gpio_init_param gpio_in2
Definition adgm3121.h:123
struct no_os_gpio_init_param gpio_in1
Definition adgm3121.h:122
struct no_os_gpio_init_param gpio_in3
Definition adgm3121.h:124
enum adgm3121_mode mode
Definition adgm3121.h:129
struct no_os_spi_init_param spi_init
Definition adgm3121.h:120
struct no_os_gpio_init_param gpio_pin_spi
Definition adgm3121.h:127
Definition ad9361_util.h:63
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Structure holding the parameters for GPIO initialization.
Definition no_os_gpio.h:67
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128