Go to the documentation of this file.
40 #ifndef __AD7091R8_H__
41 #define __AD7091R8_H__
54 #define AD7091R_NUM_CHANNELS(id) (1 << ((id) + 1))
55 #define AD7091R8_BITS 12
57 #define AD7091R8_CONV_MASK NO_OS_GENMASK(AD7091R8_BITS - 1, 0)
60 #define AD7091R8_REG_RESULT 0x00
61 #define AD7091R8_REG_CHANNEL 0x01
62 #define AD7091R8_REG_CONF 0x02
63 #define AD7091R8_REG_ALERT 0x03
64 #define AD7091R8_REG_CH_LOW_LIMIT(ch) ((ch) * 3 + 4)
65 #define AD7091R8_REG_CH_HIGH_LIMIT(ch) ((ch) * 3 + 5)
66 #define AD7091R8_REG_CH_HYSTERESIS(ch) ((ch) * 3 + 6)
69 #define AD7091R8_REG_RESULT_DATA_MASK NO_OS_GENMASK(11, 0)
70 #define AD7091R8_REG_RESULT_ALT_MASK NO_OS_BIT(12)
71 #define AD7091R8_REG_RESULT_CH_ID_MASK NO_OS_GENMASK(15, 13)
74 #define REG_CONF_SLEEP_MODE_MASK NO_OS_GENMASK(1, 0)
75 #define REG_CONF_GPO1_MASK NO_OS_BIT(2)
76 #define REG_CONF_GPO0_MASK NO_OS_BIT(3)
77 #define REG_CONF_GPO0_MODE_MASK NO_OS_GENMASK(6, 4)
78 #define REG_CONF_ALERT_STICKY_MASK NO_OS_BIT(7)
79 #define REG_CONF_RESET_MASK NO_OS_BIT(9)
82 #define REG_ALERT_MASK(x, ch) (x >> (ch * 2))
85 #define AD7091R8_REG_DATA_MSK NO_OS_GENMASK(9, 0)
86 #define AD7091R8_RD_WR_FLAG_MSK NO_OS_BIT(10)
87 #define AD7091R8_REG_ADDR_MSK NO_OS_GENMASK(15, 11)
98 static char *
const ad7091r8_names[] = {
277 #endif // __AD7091R8_H__
struct no_os_gpio_desc * gpio_reset
Definition: ad7091r8.h:179
enum ad7091r8_sleep_mode sleep_mode
Definition: ad7091r8.h:202
@ AD7091R8_HIGH_LIMIT
Definition: ad7091r8.h:152
int ad7091r8_set_channel(struct ad7091r8_dev *dev, uint8_t channel)
Definition: ad7091r8.c:490
void no_os_put_unaligned_be16(uint16_t val, uint8_t *buf)
Structure holding the parameters for GPIO initialization.
Definition: no_os_gpio.h:85
@ AD7091R8_GPO0_BUSY
Definition: ad7091r8.h:141
int ad7091r8_remove(struct ad7091r8_dev *dev)
Free the resources allocated by ad7091r8_init().
Definition: ad7091r8.c:464
int ad7091r8_get_alert(struct ad7091r8_dev *dev, uint8_t channel, enum ad7091r8_alert_type *alert)
Definition: ad7091r8.c:290
#define AD7091R8_REG_DATA_MSK
Definition: ad7091r8.h:85
int ad7091r8_pulse_convst(struct ad7091r8_dev *dev)
Definition: ad7091r8.c:54
int32_t no_os_spi_write_and_read(struct no_os_spi_desc *desc, uint8_t *data, uint16_t bytes_number)
Write and read data to/from SPI.
Definition: no_os_spi.c:165
@ AD7091R8_GPO1
Definition: ad7091r8.h:128
Header file of SPI Interface.
#define REG_CONF_GPO0_MASK
Definition: ad7091r5.h:77
#define REG_CONF_RESET_MASK
Definition: ad7091r5.h:91
#define REG_CONF_GPO0_MODE_MASK
Definition: ad7091r5.h:80
@ AD7091R8_LOW_ALERT
Definition: ad7091r8.h:167
Header file of Delay functions.
struct no_os_spi_desc * spi_desc
Definition: ad7091r8.h:173
int32_t port
Definition: no_os_gpio.h:87
int ad7091r8_spi_reg_write(struct ad7091r8_dev *dev, uint8_t reg_addr, uint16_t reg_data)
Definition: ad7091r8.c:75
Definition: ad9361_util.h:75
ad7091r8_device_id
Definition: ad7091r8.h:92
@ NO_OS_GPIO_HIGH
Definition: no_os_gpio.h:123
#define AD7091R8_REG_CH_HYSTERESIS(ch)
Definition: ad7091r8.h:66
#define AD7091R8_REG_RESULT
Definition: ad7091r8.h:60
void * no_os_calloc(size_t nitems, size_t size)
Allocate memory and return a pointer to it, set memory to 0.
Definition: chibios_alloc.c:60
Implementation of AD7091R-8 driver header file.
#define AD7091R8_REG_CHANNEL
Definition: ad7091r8.h:61
#define AD7091R8_REG_ALERT
Definition: ad7091r8.h:63
@ AD7091R8_HIGH_ALERT
Definition: ad7091r8.h:165
struct no_os_gpio_init_param * gpio_alert
Definition: ad7091r8.h:198
Definition: ad7091r8.h:188
struct no_os_gpio_desc * gpio_alert
Definition: ad7091r8.h:181
@ NO_OS_GPIO_LOW
Definition: no_os_gpio.h:121
Definition: ad7091r8.h:170
enum ad7091r8_device_id device_id
Definition: ad7091r8.h:183
uint32_t no_os_field_prep(uint32_t mask, uint32_t val)
int ad7091r8_get_limit(struct ad7091r8_dev *dev, enum ad7091r8_limit limit, uint8_t channel, uint16_t *value)
Definition: ad7091r8.c:321
int ad7091r8_remove(struct ad7091r8_dev *dev)
Free the resources allocated by ad7091r8_init().
Definition: ad7091r8.c:464
#define REG_CONF_SLEEP_MODE_MASK
Definition: ad7091r5.h:71
ad7091r8_limit
Limit type.
Definition: ad7091r8.h:148
ad7091r8_sleep_mode
Converter supported sleep modes.
Definition: ad7091r8.h:108
int ad7091r8_get_limit(struct ad7091r8_dev *dev, enum ad7091r8_limit limit, uint8_t channel, uint16_t *value)
Definition: ad7091r8.c:321
struct no_os_gpio_desc * gpio_convst
Definition: ad7091r8.h:177
int ad7091r8_spi_write_mask(struct ad7091r8_dev *dev, uint8_t reg_addr, uint16_t mask, uint16_t data)
Definition: ad7091r8.c:154
@ AD7091R8_GPO0
Definition: ad7091r8.h:126
#define AD7091R8_RD_WR_FLAG_MSK
Definition: ad7091r8.h:86
@ AD7091R8_SLEEP_MODE_1
Definition: ad7091r8.h:113
int ad7091r8_set_port(struct ad7091r8_dev *dev, enum ad7091r8_port port, bool value)
Definition: ad7091r8.c:205
#define AD7091R_NUM_CHANNELS(id)
Definition: ad7091r8.h:54
enum ad7091r8_device_id device_id
Definition: ad7091r8.h:200
int ad7091r8_set_sleep_mode(struct ad7091r8_dev *dev, enum ad7091r8_sleep_mode mode)
Set device sleep mode.
Definition: ad7091r8.c:180
struct no_os_gpio_init_param * gpio_convst
Definition: ad7091r8.h:194
@ AD7091R8_SLEEP_MODE_3
Definition: ad7091r8.h:117
int32_t no_os_gpio_remove(struct no_os_gpio_desc *desc)
Free the resources allocated by no_os_gpio_get().
Definition: no_os_gpio.c:110
int32_t port
Definition: no_os_gpio.h:104
Structure holding SPI descriptor.
Definition: no_os_spi.h:177
int ad7091r8_set_sleep_mode(struct ad7091r8_dev *dev, enum ad7091r8_sleep_mode mode)
Set device sleep mode.
Definition: ad7091r8.c:180
#define REG_ALERT_MASK(x, ch)
Definition: ad7091r5.h:99
Structure holding the GPIO descriptor.
Definition: no_os_gpio.h:102
#define AD7091R8_CONV_MASK
Definition: ad7091r8.h:57
@ AD7091R4
Definition: ad7091r8.h:94
int ad7091r8_sequenced_read(struct ad7091r8_dev *dev, uint16_t *read_val)
Definition: ad7091r8.c:539
int ad7091r8_set_limit(struct ad7091r8_dev *dev, enum ad7091r8_limit limit, uint8_t channel, uint16_t value)
Definition: ad7091r8.c:258
int ad7091r8_set_port(struct ad7091r8_dev *dev, enum ad7091r8_port port, bool value)
Definition: ad7091r8.c:205
int32_t no_os_gpio_get(struct no_os_gpio_desc **desc, const struct no_os_gpio_init_param *param)
Obtain the GPIO decriptor.
Definition: no_os_gpio.c:55
@ AD7091R2
Definition: ad7091r8.h:93
@ AD7091R8_GPO0_ALERT
Definition: ad7091r8.h:139
int ad7091r8_sequenced_read(struct ad7091r8_dev *dev, uint16_t *read_val)
Definition: ad7091r8.c:539
uint32_t no_os_field_get(uint32_t mask, uint32_t word)
enum ad7091r8_sleep_mode sleep_mode
Definition: ad7091r8.h:185
int ad7091r8_set_limit(struct ad7091r8_dev *dev, enum ad7091r8_limit limit, uint8_t channel, uint16_t value)
Definition: ad7091r8.c:258
#define NO_OS_BIT(x)
Definition: no_os_util.h:51
void no_os_free(void *ptr)
Deallocate memory previously allocated by a call to no_os_calloc or no_os_malloc.
Definition: chibios_alloc.c:75
@ AD7091R8
Definition: ad7091r8.h:95
#define AD7091R8_REG_CONF
Definition: ad7091r8.h:62
int ad7091r8_reset(struct ad7091r8_dev *dev, bool is_software)
Initiate a software reset or hardware reset through the RESET pin.
Definition: ad7091r8.c:352
int ad7091r8_spi_reg_write(struct ad7091r8_dev *dev, uint8_t reg_addr, uint16_t reg_data)
Definition: ad7091r8.c:75
void no_os_udelay(uint32_t usecs)
Wait until usecs microseconds passed.
Definition: aducm3029_delay.c:120
struct no_os_spi_init_param * spi_init
Definition: ad7091r8.h:190
int ad7091r8_get_alert(struct ad7091r8_dev *dev, uint8_t channel, enum ad7091r8_alert_type *alert)
Definition: ad7091r8.c:290
int32_t no_os_gpio_set_value(struct no_os_gpio_desc *desc, uint8_t value)
Set the value of the specified GPIO.
Definition: no_os_gpio.c:203
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:119
@ AD7091R8_SLEEP_MODE_2
Definition: ad7091r8.h:115
int ad7091r8_init(struct ad7091r8_dev **device, struct ad7091r8_init_param *init_param)
Definition: ad7091r8.c:386
#define AD7091R8_REG_CH_HIGH_LIMIT(ch)
Definition: ad7091r8.h:65
#define AD7091R8_REG_ADDR_MSK
Definition: ad7091r8.h:87
@ AD7091R8_HYSTERESIS
Definition: ad7091r8.h:154
int ad7091r8_set_gpo0_mode(struct ad7091r8_dev *dev, enum ad7091r8_gpo0_mode mode, bool is_cmos)
Definition: ad7091r8.c:235
int32_t no_os_spi_remove(struct no_os_spi_desc *desc)
Free the resources allocated by no_os_spi_init().
Definition: no_os_spi.c:122
ad7091r8_alert_type
Alert status.
Definition: ad7091r8.h:161
Header file of GPIO Interface.
@ AD7091R8_SLEEP_MODE_0
Definition: ad7091r8.h:111
struct no_os_gpio_init_param * gpio_reset
Definition: ad7091r8.h:196
@ AD7091R8_GPO0_ENABLED
Definition: ad7091r8.h:137
int32_t no_os_spi_init(struct no_os_spi_desc **desc, const struct no_os_spi_init_param *param)
Initialize the SPI communication peripheral.
Definition: no_os_spi.c:58
@ AD7091R8_LOW_LIMIT
Definition: ad7091r8.h:150
uint16_t no_os_get_unaligned_be16(uint8_t *buf)
int ad7091r8_read_one(struct ad7091r8_dev *dev, uint8_t chan, uint16_t *read_val)
Definition: ad7091r8.c:515
int ad7091r8_set_channel(struct ad7091r8_dev *dev, uint8_t channel)
Definition: ad7091r8.c:490
Header file of utility functions.
int ad7091r8_spi_reg_read(struct ad7091r8_dev *dev, uint8_t reg_addr, uint16_t *reg_data)
Definition: ad7091r8.c:103
int ad7091r8_init(struct ad7091r8_dev **device, struct ad7091r8_init_param *init_param)
Definition: ad7091r8.c:386
ad7091r8_gpo0_mode
Port 0 configuration.
Definition: ad7091r8.h:135
#define REG_CONF_GPO1_MASK
Definition: ad7091r5.h:74
int32_t no_os_gpio_direction_output(struct no_os_gpio_desc *desc, uint8_t value)
Enable the output direction of the specified GPIO.
Definition: no_os_gpio.c:153
int ad7091r8_pulse_convst(struct ad7091r8_dev *dev)
Definition: ad7091r8.c:54
int ad7091r8_spi_reg_read(struct ad7091r8_dev *dev, uint8_t reg_addr, uint16_t *reg_data)
Definition: ad7091r8.c:103
int ad7091r8_spi_write_mask(struct ad7091r8_dev *dev, uint8_t reg_addr, uint16_t mask, uint16_t data)
Definition: ad7091r8.c:154
int vref_mv
Definition: ad7091r8.h:192
@ AD7091R8_NO_ALERT
Definition: ad7091r8.h:163
int ad7091r8_set_gpo0_mode(struct ad7091r8_dev *dev, enum ad7091r8_gpo0_mode mode, bool is_cmos)
Definition: ad7091r8.c:235
ad7091r8_port
Converter general purpose outputs.
Definition: ad7091r8.h:124
int vref_mv
Definition: ad7091r8.h:175
int ad7091r8_read_one(struct ad7091r8_dev *dev, uint8_t channel, uint16_t *read_val)
Definition: ad7091r8.c:515
Error macro definition for ARM Compiler.
#define AD7091R8_REG_CH_LOW_LIMIT(ch)
Definition: ad7091r8.h:64
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:131
int32_t no_os_gpio_get_optional(struct no_os_gpio_desc **desc, const struct no_os_gpio_init_param *param)
Get the value of an optional GPIO.
Definition: no_os_gpio.c:81