no-OS
max22190.h
Go to the documentation of this file.
1 /***************************************************************************/
39 #ifndef _MAX22190_H
40 #define _MAX22190_H
41 
42 #include <stdint.h>
43 #include <stdbool.h>
44 #include "no_os_gpio.h"
45 #include "no_os_spi.h"
46 #include "no_os_util.h"
47 
48 #define MAX22190_FRAME_SIZE 2
49 #define MAX22190_CHANNELS 8
50 #define MAX22190_FAULT2_ENABLES 5
51 
52 #define MAX22190_WIRE_BREAK_REG 0x0
53 #define MAX22190_DIGITAL_INPUT_REG 0x2
54 #define MAX22190_FAULT1_REG 0x4
55 #define MAX22190_FILTER_IN_REG(x) (0x6 + (2 * (x)))
56 #define MAX22190_CONFIG_REG 0x18
57 #define MAX22190_INPUT_EN_REG 0x1A
58 #define MAX22190_FAULT2_REG 0x1C
59 #define MAX22190_FAULT2_EN_REG 0x1E
60 #define MAX22190_GPO_REG 0x22
61 #define MAX22190_FAULT1_EN_REG 0x24
62 
63 #define MAX22190_NO_OP_REG 0x26
64 
65 #define MAX22190_CH_STATE_MASK(x) NO_OS_BIT(x)
66 #define MAX22190_DELAY_MASK NO_OS_GENMASK(2, 0)
67 #define MAX22190_FBP_MASK NO_OS_BIT(3)
68 #define MAX22190_WBE_MASK NO_OS_BIT(4)
69 #define MAX22190_RW_MASK NO_OS_BIT(7)
70 #define MAX22190_ADDR_MASK NO_OS_GENMASK(6, 0)
71 #define MAX22190_ALARM_MASK NO_OS_GENMASK(4, 3)
72 #define MAX22190_POR_MASK NO_OS_BIT(6)
73 
74 #define MAX22190_FAULT_MASK(x) NO_OS_BIT(x)
75 #define MAX22190_FAULT2_WBE_MASK NO_OS_BIT(4)
76 
77 #define MAX22190_FAULT2_EN_MASK NO_OS_GENMASK(5, 0)
78 
79 #define MAX22190_CFG_REFDI_MASK NO_OS_BIT(0)
80 #define MAX22190_CFG_CLRF_MASK NO_OS_BIT(3)
81 #define MAX22190_CFG_24VF_MASK NO_OS_BIT(4)
82 
86 };
87 
91  bool crc_en;
92 };
93 
94 struct max22190_desc {
97  uint8_t buff[MAX22190_FRAME_SIZE + 1];
99  uint8_t fault2en;
100  bool crc_en;
101 };
102 
112 };
113 
129 };
130 
132 int max22190_filter_set(struct max22190_desc *, uint32_t, uint32_t,
133  uint32_t, enum max22190_delay);
134 
136 int max22190_filter_get(struct max22190_desc *, uint32_t, uint32_t *,
137  uint32_t *, enum max22190_delay *);
138 
140 int max22190_chan_state(struct max22190_desc *, uint32_t,
141  enum max22190_ch_state);
142 
144 int max22190_wbe_get(struct max22190_desc *, uint32_t, bool *);
145 
147 int max22190_wbe_set(struct max22190_desc *, uint32_t, bool);
148 
151  enum max22190_fault_enable, bool);
152 
155  enum max22190_fault_enable, bool *);
156 
158 int max22190_reg_read(struct max22190_desc *, uint32_t, uint32_t *);
159 
161 int max22190_reg_write(struct max22190_desc *, uint32_t, uint32_t);
162 
164 int max22190_reg_update(struct max22190_desc *, uint32_t, uint32_t, uint32_t);
165 
167 int max22190_init(struct max22190_desc **, struct max22190_init_param *);
168 
170 int max22190_remove(struct max22190_desc *);
171 
172 #endif
max22190_reg_update
int max22190_reg_update(struct max22190_desc *, uint32_t, uint32_t, uint32_t)
Register update function for MAX22190.
Definition: max22190.c:411
MAX22190_FAULT2_RFDIOE
@ MAX22190_FAULT2_RFDIOE
Definition: max22190.h:124
MAX22190_FAULT2_WBE_MASK
#define MAX22190_FAULT2_WBE_MASK
Definition: max22190.h:75
no_os_alloc.h
no_os_gpio_init_param
Structure holding the parameters for GPIO initialization.
Definition: no_os_gpio.h:85
MAX22190_CFG_CLRF_MASK
#define MAX22190_CFG_CLRF_MASK
Definition: max22190.h:80
max22190_filter_get
int max22190_filter_get(struct max22190_desc *, uint32_t, uint32_t *, uint32_t *, enum max22190_delay *)
Get filter delay, wite break detection and if the filter is used or bypassed.
Definition: max22190.c:131
MAX22190_FAULT1_24VLE
@ MAX22190_FAULT1_24VLE
Definition: max22190.h:117
MAX22190_CONFIG_REG
#define MAX22190_CONFIG_REG
Definition: max22190.h:56
max22190_init_param::crc_en
bool crc_en
Definition: max22190.h:91
max22190_reg_read
int max22190_reg_read(struct max22190_desc *desc, uint32_t addr, uint32_t *val)
Register read function for MAX22190.
Definition: max22190.c:338
MAX22190_FAULT2_FAULT8CKE
@ MAX22190_FAULT2_FAULT8CKE
Definition: max22190.h:126
max22190_remove
int max22190_remove(struct max22190_desc *)
Free the resources allocated by initialization.
Definition: max22190.c:491
no_os_spi.h
Header file of SPI Interface.
max22190_desc
Definition: max22190.h:94
max22190_init_param::comm_param
struct no_os_spi_init_param * comm_param
Definition: max22190.h:89
MAX22190_FAULT1_WBGE
@ MAX22190_FAULT1_WBGE
Definition: max22190.h:115
MAX22190_DELAY_400US
@ MAX22190_DELAY_400US
Definition: max22190.h:106
max22190_chan_state
int max22190_chan_state(struct max22190_desc *, uint32_t, enum max22190_ch_state)
Switch selected channel's state to disabled or enabled.
Definition: max22190.c:163
max22190_fault_enable_get
int max22190_fault_enable_get(struct max22190_desc *desc, enum max22190_fault_enable fault_enable, bool *enabled)
Get fault enable from the fault registers.
Definition: max22190.c:231
max22190_desc::buff
uint8_t buff[MAX22190_FRAME_SIZE+1]
Definition: max22190.h:97
max22190_fault_enable_set
int max22190_fault_enable_set(struct max22190_desc *desc, enum max22190_fault_enable fault_enable, bool enabled)
Set fault enable in the fault registers.
Definition: max22190.c:279
MAX22190_CFG_24VF_MASK
#define MAX22190_CFG_24VF_MASK
Definition: max22190.h:81
MAX22190_DELAY_1800US
@ MAX22190_DELAY_1800US
Definition: max22190.h:108
no_os_spi_msg
Definition: no_os_spi.h:91
max22190_wbe_get
int max22190_wbe_get(struct max22190_desc *, uint32_t, bool *)
Get Wire Break detection for requested channel.
Definition: max22190.c:189
max22190_desc::crc_en
bool crc_en
Definition: max22190.h:100
NO_OS_GPIO_HIGH
@ NO_OS_GPIO_HIGH
Definition: no_os_gpio.h:123
MAX22190_DELAY_50US
@ MAX22190_DELAY_50US
Definition: max22190.h:104
MAX22190_ADDR_MASK
#define MAX22190_ADDR_MASK
Definition: max22190.h:70
max22190_desc::comm_desc
struct no_os_spi_desc * comm_desc
Definition: max22190.h:95
no_os_calloc
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
MAX22190_RW_MASK
#define MAX22190_RW_MASK
Definition: max22190.h:69
max22190_chan_state
int max22190_chan_state(struct max22190_desc *desc, uint32_t ch, enum max22190_ch_state state)
Switch selected channel's state to disabled or enabled.
Definition: max22190.c:163
MAX22190_FAULT_MASK
#define MAX22190_FAULT_MASK(x)
Definition: max22190.h:74
no_os_spi_msg::tx_buff
uint8_t * tx_buff
Definition: no_os_spi.h:93
MAX22190_DELAY_3200US
@ MAX22190_DELAY_3200US
Definition: max22190.h:109
max22190_wbe_get
int max22190_wbe_get(struct max22190_desc *desc, uint32_t ch, bool *enabled)
Get Wire Break detection for requested channel.
Definition: max22190.c:189
MAX22190_POR_MASK
#define MAX22190_POR_MASK
Definition: max22190.h:72
MAX22190_FAULT1_ALRMT1E
@ MAX22190_FAULT1_ALRMT1E
Definition: max22190.h:118
no_os_field_prep
uint32_t no_os_field_prep(uint32_t mask, uint32_t val)
max22190_init
int max22190_init(struct max22190_desc **, struct max22190_init_param *)
MAX22190 Initialization function.
Definition: max22190.c:433
MAX22190_DELAY_100US
@ MAX22190_DELAY_100US
Definition: max22190.h:105
MAX22190_FAULT2_RFWBSE
@ MAX22190_FAULT2_RFWBSE
Definition: max22190.h:121
max22190_fault_enable
max22190_fault_enable
Definition: max22190.h:114
MAX22190_DELAY_20MS
@ MAX22190_DELAY_20MS
Definition: max22190.h:111
MAX22190_CH_OFF
@ MAX22190_CH_OFF
Definition: max22190.h:84
MAX22190_FRAME_SIZE
#define MAX22190_FRAME_SIZE
Definition: max22190.h:48
MAX22190_INPUT_EN_REG
#define MAX22190_INPUT_EN_REG
Definition: max22190.h:57
max22190_filter_set
int max22190_filter_set(struct max22190_desc *desc, uint32_t ch, uint32_t clrf, uint32_t fbp, enum max22190_delay delay)
Set filter delay, wite break detection and if the filter is used or bypassed.
Definition: max22190.c:99
max22190_reg_update
int max22190_reg_update(struct max22190_desc *desc, uint32_t addr, uint32_t mask, uint32_t val)
Register update function for MAX22190.
Definition: max22190.c:411
MAX22190_CHANNELS
#define MAX22190_CHANNELS
Definition: max22190.h:49
max22190_init
int max22190_init(struct max22190_desc **desc, struct max22190_init_param *param)
MAX22190 Initialization function.
Definition: max22190.c:433
MAX22190_FAULT2_EN_MASK
#define MAX22190_FAULT2_EN_MASK
Definition: max22190.h:77
no_os_gpio_remove
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
max22190_fault_enable_get
int max22190_fault_enable_get(struct max22190_desc *, enum max22190_fault_enable, bool *)
Get fault enable from the fault registers.
Definition: max22190.c:231
no_os_spi_desc
Structure holding SPI descriptor.
Definition: no_os_spi.h:177
max22190_desc::en_gpio
struct no_os_gpio_desc * en_gpio
Definition: max22190.h:96
MAX22190_FAULT1_ALRMT2E
@ MAX22190_FAULT1_ALRMT2E
Definition: max22190.h:119
MAX22190_DELAY_MASK
#define MAX22190_DELAY_MASK
Definition: max22190.h:66
max22190_filter_set
int max22190_filter_set(struct max22190_desc *, uint32_t, uint32_t, uint32_t, enum max22190_delay)
Set filter delay, wite break detection and if the filter is used or bypassed.
Definition: max22190.c:99
no_os_gpio_desc
Structure holding the GPIO descriptor.
Definition: no_os_gpio.h:102
MAX22190_CFG_REFDI_MASK
#define MAX22190_CFG_REFDI_MASK
Definition: max22190.h:79
MAX22190_FAULT2_RFDISE
@ MAX22190_FAULT2_RFDISE
Definition: max22190.h:123
max22190_desc::fault2en
uint8_t fault2en
Definition: max22190.h:99
MAX22190_FAULT1_REG
#define MAX22190_FAULT1_REG
Definition: max22190.h:54
no_os_spi_transfer
int32_t no_os_spi_transfer(struct no_os_spi_desc *desc, struct no_os_spi_msg *msgs, uint32_t len)
Iterate over head list and send all spi messages.
Definition: no_os_spi.c:191
no_os_spi_msg::bytes_number
uint32_t bytes_number
Definition: no_os_spi.h:97
MAX22190_FAULT1_EN_REG
#define MAX22190_FAULT1_EN_REG
Definition: max22190.h:61
MAX22190_FAULT1_FAULT2E
@ MAX22190_FAULT1_FAULT2E
Definition: max22190.h:120
max22190_wbe_set
int max22190_wbe_set(struct max22190_desc *, uint32_t, bool)
Set Wire Break detection for requested channel.
Definition: max22190.c:213
no_os_field_get
uint32_t no_os_field_get(uint32_t mask, uint32_t word)
max22190_wbe_set
int max22190_wbe_set(struct max22190_desc *desc, uint32_t ch, bool enabled)
Set Wire Break detection for requested channel.
Definition: max22190.c:213
max22190_reg_write
int max22190_reg_write(struct max22190_desc *desc, uint32_t addr, uint32_t val)
Register write function for MAX22190.
Definition: max22190.c:381
no_os_free
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
max22190_fault_enable_set
int max22190_fault_enable_set(struct max22190_desc *, enum max22190_fault_enable, bool)
Set fault enable in the fault registers.
Definition: max22190.c:279
MAX22190_FAULT2_RFWBOE
@ MAX22190_FAULT2_RFWBOE
Definition: max22190.h:122
max22190_init_param
Definition: max22190.h:88
MAX22190_FILTER_IN_REG
#define MAX22190_FILTER_IN_REG(x)
Definition: max22190.h:55
no_os_gpio_set_value
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
max22190_ch_state
max22190_ch_state
Definition: max22190.h:83
MAX22190_FBP_MASK
#define MAX22190_FBP_MASK
Definition: max22190.h:67
no_os_spi_remove
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
max22190_delay
max22190_delay
Definition: max22190.h:103
MAX22190_CH_ON
@ MAX22190_CH_ON
Definition: max22190.h:85
no_os_gpio.h
Header file of GPIO Interface.
no_os_spi_init
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
max22190.h
Header file of MAX22190 Driver.
no_os_util.h
Header file of utility functions.
max22190_desc::channels
enum max22190_ch_state channels[MAX22190_CHANNELS]
Definition: max22190.h:98
MAX22190_FAULT2_OTSHDNE
@ MAX22190_FAULT2_OTSHDNE
Definition: max22190.h:125
MAX22190_CFG_REFDI_SH_ENA
@ MAX22190_CFG_REFDI_SH_ENA
Definition: max22190.h:128
MAX22190_FAULT2_EN_REG
#define MAX22190_FAULT2_EN_REG
Definition: max22190.h:59
MAX22190_DELAY_800US
@ MAX22190_DELAY_800US
Definition: max22190.h:107
MAX22190_CFG_24VF
@ MAX22190_CFG_24VF
Definition: max22190.h:127
max22190_init_param::en_gpio_param
struct no_os_gpio_init_param * en_gpio_param
Definition: max22190.h:90
MAX22190_FAULT1_24VME
@ MAX22190_FAULT1_24VME
Definition: max22190.h:116
max22190_reg_write
int max22190_reg_write(struct max22190_desc *, uint32_t, uint32_t)
Register write function for MAX22190.
Definition: max22190.c:381
errno.h
Error macro definition for ARM Compiler.
MAX22190_CH_STATE_MASK
#define MAX22190_CH_STATE_MASK(x)
Definition: max22190.h:65
MAX22190_DELAY_12800US
@ MAX22190_DELAY_12800US
Definition: max22190.h:110
max22190_reg_read
int max22190_reg_read(struct max22190_desc *, uint32_t, uint32_t *)
Register read function for MAX22190.
Definition: max22190.c:338
no_os_spi_init_param
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:131
max22190_remove
int max22190_remove(struct max22190_desc *desc)
Free the resources allocated by initialization.
Definition: max22190.c:491
max22190_filter_get
int max22190_filter_get(struct max22190_desc *desc, uint32_t ch, uint32_t *clrf, uint32_t *fbp, enum max22190_delay *delay)
Get filter delay, wite break detection and if the filter is used or bypassed.
Definition: max22190.c:131
no_os_gpio_get_optional
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