![]() |
no-OS
|
Header file of ADGM3121 Driver. More...
Go to the source code of this file.
Classes | |
struct | adgm3121_dev |
Device structure. More... | |
struct | adgm3121_init_param |
Initialization parameters. More... | |
Macros | |
#define | ADGM3121_REG_SWITCH_DATA 0x20 |
#define | ADGM3121_SW1_EN NO_OS_BIT(0) |
#define | ADGM3121_SW2_EN NO_OS_BIT(1) |
#define | ADGM3121_SW3_EN NO_OS_BIT(2) |
#define | ADGM3121_SW4_EN NO_OS_BIT(3) |
#define | ADGM3121_INTERNAL_ERROR NO_OS_GENMASK(7, 6) |
#define | ADGM3121_RESERVED NO_OS_GENMASK(5, 4) |
#define | ADGM3121_SPI_READ NO_OS_BIT(15) |
#define | ADGM3121_SPI_WRITE 0 |
#define | ADGM3121_SPI_ADDR_MSK NO_OS_GENMASK(14, 8) |
#define | ADGM3121_SPI_DAISY_CHAIN_CMD 0x2500 |
#define | ADGM3121_SWITCHING_TIME_US 200 |
#define | ADGM3121_POWER_UP_TIME_MS 45 |
Enumerations | |
enum | adgm3121_switch { ADGM3121_SW1 , ADGM3121_SW2 , ADGM3121_SW3 , ADGM3121_SW4 } |
Switch enumeration (valid for both devices) More... | |
enum | adgm3121_state { ADGM3121_DISABLE , ADGM3121_ENABLE } |
Switch state enumeration. More... | |
enum | adgm3121_mode { ADGM3121_MODE_PARALLEL , ADGM3121_MODE_SPI } |
Control mode enumeration. More... | |
Functions | |
int | adgm3121_init (struct adgm3121_dev **device, struct adgm3121_init_param *init_param) |
Initialize the device. | |
int | adgm3121_remove (struct adgm3121_dev *dev) |
Free resources allocated by adgm3121_init() | |
int | adgm3121_set_switch_state (struct adgm3121_dev *dev, enum adgm3121_switch sw, enum adgm3121_state state) |
Set the state of a specific switch. | |
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. | |
int | adgm3121_set_switches (struct adgm3121_dev *dev, uint8_t switch_mask) |
Set multiple switches at once using bitmask. | |
int | adgm3121_get_switches (struct adgm3121_dev *dev, uint8_t *switch_mask) |
Get all switch states as bitmask. | |
int | adgm3121_reset_switches (struct adgm3121_dev *dev) |
Reset all switches to off state. | |
int | adgm3121_enter_daisy_chain_mode (struct adgm3121_dev *dev) |
Enter SPI daisy chain mode. | |
int | adgm3121_check_internal_error (struct adgm3121_dev *dev, uint8_t *error_status) |
Check for internal errors. | |
int | adgm3121_write_register (struct adgm3121_dev *dev, uint8_t reg_addr, uint8_t data) |
Write to device register via SPI. | |
int | adgm3121_read_register (struct adgm3121_dev *dev, uint8_t reg_addr, uint8_t *data) |
Read from device register via SPI. | |
Header file of ADGM3121 Driver.
Copyright 2025(c) Analog Devices, Inc.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ADGM3121_INTERNAL_ERROR NO_OS_GENMASK(7, 6) |
#define ADGM3121_POWER_UP_TIME_MS 45 |
#define ADGM3121_REG_SWITCH_DATA 0x20 |
#define ADGM3121_RESERVED NO_OS_GENMASK(5, 4) |
#define ADGM3121_SPI_ADDR_MSK NO_OS_GENMASK(14, 8) |
#define ADGM3121_SPI_DAISY_CHAIN_CMD 0x2500 |
#define ADGM3121_SPI_READ NO_OS_BIT(15) |
#define ADGM3121_SPI_WRITE 0 |
#define ADGM3121_SW1_EN NO_OS_BIT(0) |
#define ADGM3121_SW2_EN NO_OS_BIT(1) |
#define ADGM3121_SW3_EN NO_OS_BIT(2) |
#define ADGM3121_SW4_EN NO_OS_BIT(3) |
#define ADGM3121_SWITCHING_TIME_US 200 |
enum adgm3121_mode |
enum adgm3121_state |
enum adgm3121_switch |
int adgm3121_check_internal_error | ( | struct adgm3121_dev * | dev, |
uint8_t * | error_status ) |
Check for internal errors.
dev | - The device structure |
error_status | - Pointer to store error status (bits 7:6) |
int adgm3121_enter_daisy_chain_mode | ( | struct adgm3121_dev * | dev | ) |
Enter SPI daisy chain mode.
dev | - The device structure |
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.
dev | - The device structure |
sw | - The switch to read (SW1 to SW4) |
state | - Pointer to store the current state |
int adgm3121_get_switches | ( | struct adgm3121_dev * | dev, |
uint8_t * | switch_mask ) |
Get all switch states as bitmask.
dev | - The device structure |
switch_mask | - Pointer to store switch states bitmask |
int adgm3121_init | ( | struct adgm3121_dev ** | device, |
struct adgm3121_init_param * | init_param ) |
Initialize the device.
device | - Pointer to the device structure pointer |
init_param | - Pointer to the initialization parameters |
int adgm3121_read_register | ( | struct adgm3121_dev * | dev, |
uint8_t | reg_addr, | ||
uint8_t * | data ) |
Read from device register via SPI.
dev | - The device structure |
reg_addr | - Register address |
data | - Pointer to store read data |
int adgm3121_remove | ( | struct adgm3121_dev * | dev | ) |
Free resources allocated by adgm3121_init()
dev | - The device structure |
int adgm3121_reset_switches | ( | struct adgm3121_dev * | dev | ) |
Reset all switches to off state.
dev | - The device structure |
int adgm3121_set_switch_state | ( | struct adgm3121_dev * | dev, |
enum adgm3121_switch | sw, | ||
enum adgm3121_state | state ) |
Set the state of a specific switch.
dev | - The device structure |
sw | - The switch to control (SW1 to SW4) |
state | - The desired state (ADGM3121_ENABLE or ADGM3121_DISABLE) |
int adgm3121_set_switches | ( | struct adgm3121_dev * | dev, |
uint8_t | switch_mask ) |
Set multiple switches at once using bitmask.
dev | - The device structure |
switch_mask | - Bitmask of switches to enable (bits 0-3) |
int adgm3121_write_register | ( | struct adgm3121_dev * | dev, |
uint8_t | reg_addr, | ||
uint8_t | data ) |
Write to device register via SPI.
dev | - The device structure |
reg_addr | - Register address |
data | - Data to write |