42#define MAX14001_REG_READ(x) (((x) << 11) & NO_OS_GENMASK(15, 11))
43#define MAX14001_REG_WRITE(x,y) (MAX14001_REG_READ(x) | \
45 (y & MAX14001_REG_DATA_MASK))
43#define MAX14001_REG_WRITE(x,y) (MAX14001_REG_READ(x) | \ …
46#define MAX14001_REG_DATA_MASK NO_OS_GENMASK(9, 0)
47#define VERIFICATION_REG(x) ((x) + 0x10)
48#define MAX14001_SPI_REG_WRITE_ENABLE 0x294
49#define MAX14001_SPI_REG_WRITE_DISABLE 0x000
54#define MAX14001_ADC_REG 0x00
55#define MAX14001_FADC_REG 0x01
56#define MAX14001_FLAGS_REG 0x02
57#define MAX14001_FLTEN_REG 0x03
58#define MAX14001_THL_REG 0x04
59#define MAX14001_THU_REG 0x05
60#define MAX14001_INRR_REG 0x06
61#define MAX14001_INRT_REG 0x07
62#define MAX14001_INRP_REG 0x08
63#define MAX14001_CFG_REG 0x09
64#define MAX14001_ENBL_REG 0x0A
65#define MAX14001_ACT_REG 0x0B
66#define MAX14001_WEN_REG 0x0C
67#define MAX14001_FLTV_REG 0x13
68#define MAX14001_THLV_REG 0x14
69#define MAX14001_THUV_REG 0x15
70#define MAX14001_INRRV_REG 0x16
71#define MAX14001_INRTV_REG 0x17
72#define MAX14001_INRPV_REG 0x18
73#define MAX14001_CFGV_REG 0x19
74#define MAX14001_ENBLV_REG 0x1A
81#define MAX14001_RSET_MASK NO_OS_BIT(7)
84#define MAX14001_SRES_MASK NO_OS_BIT(6)
87#define MAX14001_INPLS_MASK NO_OS_BIT(9)
92#define MAX14001_ADC_FLAG_MASK NO_OS_BIT(1)
93#define MAX14001_INRD_FLAG_MASK NO_OS_BIT(2)
94#define MAX14001_SPI_FLAG_MASK NO_OS_BIT(3)
95#define MAX14001_COM_FLAG_MASK NO_OS_BIT(4)
96#define MAX14001_CRCL_FLAG_MASK NO_OS_BIT(5)
97#define MAX14001_CRCF_FLAG_MASK NO_OS_BIT(6)
98#define MAX14001_FET_FLAG_MASK NO_OS_BIT(7)
99#define MAX14001_MV_FLAG_MASK NO_OS_BIT(8)
104#define MAX14001_DYEN_FLTEN_MASK NO_OS_BIT(0)
105#define MAX14001_EADC_FLTEN_MASK NO_OS_BIT(1)
106#define MAX14001_EINRD_FLTEN_MASK NO_OS_BIT(2)
107#define MAX14001_ESPI_FLTEN_MASK NO_OS_BIT(3)
108#define MAX14001_ECOM_FLTEN_MASK NO_OS_BIT(4)
109#define MAX14001_ECRCL_FLTEN_MASK NO_OS_BIT(5)
110#define MAX14001_ECRCF_FLTEN_MASK NO_OS_BIT(6)
111#define MAX14001_EFET_FLTEN_MASK NO_OS_BIT(7)
112#define MAX14001_EMV_FLTEN_MASK NO_OS_BIT(8)
117#define MAX14001_IINR_INRP_MASK NO_OS_GENMASK(9, 6)
118#define MAX14001_IINR_INRP_MODE(a) ((MAX14001_IINR(a)) << 6)
119#define MAX14001_TINR_INRP_MASK NO_OS_GENMASK(5, 2)
120#define MAX14001_TINR_INRP_MODE(a) ((MAX14001_TINR(a)) << 2)
121#define MAX14001_DU_INRP_MASK NO_OS_GENMASK(1, 0)
122#define MAX14001_DU_INRP_MODE(a) (((a) & 0x3) << 0)
127#define MAX14001_IBIAS_CFG_MASK NO_OS_GENMASK(9, 6)
128#define MAX14001_IBIAS_CFG_MODE(a) ((MAX14001_IBIAS(a)) << 6)
129#define MAX14001_EXRF_CFG_MASK NO_OS_BIT(5)
130#define MAX14001_EXTI_CFG_MASK NO_OS_BIT(4)
131#define MAX14001_FT_CFG_MASK NO_OS_GENMASK(3, 2)
132#define MAX14001_FT_CFG_MODE(a) (((a) & 0x3) << 2)
133#define MAX14001_FAST_CFG_MASK NO_OS_BIT(1)
134#define MAX14001_IRAW_CFG_MASK NO_OS_BIT(0)
139#define MAX14001_ENA_ENBL_MASK NO_OS_BIT(4)
144#define REVERSE_UINT16(x) ((((x >> 0) & 1) << 15) | \
145 (((x >> 1) & 1 ) << 14) | \
146 (((x >> 2) & 1 ) << 13) | \
147 (((x >> 3) & 1 ) << 12) | \
148 (((x >> 4) & 1 ) << 11) | \
149 (((x >> 5) & 1 ) << 10) | \
150 (((x >> 6) & 1 ) << 9) | \
151 (((x >> 7) & 1 ) << 8) | \
152 (((x >> 8) & 1 ) << 7) | \
153 (((x >> 9) & 1 ) << 6) | \
154 (((x >> 10) & 1) << 5) | \
155 (((x >> 11) & 1) << 4) | \
156 (((x >> 12) & 1) << 3) | \
157 (((x >> 13) & 1) << 2) | \
158 (((x >> 14) & 1) << 1) | \
159 (((x >> 15) & 1) << 0))
144#define REVERSE_UINT16(x) ((((x >> 0) & 1) << 15) | \ …
164#define MAX14001_CFG_MIN 0
165#define MAX14001_CFG_MAX 0xF
166#define MAX14001_CFG_Q(x,y) (no_os_clamp( \
167 NO_OS_DIV_ROUND_CLOSEST(x,y), \
168 (MAX14001_CFG_MIN),(MAX14001_CFG_MAX)))
166#define MAX14001_CFG_Q(x,y) (no_os_clamp( \ …
172#define MAX14001_TINR_INC 8
173#define MAX14001_TINR(x) MAX14001_CFG_Q(x, MAX14001_TINR_INC)
178#define MAX14001_IINR_INC 7
179#define MAX14001_IINR(x) MAX14001_CFG_Q(x, MAX14001_IINR_INC)
184#define MAX14001_MUL 100
185#define MAX14001_IBIAS_INC 25
186#define MAX14001_IBIAS(x) MAX14001_CFG_Q((int)(x*MAX14001_MUL), \
186#define MAX14001_IBIAS(x) MAX14001_CFG_Q((int)(x*MAX14001_MUL), \ …
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int max14001_exti_config(struct max14001_dev *dev, bool mode)
Current source connection.
Definition max14001.c:534
int max14001_du_config(struct max14001_dev *dev, enum max14001_du mode)
Set maximum duty cycle for inrush current over the last 10 seconds.
Definition max14001.c:582
max14001_du
MAX14001 list of possible duty cycle modes.
Definition max14001.h:193
@ DUTY_1P6
Definition max14001.h:195
@ DUTY_OFF
Definition max14001.h:194
@ DUTY_6P3
Definition max14001.h:197
@ DUTY_3P1
Definition max14001.h:196
int max14001_reg_reset(struct max14001_dev *dev)
Software reset. Restores all registers to their POR value.
Definition max14001.c:317
int max14001_wen(struct max14001_dev *dev, bool write_enable)
Enable write to registers.
Definition max14001.c:295
int max14001_ecom_config(struct max14001_dev *dev, bool mode)
Enable COM fault.
Definition max14001.c:399
int max14001_inpls_reset(struct max14001_dev *dev)
Trigger an inrush current pulse.
Definition max14001.c:327
int max14001_init(struct max14001_dev **device, struct max14001_init_param init_param)
Initialize the device.
Definition max14001.c:183
int max14001_ecrcf_config(struct max14001_dev *dev, bool mode)
Enable CRCF fault.
Definition max14001.c:369
int max14001_ecrcl_config(struct max14001_dev *dev, bool mode)
Enable CRCL fault.
Definition max14001.c:384
int max14001_fast_config(struct max14001_dev *dev, bool fast)
Enable/Disable fast inrush mode.
Definition max14001.c:474
int max14001_exrf_config(struct max14001_dev *dev, bool mode)
Selects the voltage reference source for the ADC.
Definition max14001.c:519
int max14001_emv_config(struct max14001_dev *dev, bool mode)
Enable MV fault.
Definition max14001.c:339
int max14001_init_config(struct max14001_dev *dev)
Initialize the configurations of device.
Definition max14001.c:215
int max14001_read(struct max14001_dev *dev, uint8_t reg_addr, uint16_t *reg_data)
Read from device.
Definition max14001.c:48
int max14001_efet_config(struct max14001_dev *dev, bool mode)
Enable FET fault.
Definition max14001.c:354
int max14001_eadc_config(struct max14001_dev *dev, bool mode)
Enable ADC fault.
Definition max14001.c:444
int max14001_get_data_raw(struct max14001_dev *dev, uint16_t *data)
Get adc data.
Definition max14001.c:634
int max14001_full_reset(struct max14001_dev *dev)
Full reset, same effect as power on reset.
Definition max14001.c:307
int max14001_einrd_config(struct max14001_dev *dev, bool mode)
Enable INRD fault.
Definition max14001.c:429
int max14001_iinr_config(struct max14001_dev *dev, int mode)
Configure 4-bit inrush current.
Definition max14001.c:564
int max14001_espi_config(struct max14001_dev *dev, bool mode)
Enable SPI fault.
Definition max14001.c:414
int max14001_iraw_config(struct max14001_dev *dev, bool raw_data)
Selects Inrush comparator input multiplexer.
Definition max14001.c:489
int max14001_remove(struct max14001_dev *dev)
Free the resources allocated by max14001_init().
Definition max14001.c:661
int max14001_ena_config(struct max14001_dev *dev, bool enable)
Enable/Disable field-side current sink.
Definition max14001.c:504
int max14001_ibias_config(struct max14001_dev *dev, float mode)
Configure 4-bit bias current.
Definition max14001.c:599
int max14001_tinr_config(struct max14001_dev *dev, int mode)
Configure 4-bit inrush time.
Definition max14001.c:549
int max14001_ft_config(struct max14001_dev *dev, enum max14001_ft mode)
Set number of readings averaged in the ADC filter.
Definition max14001.c:617
max14001_ft
MAX14001 list of possible filtering modes.
Definition max14001.h:204
@ AVERAGE_2_READINGS
Definition max14001.h:206
@ AVERAGE_4_READINGS
Definition max14001.h:207
@ AVERAGE_8_READINGS
Definition max14001.h:208
@ FILTER_OFF
Definition max14001.h:205
int max14001_dyen_config(struct max14001_dev *dev, bool mode)
Enable dynamic FAULT signal.
Definition max14001.c:459
int max14001_get_data_filtered(struct max14001_dev *dev, uint16_t *data)
Get filtered adc data.
Definition max14001.c:648
int max14001_write_config_verify(struct max14001_dev *dev, uint8_t reg_addr, uint16_t mask, uint16_t data)
Write to config registers then to corresponding verification register.
Definition max14001.c:149
int max14001_reg_update(struct max14001_dev *dev, uint8_t reg_addr, uint16_t mask, uint16_t data)
SPI write to device using a mask.
Definition max14001.c:118
int max14001_write(struct max14001_dev *dev, uint8_t reg_addr, uint16_t reg_data)
Write to device.
Definition max14001.c:90
Header file of GPIO Interface.
Header file of SPI Interface.
Header file of utility functions.
Definition ad9361_util.h:63
Definition max14001.h:211
struct no_os_spi_desc * spi_desc
Definition max14001.h:213
Definition max14001.h:216
struct no_os_spi_init_param spi_init
Definition max14001.h:218
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128
enum no_os_spi_mode mode
Definition no_os_spi.h:136