42#define ADGM3121_REG_SWITCH_DATA 0x20
45#define ADGM3121_SW1_EN NO_OS_BIT(0)
46#define ADGM3121_SW2_EN NO_OS_BIT(1)
47#define ADGM3121_SW3_EN NO_OS_BIT(2)
48#define ADGM3121_SW4_EN NO_OS_BIT(3)
49#define ADGM3121_INTERNAL_ERROR NO_OS_GENMASK(7, 6)
50#define ADGM3121_RESERVED NO_OS_GENMASK(5, 4)
53#define ADGM3121_SPI_READ NO_OS_BIT(15)
54#define ADGM3121_SPI_WRITE 0
55#define ADGM3121_SPI_ADDR_MSK NO_OS_GENMASK(14, 8)
56#define ADGM3121_SPI_DAISY_CHAIN_CMD 0x2500
59#define ADGM3121_SWITCHING_TIME_US 200
60#define ADGM3121_POWER_UP_TIME_MS 45
164 uint8_t *error_status);
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
adgm3121_mode
Control mode enumeration.
Definition adgm3121.h:86
@ ADGM3121_MODE_PARALLEL
Definition adgm3121.h:87
@ ADGM3121_MODE_SPI
Definition adgm3121.h:88
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:77
@ ADGM3121_ENABLE
Definition adgm3121.h:79
@ ADGM3121_DISABLE
Definition adgm3121.h:78
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:66
@ ADGM3121_SW3
Definition adgm3121.h:69
@ ADGM3121_SW4
Definition adgm3121.h:70
@ ADGM3121_SW2
Definition adgm3121.h:68
@ ADGM3121_SW1
Definition adgm3121.h:67
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.
Device structure.
Definition adgm3121.h:95
struct no_os_gpio_desc * gpio_pin_spi
Definition adgm3121.h:104
struct no_os_gpio_desc * gpio_in1
Definition adgm3121.h:99
struct no_os_gpio_desc * gpio_in4
Definition adgm3121.h:102
struct no_os_gpio_desc * gpio_in3
Definition adgm3121.h:101
uint8_t switch_states
Definition adgm3121.h:108
struct no_os_spi_desc * spi_desc
Definition adgm3121.h:97
bool daisy_chain_mode
Definition adgm3121.h:110
enum adgm3121_mode mode
Definition adgm3121.h:106
struct no_os_gpio_desc * gpio_in2
Definition adgm3121.h:100
Initialization parameters.
Definition adgm3121.h:117
struct no_os_gpio_init_param gpio_in4
Definition adgm3121.h:124
struct no_os_gpio_init_param gpio_in2
Definition adgm3121.h:122
struct no_os_gpio_init_param gpio_in1
Definition adgm3121.h:121
struct no_os_gpio_init_param gpio_in3
Definition adgm3121.h:123
enum adgm3121_mode mode
Definition adgm3121.h:128
struct no_os_spi_init_param spi_init
Definition adgm3121.h:119
struct no_os_gpio_init_param gpio_pin_spi
Definition adgm3121.h:126
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