45#define ADE7913_SPI_READ NO_OS_BIT(2)
52#define ADE7913_REG_IWV 0x00
53#define ADE7913_REG_V1WV 0x01
54#define ADE7913_REG_V2WV 0x02
55#define ADE7913_REG_ADC_CRC 0x04
56#define ADE7913_REG_CTRL_CRC 0x05
57#define ADE7913_REG_CNT_SNAPSHOT 0x07
58#define ADE7913_REG_CONFIG 0x08
59#define ADE7913_REG_STATUS0 0x09
60#define ADE7913_REG_LOCK 0x0A
61#define ADE7913_REG_SYNC_SNAP 0x0B
62#define ADE7913_REG_COUNTER0 0x0C
63#define ADE7913_REG_COUNTER1 0x0D
64#define ADE7913_REG_EMI_CTRL 0x0E
65#define ADE7913_REG_STATUS1 0x0F
66#define ADE7913_REG_TEMPOS 0x08
69#define ADE7913_CNT_VAL_MSK NO_OS_GENMASK(11, 0)
72#define ADE7913_CLKOUT_EN_MSK NO_OS_BIT(0)
73#define ADE7913_PWRDWN_EN_MSK NO_OS_BIT(2)
74#define ADE7913_TEMP_EN_MSK NO_OS_BIT(3)
75#define ADE7913_ADC_FREQ_MSK NO_OS_GENMASK(5, 4)
76#define ADE7913_SWRST_MSK NO_OS_BIT(6)
77#define ADE7913_BW_MSK NO_OS_BIT(7)
80#define ADE7913_RESET_ON_MSK NO_OS_BIT(0)
81#define ADE7913_CRC_STAT_MSK NO_OS_BIT(1)
82#define ADE7913_IC_PROT_MSK NO_OS_BIT(2)
85#define ADE7913_LOCK_KEY_MSK NO_OS_GENMASK(5, 4)
88#define ADE7913_SYNC_MSK NO_OS_BIT(0)
89#define ADE7913_SNAP_MSK NO_OS_BIT(1)
92#define ADE7913_SLOT0_MSK NO_OS_BIT(0)
93#define ADE7913_SLOT1_MSK NO_OS_BIT(1)
94#define ADE7913_SLOT2_MSK NO_OS_BIT(2)
95#define ADE7913_SLOT3_MSK NO_OS_BIT(3)
96#define ADE7913_SLOT4_MSK NO_OS_BIT(4)
97#define ADE7913_SLOT5_MSK NO_OS_BIT(5)
98#define ADE7913_SLOT6_MSK NO_OS_BIT(6)
99#define ADE7913_SLOT7_MSK NO_OS_BIT(7)
102#define ADE7913_VERSION_MSK NO_OS_GENMASK(2, 0)
103#define ADE7913_ADC_NA_MSK NO_OS_BIT(6)
106#define ADE7913_LOCK_KEY 0XCA
107#define ADE7913_UNLOCK_KEY 0X9C
110#define ADE7913_3_CHANNEL_ADE7913 3U
111#define ADE7913_2_CHANNEL_ADE7912 2U
114#define ADE7913_VREF_V (788)
115#define ADE7913_VREF_I (49)
205static int ade7913_update_bits(
struct ade7913_dev *dev, uint8_t reg_addr,
206 uint8_t mask, uint8_t reg_data);
267 uint8_t *ver_product);
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int ade7913_pwrdwn(struct ade7913_dev *dev, uint8_t pwrdwn)
Power down enable.
Definition ade7913.c:693
int ade7913_cnt_snapshot_val(struct ade7913_dev *dev, uint16_t *val)
Cnt snapshot.
Definition ade7913.c:892
int ade7913_wr_lock(struct ade7913_dev *dev)
Lock device.
Definition ade7913.c:622
int ade7913_get_version_product(struct ade7913_dev *dev, uint8_t *ver_product)
Get version product value.
Definition ade7913.c:917
ade7913_adc_freq_e
ADE7913 ADC output frequency.
Definition ade7913.h:121
@ ADE7913_ADC_FREQ_8KHZ
Definition ade7913.h:123
@ ADE7913_ADC_FREQ_4KHZ
Definition ade7913.h:125
@ ADE7913_ADC_FREQ_2KHZ
Definition ade7913.h:127
@ ADE7913_ADC_FREQ_1KHZ
Definition ade7913.h:129
int ade7913_temp_en(struct ade7913_dev *dev, uint8_t temp_en)
Temperature enable.
Definition ade7913.c:709
int ade7913_emi_ctrl(struct ade7913_dev *dev, uint8_t emi_ctrl)
Set EMI CTRL register.
Definition ade7913.c:848
int ade7913_sync_en(struct ade7913_dev *dev)
Sync enable.
Definition ade7913.c:724
int ade7913_ic_prot_status(struct ade7913_dev *dev, uint8_t *status)
IC config regs protection status.
Definition ade7913.c:821
int ade7913_lfp_bw(struct ade7913_dev *dev, uint8_t bw)
Digital lpf bandwith select.
Definition ade7913.c:779
int ade7913_init(struct ade7913_dev **device, struct ade7913_init_param init_param)
Initialize the device.
Definition ade7913.c:335
int ade7913_sw_reset(struct ade7913_dev *dev)
Reset the device using SW reset.
Definition ade7913.c:586
int ade7913_get_sync_cnt_val(struct ade7913_dev *dev, uint16_t *counter)
Get synchronization counter value.
Definition ade7913.c:649
int ade7913_adc_freq(struct ade7913_dev *dev, enum ade7913_adc_freq_e frequency)
Set ADC frequency.
Definition ade7913.c:739
int ade7913_write_broadcast(struct ade7913_dev *dev, uint8_t reg_addr, uint8_t *reg_data)
Write broadcast.
Definition ade7913.c:252
int ade7913_set_clkout_en(struct ade7913_dev *dev, uint8_t clkout_en)
Set clkout enable.
Definition ade7913.c:677
int ade7913_write(struct ade7913_dev *dev, uint8_t reg_addr, uint8_t reg_data)
Write device register.
Definition ade7913.c:223
int ade7913_read(struct ade7913_dev *dev, uint8_t reg_addr, uint8_t *reg_data)
Read device register.
Definition ade7913.c:53
int ade7913_crc_status(struct ade7913_dev *dev, uint8_t *status)
CRC of config registers status.
Definition ade7913.c:794
int ade7913_wr_unlock(struct ade7913_dev *dev)
Unlock device.
Definition ade7913.c:635
int ade7913_read_waveforms(struct ade7913_dev *dev, uint8_t reg_addr, uint8_t *reg_data)
Read multiple devices.
Definition ade7913.c:136
int ade7913_remove(struct ade7913_dev *dev)
Remove the device and release resources.
Definition ade7913.c:555
int ade7913_adc_na_status(struct ade7913_dev *dev, uint8_t *status)
ADC not accesed during one period status.
Definition ade7913.c:865
Header file of GPIO Interface.
Header file of IRQ interface.
Header file of SPI Interface.
Header file of utility functions.
ADE7913 Device structure.
Definition ade7913.h:153
uint16_t * cnt_snapshot
Definition ade7913.h:181
int32_t * i_wav
Definition ade7913.h:165
int32_t * i_wav_m
Definition ade7913.h:171
int32_t * v2_wav
Definition ade7913.h:169
uint16_t * adc_crc
Definition ade7913.h:177
uint8_t no_devs
Definition ade7913.h:183
struct no_os_spi_desc * spi_desc0
Definition ade7913.h:157
struct no_os_irq_ctrl_desc * irq_ctrl
Definition ade7913.h:187
uint8_t * status0
Definition ade7913.h:179
struct no_os_spi_desc * spi_desc1
Definition ade7913.h:159
struct no_os_spi_desc * spi_desc2
Definition ade7913.h:161
struct no_os_spi_desc * spi_desc
Definition ade7913.h:155
int32_t * v1_wav
Definition ade7913.h:167
int32_t * v2_wav_m
Definition ade7913.h:175
int32_t * v1_wav_m
Definition ade7913.h:173
uint8_t burst_mode
Definition ade7913.h:185
uint8_t * ver_product
Definition ade7913.h:163
ADE7913 Device initialization parameters.
Definition ade7913.h:136
struct no_os_spi_init_param * spi_init1
Definition ade7913.h:144
uint8_t no_devs
Definition ade7913.h:138
uint8_t burst_mode
Definition ade7913.h:140
struct no_os_spi_init_param * spi_init2
Definition ade7913.h:146
struct no_os_spi_init_param * spi_init0
Definition ade7913.h:142
Definition ad9361_util.h:63
Definition no_os_irq.h:117
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128