no-OS
Loading...
Searching...
No Matches
adgs6414d.h
Go to the documentation of this file.
1/***************************************************************************/
33#ifndef ADGS6414D_H_
34#define ADGS6414D_H_
35
36#include <stdint.h>
37#include <stdbool.h>
38#include "no_os_spi.h"
39
40#define ADGS6414D_NUM_SWITCHES 8
41
42/* ADGS6414D Register Map */
43#define ADGS6414D_REG_SW_DATA 0x01
44#define ADGS6414D_REG_ERR_FLAGS 0x03
45#define ADGS6414D_REG_BURST_EN 0x05
46#define ADGS6414D_REG_SOFT_RESETB 0x0B
47
48/* SPI Command Format */
49#define ADGS6414D_CMD_WRITE 0x00
50#define ADGS6414D_CMD_READ 0x80
51
52/* Soft Reset Values */
53#define ADGS6414D_SOFT_RESET_VAL1 0xA3
54#define ADGS6414D_SOFT_RESET_VAL2 0x05
55
56/* ADGS6414D Switch Channels */
57#define ADGS6414D_SW1 0
58#define ADGS6414D_SW2 1
59#define ADGS6414D_SW3 2
60#define ADGS6414D_SW4 3
61#define ADGS6414D_SW5 4
62#define ADGS6414D_SW6 5
63#define ADGS6414D_SW7 6
64#define ADGS6414D_SW8 7
65
74
83
84/* SPI write operation. */
85int adgs6414d_spi_write(struct adgs6414d_dev *dev, uint8_t reg_addr,
86 uint8_t data);
87
88/* SPI read operation. */
89int adgs6414d_spi_read(struct adgs6414d_dev *dev, uint8_t reg_addr,
90 uint8_t *data);
91
92/* Perform software reset. */
93int adgs6414d_soft_reset(struct adgs6414d_dev *dev);
94
95/* Set switch state for a specific channel. */
96int adgs6414d_set_switch(struct adgs6414d_dev *dev, uint8_t channel,
97 bool state);
98
99/* Get switch state for a specific channel. */
100int adgs6414d_get_switch(struct adgs6414d_dev *dev, uint8_t channel,
101 bool *state);
102
103/* Set multiple switches at once using bitmask. */
104int adgs6414d_set_switches(struct adgs6414d_dev *dev, uint8_t mask);
105
106/* Get all switch states as bitmask. */
107int adgs6414d_get_switches(struct adgs6414d_dev *dev, uint8_t *mask);
108
109/* Initialize the device. */
112
113/* Free the resources allocated by adgs6414d_init(). */
114int adgs6414d_remove(struct adgs6414d_dev *dev);
115
116#endif /* ADGS6414D_H_ */
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int adgs6414d_get_switches(struct adgs6414d_dev *dev, uint8_t *mask)
Definition adgs6414d.c:197
int adgs6414d_set_switches(struct adgs6414d_dev *dev, uint8_t mask)
Definition adgs6414d.c:175
int adgs6414d_spi_write(struct adgs6414d_dev *dev, uint8_t reg_addr, uint8_t data)
Definition adgs6414d.c:47
int adgs6414d_remove(struct adgs6414d_dev *dev)
Definition adgs6414d.c:254
int adgs6414d_init(struct adgs6414d_dev **device, struct adgs6414d_init_param *init_param)
Definition adgs6414d.c:214
int adgs6414d_get_switch(struct adgs6414d_dev *dev, uint8_t channel, bool *state)
Definition adgs6414d.c:155
int adgs6414d_set_switch(struct adgs6414d_dev *dev, uint8_t channel, bool state)
Definition adgs6414d.c:123
int adgs6414d_soft_reset(struct adgs6414d_dev *dev)
Definition adgs6414d.c:94
int adgs6414d_spi_read(struct adgs6414d_dev *dev, uint8_t reg_addr, uint8_t *data)
Definition adgs6414d.c:68
Header file of SPI Interface.
ADGS6414D Device Descriptor.
Definition adgs6414d.h:70
struct no_os_spi_desc * spi_desc
Definition adgs6414d.h:71
uint8_t switch_state
Definition adgs6414d.h:72
ADGS6414D Initialization Parameters structure.
Definition adgs6414d.h:79
uint8_t initial_state
Definition adgs6414d.h:81
struct no_os_spi_init_param * spi_init
Definition adgs6414d.h:80
Definition ad9361_util.h:63
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128