no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ade9000.h
Go to the documentation of this file.
1/***************************************************************************/
33#ifndef __ADE9000_H__
34#define __ADE9000_H__
35
36#include <stdbool.h>
37#include <stdint.h>
38#include <string.h>
39#include "no_os_util.h"
40#include "no_os_spi.h"
41
42/* SPI commands */
43#define ADE9000_SPI_READ NO_OS_BIT(3)
44
45#define ENABLE 0x0001
46#define DISABLE 0x0000
47
48/* ADE9000 Register Map */
49#define ADE9000_REG_AIGAIN 0x0000
50#define ADE9000_REG_AIGAIN0 0x0001
51#define ADE9000_REG_AIGAIN1 0x0002
52#define ADE9000_REG_AIGAIN2 0x0003
53#define ADE9000_REG_AIGAIN3 0x0004
54#define ADE9000_REG_AIGAIN4 0x0005
55#define ADE9000_REG_APHCAL0 0x0006
56#define ADE9000_REG_APHCAL1 0x0007
57#define ADE9000_REG_APHCAL2 0x0008
58#define ADE9000_REG_APHCAL3 0x0009
59#define ADE9000_REG_APHCAL4 0x000A
60#define ADE9000_REG_AVGAIN 0x000B
61#define ADE9000_REG_AIRMSOS 0x000C
62#define ADE9000_REG_AVRMSOS 0x000D
63#define ADE9000_REG_APGAIN 0x000E
64#define ADE9000_REG_AWATTOS 0x000F
65#define ADE9000_REG_AVAROS 0x0010
66#define ADE9000_REG_AFWATTOS 0x0011
67#define ADE9000_REG_AFVAROS 0x0012
68#define ADE9000_REG_AIFRMSOS 0x0013
69#define ADE9000_REG_AVFRMSOS 0x0014
70#define ADE9000_REG_AVRMSONEOS 0x0015
71#define ADE9000_REG_AIRMSONEOS 0x0016
72#define ADE9000_REG_AVRMS1012OS 0x0017
73#define ADE9000_REG_AIRMS1012OS 0x0018
74#define ADE9000_REG_BIGAIN 0x0020
75#define ADE9000_REG_BIGAIN0 0x0021
76#define ADE9000_REG_BIGAIN1 0x0022
77#define ADE9000_REG_BIGAIN2 0x0023
78#define ADE9000_REG_BIGAIN3 0x0024
79#define ADE9000_REG_BIGAIN4 0x0025
80#define ADE9000_REG_BPHCAL0 0x0026
81#define ADE9000_REG_BPHCAL1 0x0027
82#define ADE9000_REG_BPHCAL2 0x0028
83#define ADE9000_REG_BPHCAL3 0x0029
84#define ADE9000_REG_BPHCAL4 0x002A
85#define ADE9000_REG_BVGAIN 0x002B
86#define ADE9000_REG_BIRMSOS 0x002C
87#define ADE9000_REG_BVRMSOS 0x002D
88#define ADE9000_REG_BPGAIN 0x002E
89#define ADE9000_REG_BWATTOS 0x002F
90#define ADE9000_REG_BVAROS 0x0030
91#define ADE9000_REG_BFWATTOS 0x0031
92#define ADE9000_REG_BFVAROS 0x0032
93#define ADE9000_REG_BIFRMSOS 0x0033
94#define ADE9000_REG_BVFRMSOS 0x0034
95#define ADE9000_REG_BVRMSONEOS 0x0035
96#define ADE9000_REG_BIRMSONEOS 0x0036
97#define ADE9000_REG_BVRMS1012OS 0x0037
98#define ADE9000_REG_BIRMS1012OS 0x0038
99#define ADE9000_REG_CIGAIN 0x0040
100#define ADE9000_REG_CIGAIN0 0x0041
101#define ADE9000_REG_CIGAIN1 0x0042
102#define ADE9000_REG_CIGAIN2 0x0043
103#define ADE9000_REG_CIGAIN3 0x0044
104#define ADE9000_REG_CIGAIN4 0x0045
105#define ADE9000_REG_CPHCAL0 0x0046
106#define ADE9000_REG_CPHCAL1 0x0047
107#define ADE9000_REG_CPHCAL2 0x0048
108#define ADE9000_REG_CPHCAL3 0x0049
109#define ADE9000_REG_CPHCAL4 0x004A
110#define ADE9000_REG_CVGAIN 0x004B
111#define ADE9000_REG_CIRMSOS 0x004C
112#define ADE9000_REG_CVRMSOS 0x004D
113#define ADE9000_REG_CPGAIN 0x004E
114#define ADE9000_REG_CWATTOS 0x004F
115#define ADE9000_REG_CVAROS 0x0050
116#define ADE9000_REG_CFWATTOS 0x0051
117#define ADE9000_REG_CFVAROS 0x0052
118#define ADE9000_REG_CIFRMSOS 0x0053
119#define ADE9000_REG_CVFRMSOS 0x0054
120#define ADE9000_REG_CVRMSONEOS 0x0055
121#define ADE9000_REG_CIRMSONEOS 0x0056
122#define ADE9000_REG_CVRMS1012OS 0x0057
123#define ADE9000_REG_CIRMS1012OS 0x0058
124#define ADE9000_REG_CONFIG0 0x0060
125#define ADE9000_REG_MTTHR_L0 0x0061
126#define ADE9000_REG_MTTHR_L1 0x0062
127#define ADE9000_REG_MTTHR_L2 0x0063
128#define ADE9000_REG_MTTHR_L3 0x0064
129#define ADE9000_REG_MTTHR_L4 0x0065
130#define ADE9000_REG_MTTHR_H0 0x0066
131#define ADE9000_REG_MTTHR_H1 0x0067
132#define ADE9000_REG_MTTHR_H2 0x0068
133#define ADE9000_REG_MTTHR_H3 0x0069
134#define ADE9000_REG_MTTHR_H4 0x006A
135#define ADE9000_REG_NIRMSOS 0x006B
136#define ADE9000_REG_ISUMRMSOS 0x006C
137#define ADE9000_REG_NIGAIN 0x006D
138#define ADE9000_REG_NPHCAL 0x006E
139#define ADE9000_REG_NIRMSONEOS 0x006F
140#define ADE9000_REG_NIRMS1012OS 0x0070
141#define ADE9000_REG_VNOM 0x0071
142#define ADE9000_REG_DICOEFF 0x0072
143#define ADE9000_REG_ISUMLVL 0x0073
144#define ADE9000_REG_AI_PCF 0x020A
145#define ADE9000_REG_AV_PCF 0x020B
146#define ADE9000_REG_AIRMS 0x020C
147#define ADE9000_REG_AVRMS 0x020D
148#define ADE9000_REG_AIFRMS 0x020E
149#define ADE9000_REG_AVFRMS 0x020F
150#define ADE9000_REG_AWATT 0x0210
151#define ADE9000_REG_AVAR 0x0211
152#define ADE9000_REG_AVA 0x0212
153#define ADE9000_REG_AFWATT 0x0213
154#define ADE9000_REG_AFVAR 0x0214
155#define ADE9000_REG_AFVA 0x0215
156#define ADE9000_REG_APF 0x0216
157#define ADE9000_REG_AVTHD 0x0217
158#define ADE9000_REG_AITHD 0x0218
159#define ADE9000_REG_AIRMSONE 0x0219
160#define ADE9000_REG_AVRMSONE 0x021A
161#define ADE9000_REG_AIRMS1012 0x021B
162#define ADE9000_REG_AVRMS1012 0x021C
163#define ADE9000_REG_AMTREGION 0x021D
164#define ADE9000_REG_BI_PCF 0x022A
165#define ADE9000_REG_BV_PCF 0x022B
166#define ADE9000_REG_BIRMS 0x022C
167#define ADE9000_REG_BVRMS 0x022D
168#define ADE9000_REG_BIFRMS 0x022E
169#define ADE9000_REG_BVFRMS 0x022F
170#define ADE9000_REG_BWATT 0x0230
171#define ADE9000_REG_BVAR 0x0231
172#define ADE9000_REG_BVA 0x0232
173#define ADE9000_REG_BFWATT 0x0233
174#define ADE9000_REG_BFVAR 0x0234
175#define ADE9000_REG_BFVA 0x0235
176#define ADE9000_REG_BPF 0x0236
177#define ADE9000_REG_BVTHD 0x0237
178#define ADE9000_REG_BITHD 0x0238
179#define ADE9000_REG_BIRMSONE 0x0239
180#define ADE9000_REG_BVRMSONE 0x023A
181#define ADE9000_REG_BIRMS1012 0x023B
182#define ADE9000_REG_BVRMS1012 0x023C
183#define ADE9000_REG_BMTREGION 0x023D
184#define ADE9000_REG_CI_PCF 0x024A
185#define ADE9000_REG_CV_PCF 0x024B
186#define ADE9000_REG_CIRMS 0x024C
187#define ADE9000_REG_CVRMS 0x024D
188#define ADE9000_REG_CIFRMS 0x024E
189#define ADE9000_REG_CVFRMS 0x024F
190#define ADE9000_REG_CWATT 0x0250
191#define ADE9000_REG_CVAR 0x0251
192#define ADE9000_REG_CVA 0x0252
193#define ADE9000_REG_CFWATT 0x0253
194#define ADE9000_REG_CFVAR 0x0254
195#define ADE9000_REG_CFVA 0x0255
196#define ADE9000_REG_CPF 0x0256
197#define ADE9000_REG_CVTHD 0x0257
198#define ADE9000_REG_CITHD 0x0258
199#define ADE9000_REG_CIRMSONE 0x0259
200#define ADE9000_REG_CVRMSONE 0x025A
201#define ADE9000_REG_CIRMS1012 0x025B
202#define ADE9000_REG_CVRMS1012 0x025C
203#define ADE9000_REG_CMTREGION 0x025D
204#define ADE9000_REG_NI_PCF 0x0265
205#define ADE9000_REG_NIRMS 0x0266
206#define ADE9000_REG_NIRMSONE 0x0267
207#define ADE9000_REG_NIRMS1012 0x0268
208#define ADE9000_REG_ISUMRMS 0x0269
209#define ADE9000_REG_VERSION2 0x026A
210#define ADE9000_REG_AWATT_ACC 0x02E5
211#define ADE9000_REG_AWATTHR_LO 0x02E6
212#define ADE9000_REG_AWATTHR_HI 0x02E7
213#define ADE9000_REG_AVAR_ACC 0x02EF
214#define ADE9000_REG_AVARHR_LO 0x02F0
215#define ADE9000_REG_AVARHR_HI 0x02F1
216#define ADE9000_REG_AVA_ACC 0x02F9
217#define ADE9000_REG_AVAHR_LO 0x02FA
218#define ADE9000_REG_AVAHR_HI 0x02FB
219#define ADE9000_REG_AFWATT_ACC 0x0303
220#define ADE9000_REG_AFWATTHR_LO 0x0304
221#define ADE9000_REG_AFWATTHR_HI 0x0305
222#define ADE9000_REG_AFVAR_ACC 0x030D
223#define ADE9000_REG_AFVARHR_LO 0x030E
224#define ADE9000_REG_AFVARHR_HI 0x030F
225#define ADE9000_REG_AFVA_ACC 0x0317
226#define ADE9000_REG_AFVAHR_LO 0x0318
227#define ADE9000_REG_AFVAHR_HI 0x0319
228#define ADE9000_REG_BWATT_ACC 0x0321
229#define ADE9000_REG_BWATTHR_LO 0x0322
230#define ADE9000_REG_BWATTHR_HI 0x0323
231#define ADE9000_REG_BVAR_ACC 0x032B
232#define ADE9000_REG_BVARHR_LO 0x032C
233#define ADE9000_REG_BVARHR_HI 0x032D
234#define ADE9000_REG_BVA_ACC 0x0335
235#define ADE9000_REG_BVAHR_LO 0x0336
236#define ADE9000_REG_BVAHR_HI 0x0337
237#define ADE9000_REG_BFWATT_ACC 0x033F
238#define ADE9000_REG_BFWATTHR_LO 0x0340
239#define ADE9000_REG_BFWATTHR_HI 0x0341
240#define ADE9000_REG_BFVAR_ACC 0x0349
241#define ADE9000_REG_BFVARHR_LO 0x034A
242#define ADE9000_REG_BFVARHR_HI 0x034B
243#define ADE9000_REG_BFVA_ACC 0x0353
244#define ADE9000_REG_BFVAHR_LO 0x0354
245#define ADE9000_REG_BFVAHR_HI 0x0355
246#define ADE9000_REG_CWATT_ACC 0x035D
247#define ADE9000_REG_CWATTHR_LO 0x035E
248#define ADE9000_REG_CWATTHR_HI 0x035F
249#define ADE9000_REG_CVAR_ACC 0x0367
250#define ADE9000_REG_CVARHR_LO 0x0368
251#define ADE9000_REG_CVARHR_HI 0x0369
252#define ADE9000_REG_CVA_ACC 0x0371
253#define ADE9000_REG_CVAHR_LO 0x0372
254#define ADE9000_REG_CVAHR_HI 0x0373
255#define ADE9000_REG_CFWATT_ACC 0x037B
256#define ADE9000_REG_CFWATTHR_LO 0x037C
257#define ADE9000_REG_CFWATTHR_HI 0x037D
258#define ADE9000_REG_CFVAR_ACC 0x0385
259#define ADE9000_REG_CFVARHR_LO 0x0386
260#define ADE9000_REG_CFVARHR_HI 0x0387
261#define ADE9000_REG_CFVA_ACC 0x038F
262#define ADE9000_REG_CFVAHR_LO 0x0390
263#define ADE9000_REG_CFVAHR_HI 0x0391
264#define ADE9000_REG_PWATT_ACC 0x0397
265#define ADE9000_REG_NWATT_ACC 0x039B
266#define ADE9000_REG_PVAR_ACC 0x039F
267#define ADE9000_REG_NVAR_ACC 0x03A3
268#define ADE9000_REG_IPEAK 0x0400
269#define ADE9000_REG_VPEAK 0x0401
270#define ADE9000_REG_STATUS0 0x0402
271#define ADE9000_REG_STATUS1 0x0403
272#define ADE9000_REG_EVENT_STATUS 0x0404
273#define ADE9000_REG_MASK0 0x0405
274#define ADE9000_REG_MASK1 0x0406
275#define ADE9000_REG_EVENT_MASK 0x0407
276#define ADE9000_REG_OILVL 0x0409
277#define ADE9000_REG_OIA 0x040A
278#define ADE9000_REG_OIB 0x040B
279#define ADE9000_REG_OIC 0x040C
280#define ADE9000_REG_OIN 0x040D
281#define ADE9000_REG_USER_PERIOD 0x040E
282#define ADE9000_REG_VLEVEL 0x040F
283#define ADE9000_REG_DIP_LVL 0x410
284#define ADE9000_REG_DIPA 0x411
285#define ADE9000_REG_DIPB 0x412
286#define ADE9000_REG_DIPC 0x413
287#define ADE9000_REG_SWELL_LVL 0x414
288#define ADE9000_REG_SWELLA 0x415
289#define ADE9000_REG_SWELLB 0x416
290#define ADE9000_REG_SWELLC 0x417
291#define ADE9000_REG_APERIOD 0x0418
292#define ADE9000_REG_BPERIOD 0x0419
293#define ADE9000_REG_CPERIOD 0x041A
294#define ADE9000_REG_COM_PERIOD 0x041B
295#define ADE9000_REG_ACT_NL_LVL 0x041C
296#define ADE9000_REG_REACT_NL_LVL 0x041D
297#define ADE9000_REG_APP_NL_LVL 0x041E
298#define ADE9000_REG_PHNOLOAD 0x041F
299#define ADE9000_REG_WTHR 0x0420
300#define ADE9000_REG_VARTHR 0x0421
301#define ADE9000_REG_VATHR 0x0422
302#define ADE9000_REG_LAST_DATA_32 0x0423
303#define ADE9000_REG_ADC_REDIRECT 0x0424
304#define ADE9000_REG_CF_LCFG 0x0425
305#define ADE9000_REG_PART_ID 0x0472
306#define ADE9000_REG_TEMP_TRIM 0x0474
307#define ADE9000_REG_RUN 0x0480
308#define ADE9000_REG_CONFIG1 0x0481
309#define ADE9000_REG_ANGL_VA_VB 0x0482
310#define ADE9000_REG_ANGL_VB_VC 0x0483
311#define ADE9000_REG_ANGL_VA_VC 0x0484
312#define ADE9000_REG_ANGL_VB_IA 0x0485
313#define ADE9000_REG_ANGL_VB_IB 0x0486
314#define ADE9000_REG_ANGL_VC_IC 0x0487
315#define ADE9000_REG_ANGL_IA_IB 0x0488
316#define ADE9000_REG_ANGL_IB_IC 0x0489
317#define ADE9000_REG_ANGL_IA_IC 0x048A
318#define ADE9000_REG_DIP_CYC 0x048B
319#define ADE9000_REG_SWELL_CYC 0x048C
320#define ADE9000_REG_OISTATUS 0x048F
321#define ADE9000_REG_CFMODE 0x0490
322#define ADE9000_REG_COMPMODE 0x0491
323#define ADE9000_REG_ACCMODE 0x0492
324#define ADE9000_REG_CONFIG3 0x0493
325#define ADE9000_REG_CF1DEN 0x0494
326#define ADE9000_REG_CF2DEN 0x0495
327#define ADE9000_REG_CF3DEN 0x0496
328#define ADE9000_REG_CF4DEN 0x0497
329#define ADE9000_REG_ZXTOUT 0x0498
330#define ADE9000_REG_ZXTHRSH 0x0499
331#define ADE9000_REG_ZX_LP_SEL 0x049A
332#define ADE9000_REG_SEQ_CYC 0x049C
333#define ADE9000_REG_PHSIGN 0x049D
334#define ADE9000_REG_WFB_CFG 0x04A0
335#define ADE9000_REG_WFB_PG_IRQEN 0x04A1
336#define ADE9000_REG_WFB_TRG_CFG 0x04A2
337#define ADE9000_REG_WFB_TRG_STAT 0x04A3
338#define ADE9000_REG_CONFIG5 0x04A4
339#define ADE9000_REG_CRC_RSLT 0x04A8
340#define ADE9000_REG_CRC_SPI 0x04A9
341#define ADE9000_REG_LAST_DATA_16 0x04AC
342#define ADE9000_REG_LAST_CMD 0x04AE
343#define ADE9000_REG_CONFIG2 0x04AF
344#define ADE9000_REG_EP_CFG 0x04B0
345#define ADE9000_REG_PWR_TIME 0x04B1
346#define ADE9000_REG_EGY_TIME 0x04B2
347#define ADE9000_REG_CRC_FORCE 0x04B4
348#define ADE9000_REG_CRC_OPTEN 0x04B5
349#define ADE9000_REG_TEMP_CFG 0x04B6
350#define ADE9000_REG_TEMP_RSLT 0x04B7
351#define ADE9000_REG_PGA_GAIN 0x04B9
352#define ADE9000_REG_CHNL_DIS 0x04BA
353#define ADE9000_REG_WR_LOCK 0x04BF
354#define ADE9000_REG_VAR_DIS 0x04E0
355#define ADE9000_REG_RESERVED1 0x04F0
356#define ADE9000_REG_VERSION 0x04FE
357#define ADE9000_REG_AI_SINC_DAT 0x0500
358#define ADE9000_REG_AV_SINC_DAT 0x0501
359#define ADE9000_REG_BI_SINC_DAT 0x0502
360#define ADE9000_REG_BV_SINC_DAT 0x0503
361#define ADE9000_REG_CI_SINC_DAT 0x0504
362#define ADE9000_REG_CV_SINC_DAT 0x0505
363#define ADE9000_REG_NI_SINC_DAT 0x0506
364#define ADE9000_REG_AI_LPF_DAT 0x0510
365#define ADE9000_REG_AV_LPF_DAT 0x0511
366#define ADE9000_REG_BI_LPF_DAT 0x0512
367#define ADE9000_REG_BV_LPF_DAT 0x0513
368#define ADE9000_REG_CI_LPF_DAT 0x0514
369#define ADE9000_REG_CV_LPF_DAT 0x0515
370#define ADE9000_REG_NI_LPF_DAT 0x0516
371#define ADE9000_REG_AV_PCF_1 0x0600
372#define ADE9000_REG_BV_PCF_1 0x0601
373#define ADE9000_REG_CV_PCF_1 0x0602
374#define ADE9000_REG_NI_PCF_1 0x0603
375#define ADE9000_REG_AI_PCF_1 0x0604
376#define ADE9000_REG_BI_PCF_1 0x0605
377#define ADE9000_REG_CI_PCF_1 0x0606
378#define ADE9000_REG_AIRMS_1 0x0607
379#define ADE9000_REG_BIRMS_1 0x0608
380#define ADE9000_REG_CIRMS_1 0x0609
381#define ADE9000_REG_AVRMS_1 0x060A
382#define ADE9000_REG_BVRMS_1 0x060B
383#define ADE9000_REG_CVRMS_1 0x060C
384#define ADE9000_REG_NIRMS_1 0x060D
385#define ADE9000_REG_AWATT_1 0x060E
386#define ADE9000_REG_BWATT_1 0x060F
387#define ADE9000_REG_CWATT_1 0x0610
388#define ADE9000_REG_AVA_1 0x0611
389#define ADE9000_REG_BVA_1 0x0612
390#define ADE9000_REG_CVA_1 0x0613
391#define ADE9000_REG_AVAR_1 0x0614
392#define ADE9000_REG_BVAR_1 0x0615
393#define ADE9000_REG_CVAR_1 0x0616
394#define ADE9000_REG_AFVAR_1 0x0617
395#define ADE9000_REG_BFVAR_1 0x0618
396#define ADE9000_REG_CFVAR_1 0x0619
397#define ADE9000_REG_APF_1 0x061A
398#define ADE9000_REG_BPF_1 0x061B
399#define ADE9000_REG_CPF_1 0x061C
400#define ADE9000_REG_AVTHD_1 0x061D
401#define ADE9000_REG_BVTHD_1 0x061E
402#define ADE9000_REG_CVTHD_1 0x061F
403#define ADE9000_REG_AITHD_1 0x0620
404#define ADE9000_REG_BITHD_1 0x0621
405#define ADE9000_REG_CITHD_1 0x0622
406#define ADE9000_REG_AFWATT_1 0x0623
407#define ADE9000_REG_BFWATT_1 0x0624
408#define ADE9000_REG_CFWATT_1 0x0625
409#define ADE9000_REG_AFVA_1 0x0626
410#define ADE9000_REG_BFVA_1 0x0627
411#define ADE9000_REG_CFVA_1 0x0628
412#define ADE9000_REG_AFIRMS_1 0x0629
413#define ADE9000_REG_BFIRMS_1 0x062A
414#define ADE9000_REG_CFIRMS_1 0x062B
415#define ADE9000_REG_AFVRMS_1 0x062C
416#define ADE9000_REG_BFVRMS_1 0x062D
417#define ADE9000_REG_CFVRMS_1 0x062E
418#define ADE9000_REG_AIRMSONE_1 0x062F
419#define ADE9000_REG_BIRMSONE_1 0x0630
420#define ADE9000_REG_CIRMSONE_1 0x0631
421#define ADE9000_REG_AVRMSONE_1 0x0622
422#define ADE9000_REG_BVRMSONE_1 0x0633
423#define ADE9000_REG_CVRMSONE_1 0x0634
424#define ADE9000_REG_NIRSONE_1 0x0635
425#define ADE9000_REG_AIRMS1012_1 0x0636
426#define ADE9000_REG_BIRMS1012_1 0x0637
427#define ADE9000_REG_CIRMS1012_1 0x0638
428#define ADE9000_REG_AVRMS1012_1 0x0639
429#define ADE9000_REG_BVRMS1012_1 0x063A
430#define ADE9000_REG_CVRMS1012_1 0x063B
431#define ADE9000_REG_NIRMS1012_1 0x063C
432#define ADE9000_REG_AV_PCF_2 0x0680
433#define ADE9000_REG_AI_PCF_2 0x0681
434#define ADE9000_REG_AIRMS_2 0x0682
435#define ADE9000_REG_AVRMS_2 0x0683
436#define ADE9000_REG_AWATT_2 0x0684
437#define ADE9000_REG_AVA_2 0x0685
438#define ADE9000_REG_AVAR_2 0x0686
439#define ADE9000_REG_AFVAR_2 0x0687
440#define ADE9000_REG_APF_2 0x0688
441#define ADE9000_REG_AVTHD_2 0x0689
442#define ADE9000_REG_AITHD_2 0x068A
443#define ADE9000_REG_AFWATT_2 0x068B
444#define ADE9000_REG_AFVA_2 0x068C
445#define ADE9000_REG_AFIRMS_2 0x068D
446#define ADE9000_REG_AFVRMS_2 0x068E
447#define ADE9000_REG_AIRMSONE_2 0x068F
448#define ADE9000_REG_AVRMSONE_2 0x0690
449#define ADE9000_REG_AIRMS1012_2 0x0691
450#define ADE9000_REG_AVRMS1012_2 0x0692
451#define ADE9000_REG_BV_PCF_2 0x0693
452#define ADE9000_REG_BI_PCF_2 0x0694
453#define ADE9000_REG_BIRMS_2 0x0695
454#define ADE9000_REG_BVRMS_2 0x0696
455#define ADE9000_REG_BWATT_2 0x0697
456#define ADE9000_REG_BVA_2 0x0698
457#define ADE9000_REG_BVAR_2 0x0699
458#define ADE9000_REG_BFVAR_2 0x069A
459#define ADE9000_REG_BPF_2 0x069B
460#define ADE9000_REG_BVTHD_2 0x069C
461#define ADE9000_REG_BITHD_2 0x069D
462#define ADE9000_REG_BFWATT_2 0x069E
463#define ADE9000_REG_BFVA_2 0x069F
464#define ADE9000_REG_BFIRMS_2 0x06A0
465#define ADE9000_REG_BFVRMS_2 0x06A1
466#define ADE9000_REG_BIRMSONE_2 0x06A2
467#define ADE9000_REG_BVRMSONE_2 0x06A3
468#define ADE9000_REG_BIRMS1012_2 0x06A4
469#define ADE9000_REG_BVRMS1012_2 0x06A5
470#define ADE9000_REG_CV_PCF_2 0x06A6
471#define ADE9000_REG_CI_PCF_2 0x06A7
472#define ADE9000_REG_CIRMS_2 0x06A8
473#define ADE9000_REG_CVRMS_2 0x06A9
474#define ADE9000_REG_CWATT_2 0x06AA
475#define ADE9000_REG_CVA_2 0x06AB
476#define ADE9000_REG_CVAR_2 0x06AC
477#define ADE9000_REG_CFVAR_2 0x06AD
478#define ADE9000_REG_CPF_2 0x06AE
479#define ADE9000_REG_CVTHD_2 0x06AF
480#define ADE9000_REG_CITHD_2 0x06B0
481#define ADE9000_REG_CFWATT_2 0x06B1
482#define ADE9000_REG_CFVA_2 0x06B2
483#define ADE9000_REG_CFIRMS_2 0x06B3
484#define ADE9000_REG_CFVRMS_2 0x06B4
485#define ADE9000_REG_CIRMSONE_2 0x06B5
486#define ADE9000_REG_CVRMSONE_2 0x06B6
487#define ADE9000_REG_CIRMS1012_2 0x06B7
488#define ADE9000_REG_CVRMS1012_2 0x06B8
489#define ADE9000_REG_NI_PCF_2 0x06B9
490#define ADE9000_REG_NIRMS_2 0x06BA
491#define ADE9000_REG_NIRMSONE_2 0x06BB
492#define ADE9000_REG_NIRMS1012_2 0x06BC
493
494/* ADE9000_REG_CONFIG0 Bit Definition */
495#define ADE9000_DISRPLPF NO_OS_BIT(13)
496#define ADE9000_DISAPLPF NO_OS_BIT(12)
497#define ADE9000_ININTEN NO_OS_BIT(11)
498#define ADE9000_VNOMC_EN NO_OS_BIT(10)
499#define ADE9000_VNOMB_EN NO_OS_BIT(9)
500#define ADE9000_VNOMA_EN NO_OS_BIT(8)
501#define ADE9000_RMS_SRC_SEL NO_OS_BIT(7)
502#define ADE9000_ZX_SRC_SEL NO_OS_BIT(6)
503#define ADE9000_INTEN NO_OS_BIT(5)
504#define ADE9000_MTEN NO_OS_BIT(4)
505#define ADE9000_HPFDIS NO_OS_BIT(3)
506#define ADE9000_ISUM_CFG NO_OS_GENMASK(1, 0)
507
508/* ADE9000_REG_AMTREGION Bit Definition */
509#define ADE9000_AREGION NO_OS_GENMASK(3, 0)
510
511/* ADE9000_REG_BMTREGION Bit Definition */
512#define ADE9000_BREGION NO_OS_GENMASK(3, 0)
513
514/* ADE9000_REG_CMTREGION Bit Definition */
515#define ADE9000_CREGION NO_OS_GENMASK(3, 0)
516
517/* ADE9000_REG_IPEAK Bit Definition */
518#define ADE9000_IPPHASE NO_OS_GENMASK(26, 24)
519#define ADE9000_IPEAKVAL NO_OS_GENMASK(23, 0)
520
521/* ADE9000_REG_VPEAK Bit Definition */
522#define ADE9000_VPPHASE NO_OS_GENMASK(26, 24)
523#define ADE9000_VPEAKVAL NO_OS_GENMASK(23, 0)
524
525/* ADE9000_REG_STATUS0 Bit Definition */
526#define ADE9000_STATUS0_TEMP_RDY NO_OS_BIT(25)
527#define ADE9000_STATUS0_MISMTCH NO_OS_BIT(24)
528#define ADE9000_STATUS0_COH_PAGE_RDY NO_OS_BIT(23)
529#define ADE9000_STATUS0_WFB_TRIG NO_OS_BIT(22)
530#define ADE9000_STATUS0_THD_PF_RDY NO_OS_BIT(21)
531#define ADE9000_STATUS0_RMS1012RDY NO_OS_BIT(20)
532#define ADE9000_STATUS0_RMSONERDY NO_OS_BIT(19)
533#define ADE9000_STATUS0_PWRRDY NO_OS_BIT(18)
534#define ADE9000_STATUS0_PAGE_FULL NO_OS_BIT(17)
535#define ADE9000_STATUS0_WFB_TRIG_IRQ NO_OS_BIT(16)
536#define ADE9000_STATUS0_DREADY NO_OS_BIT(15)
537#define ADE9000_STATUS0_CF4 NO_OS_BIT(14)
538#define ADE9000_STATUS0_CF3 NO_OS_BIT(13)
539#define ADE9000_STATUS0_CF2 NO_OS_BIT(12)
540#define ADE9000_STATUS0_CF1 NO_OS_BIT(11)
541#define ADE9000_STATUS0_REVPSUM4 NO_OS_BIT(10)
542#define ADE9000_STATUS0_REVPSUM3 NO_OS_BIT(9)
543#define ADE9000_STATUS0_REVPSUM2 NO_OS_BIT(8)
544#define ADE9000_STATUS0_REVPSUM1 NO_OS_BIT(7)
545#define ADE9000_STATUS0_REVRPC NO_OS_BIT(6)
546#define ADE9000_STATUS0_REVRPB NO_OS_BIT(5)
547#define ADE9000_STATUS0_REVRPA NO_OS_BIT(4)
548#define ADE9000_STATUS0_REVAPC NO_OS_BIT(3)
549#define ADE9000_STATUS0_REVAPB NO_OS_BIT(2)
550#define ADE9000_STATUS0_REVAPA NO_OS_BIT(1)
551#define ADE9000_STATUS0_EGYRDY NO_OS_BIT(0)
552
553/* ADE9000_REG_STATUS1 Bit Definition */
554#define ADE9000_STATUS1_ERROR3 NO_OS_BIT(31)
555#define ADE9000_STATUS1_ERROR2 NO_OS_BIT(30)
556#define ADE9000_STATUS1_ERROR1 NO_OS_BIT(29)
557#define ADE9000_STATUS1_ERROR0 NO_OS_BIT(28)
558#define ADE9000_STATUS1_CRC_DONE NO_OS_BIT(27)
559#define ADE9000_STATUS1_CRC_CHG NO_OS_BIT(26)
560#define ADE9000_STATUS1_DIPC NO_OS_BIT(25)
561#define ADE9000_STATUS1_DIPB NO_OS_BIT(24)
562#define ADE9000_STATUS1_DIPA NO_OS_BIT(23)
563#define ADE9000_STATUS1_SWELLC NO_OS_BIT(22)
564#define ADE9000_STATUS1_SWELLB NO_OS_BIT(21)
565#define ADE9000_STATUS1_SWELLA NO_OS_BIT(20)
566#define ADE9000_STATUS1_SEQERR NO_OS_BIT(18)
567#define ADE9000_STATUS1_OI NO_OS_BIT(17)
568#define ADE9000_STATUS1_RSTDONE NO_OS_BIT(16)
569#define ADE9000_STATUS1_ZXIC NO_OS_BIT(15)
570#define ADE9000_STATUS1_ZXIB NO_OS_BIT(14)
571#define ADE9000_STATUS1_ZXIA NO_OS_BIT(13)
572#define ADE9000_STATUS1_ZXCOMB NO_OS_BIT(12)
573#define ADE9000_STATUS1_ZXVC NO_OS_BIT(11)
574#define ADE9000_STATUS1_ZXVB NO_OS_BIT(10)
575#define ADE9000_STATUS1_ZXVA NO_OS_BIT(9)
576#define ADE9000_STATUS1_ZXTOVC NO_OS_BIT(8)
577#define ADE9000_STATUS1_ZXTOVB NO_OS_BIT(7)
578#define ADE9000_STATUS1_ZXTOVA NO_OS_BIT(6)
579#define ADE9000_STATUS1_VAFNOLOAD NO_OS_BIT(5)
580#define ADE9000_STATUS1_RFNOLOAD NO_OS_BIT(4)
581#define ADE9000_STATUS1_AFNOLOAD NO_OS_BIT(3)
582#define ADE9000_STATUS1_VANLOAD NO_OS_BIT(2)
583#define ADE9000_STATUS1_RNLOAD NO_OS_BIT(1)
584#define ADE9000_STATUS1_ANLOAD NO_OS_BIT(0)
585
586/* ADE9000_REG_EVENT_STATUS Bit Definition */
587#define ADE9000_EVENT_DREADY NO_OS_BIT(16)
588#define ADE9000_EVENT_VAFNOLOAD NO_OS_BIT(15)
589#define ADE9000_EVENT_RFNOLOAD NO_OS_BIT(14)
590#define ADE9000_EVENT_AFNOLOAD NO_OS_BIT(13)
591#define ADE9000_EVENT_VANLOAD NO_OS_BIT(12)
592#define ADE9000_EVENT_RNLOAD NO_OS_BIT(11)
593#define ADE9000_EVENT_ANLOAD NO_OS_BIT(10)
594#define ADE9000_EVENT_REVPSUM4 NO_OS_BIT(9)
595#define ADE9000_EVENT_REVPSUM3 NO_OS_BIT(8)
596#define ADE9000_EVENT_REVPSUM2 NO_OS_BIT(7)
597#define ADE9000_EVENT_REVPSUM1 NO_OS_BIT(6)
598#define ADE9000_EVENT_SWELLC NO_OS_BIT(5)
599#define ADE9000_EVENT_SWELLB NO_OS_BIT(4)
600#define ADE9000_EVENT_SWELLA NO_OS_BIT(3)
601#define ADE9000_EVENT_DIPC NO_OS_BIT(2)
602#define ADE9000_EVENT_DIPB NO_OS_BIT(1)
603#define ADE9000_EVENT_DIPA NO_OS_BIT(0)
604
605/* ADE9000_REG_MASK0 Bit Definition */
606#define ADE9000_MASK0_TEMP_RDY NO_OS_BIT(25)
607#define ADE9000_MASK0_MISMTCH NO_OS_BIT(24)
608#define ADE9000_MASK0_COH_WFB_FULL NO_OS_BIT(23)
609#define ADE9000_MASK0_WFB_TRIG NO_OS_BIT(22)
610#define ADE9000_MASK0_THD_PF_RDY NO_OS_BIT(21)
611#define ADE9000_MASK0_RMS1012RDY NO_OS_BIT(20)
612#define ADE9000_MASK0_RMSONERDY NO_OS_BIT(19)
613#define ADE9000_MASK0_PWRRDY NO_OS_BIT(18)
614#define ADE9000_MASK0_PAGE_FULL NO_OS_BIT(17)
615#define ADE9000_MASK0_WFB_TRIG_IRQ NO_OS_BIT(16)
616#define ADE9000_MASK0_DREADY NO_OS_BIT(15)
617#define ADE9000_MASK0_CF4 NO_OS_BIT(14)
618#define ADE9000_MASK0_CF3 NO_OS_BIT(13)
619#define ADE9000_MASK0_CF2 NO_OS_BIT(12)
620#define ADE9000_MASK0_CF1 NO_OS_BIT(11)
621#define ADE9000_MASK0_REVPSUM4 NO_OS_BIT(10)
622#define ADE9000_MASK0_REVPSUM3 NO_OS_BIT(9)
623#define ADE9000_MASK0_REVPSUM2 NO_OS_BIT(8)
624#define ADE9000_MASK0_REVPSUM1 NO_OS_BIT(7)
625#define ADE9000_MASK0_REVRPC NO_OS_BIT(6)
626#define ADE9000_MASK0_REVRPB NO_OS_BIT(5)
627#define ADE9000_MASK0_REVRPA NO_OS_BIT(4)
628#define ADE9000_MASK0_REVAPC NO_OS_BIT(3)
629#define ADE9000_MASK0_REVAPB NO_OS_BIT(2)
630#define ADE9000_MASK0_REVAPA NO_OS_BIT(1)
631#define ADE9000_MASK0_EGYRDY NO_OS_BIT(0)
632
633/* ADE9000_REG_MASK1 Bit Definition */
634#define ADE9000_MASK1_ERROR3 NO_OS_BIT(31)
635#define ADE9000_MASK1_ERROR2 NO_OS_BIT(30)
636#define ADE9000_MASK1_ERROR1 NO_OS_BIT(29)
637#define ADE9000_MASK1_ERROR0 NO_OS_BIT(28)
638#define ADE9000_MASK1_CRC_DONE NO_OS_BIT(27)
639#define ADE9000_MASK1_CRC_CHG NO_OS_BIT(26)
640#define ADE9000_MASK1_DIPC NO_OS_BIT(25)
641#define ADE9000_MASK1_DIPB NO_OS_BIT(24)
642#define ADE9000_MASK1_DIPA NO_OS_BIT(23)
643#define ADE9000_MASK1_SWELLC NO_OS_BIT(22)
644#define ADE9000_MASK1_SWELLB NO_OS_BIT(21)
645#define ADE9000_MASK1_SWELLA NO_OS_BIT(20)
646#define ADE9000_MASK1_SEQERR NO_OS_BIT(18)
647#define ADE9000_MASK1_OI NO_OS_BIT(17)
648#define ADE9000_MASK1_ZXIC NO_OS_BIT(15)
649#define ADE9000_MASK1_ZXIB NO_OS_BIT(14)
650#define ADE9000_MASK1_ZXIA NO_OS_BIT(13)
651#define ADE9000_MASK1_ZXCOMB NO_OS_BIT(12)
652#define ADE9000_MASK1_ZXVC NO_OS_BIT(11)
653#define ADE9000_MASK1_ZXVB NO_OS_BIT(10)
654#define ADE9000_MASK1_ZXVA NO_OS_BIT(9)
655#define ADE9000_MASK1_ZXTOVC NO_OS_BIT(8)
656#define ADE9000_MASK1_ZXTOVB NO_OS_BIT(7)
657#define ADE9000_MASK1_ZXTOVA NO_OS_BIT(6)
658#define ADE9000_MASK1_VAFNOLOAD NO_OS_BIT(5)
659#define ADE9000_MASK1_RFNOLOAD NO_OS_BIT(4)
660#define ADE9000_MASK1_AFNOLOAD NO_OS_BIT(3)
661#define ADE9000_MASK1_VANLOAD NO_OS_BIT(2)
662#define ADE9000_MASK1_RNLOAD NO_OS_BIT(1)
663#define ADE9000_MASK1_ANLOAD NO_OS_BIT(0)
664
665/* ADE9000_REG_EVENT_MASK Bit Definition */
666#define ADE9000_EVENT_READY_MSK NO_OS_BIT(16)
667#define ADE9000_EVENT_VAFNOLOAD_MSK NO_OS_BIT(15)
668#define ADE9000_EVENT_RFNOLOAD_MSK NO_OS_BIT(14)
669#define ADE9000_EVENT_AFNOLOAD_MSK NO_OS_BIT(13)
670#define ADE9000_EVENT_VANLOAD_MSK NO_OS_BIT(12)
671#define ADE9000_EVENT_RNLOAD_MSK NO_OS_BIT(11)
672#define ADE9000_EVENT_ANLOAD_MSK NO_OS_BIT(10)
673#define ADE9000_EVENT_REVPSUM4_MSK NO_OS_BIT(9)
674#define ADE9000_EVENT_REVPSUM3_MSK NO_OS_BIT(8)
675#define ADE9000_EVENT_REVPSUM2_MSK NO_OS_BIT(7)
676#define ADE9000_EVENT_REVPSUM1_MSK NO_OS_BIT(6)
677#define ADE9000_EVENT_SWELLCEN NO_OS_BIT(5)
678#define ADE9000_EVENT_SWELLBEN NO_OS_BIT(4)
679#define ADE9000_EVENT_SWELLAEN NO_OS_BIT(3)
680#define ADE9000_EVENT_DIPCEN NO_OS_BIT(2)
681#define ADE9000_EVENT_DIPBEN NO_OS_BIT(1)
682#define ADE9000_EVENT_DIPAEN NO_OS_BIT(0)
683
684/* ADE9000_REG_OILVL Bit Definition */
685#define ADE9000_OILVL_VAL NO_OS_GENMASK(23, 0)
686
687/* ADE9000_REG_OIA Bit Definition */
688#define ADE9000_OI_VAL NO_OS_GENMASK(23, 0)
689
690/* ADE9000_REG_OIB Bit Definition */
691#define ADE9000_OIB_VAL NO_OS_GENMASK(23, 0)
692
693/* ADE9000_REG_OIC Bit Definition */
694#define ADE9000_OIC_VAL NO_OS_GENMASK(23, 0)
695
696/* ADE9000_REG_OIN Bit Definition */
697#define ADE9000_OIN_VAL NO_OS_GENMASK(23, 0)
698
699/* ADE9000_REG_VLEVEL Bit Definition */
700#define ADE9000_VLEVEL_VAL NO_OS_GENMASK(23, 0)
701
702/* ADE9000_REG_DIP_LVL Bit Definition */
703#define ADE9000_DIPLVL NO_OS_GENMASK(23, 0)
704
705/* ADE9000_REG_DIPA Bit Definition */
706#define ADE9000_DIPA_VAL NO_OS_GENMASK(23, 0)
707
708/* ADE9000_REG_DIPB Bit Definition */
709#define ADE9000_DIPB_VAL NO_OS_GENMASK(23, 0)
710
711/* ADE9000_REG_DIPC Bit Definition */
712#define ADE9000_DIPC_VAL NO_OS_GENMASK(23, 0)
713
714/* ADE9000_REG_SWELL_LVL Bit Definition */
715#define ADE9000_SWELLLVL NO_OS_GENMASK(23, 0)
716
717/* ADE9000_REG_SWELLA Bit Definition */
718#define ADE9000_SWELLA_VAL NO_OS_GENMASK(23, 0)
719
720/* ADE9000_REG_SWELLB Bit Definition */
721#define ADE9000_SWELLB_VAL NO_OS_GENMASK(23, 0)
722
723/* ADE9000_REG_SWELLC Bit Definition */
724#define ADE9000_SWELLC_VAL NO_OS_GENMASK(23, 0)
725
726/* ADE9000_REG_PHNOLOAD Bit Definition */
727#define ADE9000_CFVANL NO_OS_BIT(17)
728#define ADE9000_CFVARNL NO_OS_BIT(16)
729#define ADE9000_CFWATTNL NO_OS_BIT(15)
730#define ADE9000_CVANL NO_OS_BIT(14)
731#define ADE9000_CVARNL NO_OS_BIT(13)
732#define ADE9000_CWATTNL NO_OS_BIT(12)
733#define ADE9000_BFVANL NO_OS_BIT(11)
734#define ADE9000_BFVARNL NO_OS_BIT(10)
735#define ADE9000_BFWATTNL NO_OS_BIT(9)
736#define ADE9000_BVANL NO_OS_BIT(8)
737#define ADE9000_BVARNL NO_OS_BIT(7)
738#define ADE9000_BWATTNL NO_OS_BIT(6)
739#define ADE9000_AFVANL NO_OS_BIT(5)
740#define ADE9000_AFVARNL NO_OS_BIT(4)
741#define ADE9000_AFWATTNL NO_OS_BIT(3)
742#define ADE9000_AVANL NO_OS_BIT(2)
743#define ADE9000_AVARNL NO_OS_BIT(1)
744#define ADE9000_AWATTNL NO_OS_BIT(0)
745
746/* ADE9000_REG_ADC_REDIRECT Bit Definition */
747#define ADE9000_VC_DIN NO_OS_GENMASK(20, 18)
748#define ADE9000_VB_DIN NO_OS_GENMASK(17, 15)
749#define ADE9000_VA_DIN NO_OS_GENMASK(14, 12)
750#define ADE9000_IN_DIN NO_OS_GENMASK(11, 9)
751#define ADE9000_IC_DIN NO_OS_GENMASK(8, 6)
752#define ADE9000_IB_DIN NO_OS_GENMASK(5, 3)
753#define ADE9000_IA_DIN NO_OS_GENMASK(2, 0)
754
755/* ADE9000_REG_CF_LCFG Bit Definition */
756#define ADE9000_CF4_LT NO_OS_BIT(22)
757#define ADE9000_CF3_LT NO_OS_BIT(21)
758#define ADE9000_CF2_LT NO_OS_BIT(20)
759#define ADE9000_CF1_LT NO_OS_BIT(19)
760#define ADE9000_CF_LTMR NO_OS_GENMASK(18, 0)
761
762/* ADE9000_REG_PART_ID Bit Definition */
763#define ADE9000_ADE9000_ID NO_OS_BIT(20)
764
765/* ADE9000_REG_TEMP_TRIM Bit Definition */
766#define ADE9000_TEMP_OFFSET NO_OS_GENMASK(31, 16)
767#define ADE9000_TEMP_GAIN NO_OS_GENMASK(15, 0)
768
769/* ADE9000_REG_CONFIG1 Bit Definition */
770#define ADE9000_EXT_REF NO_OS_BIT(15)
771#define ADE9000_IRQ0_ON_IRQ1 NO_OS_BIT(12)
772#define ADE9000_BURST_EN NO_OS_BIT(11)
773#define ADE9000_DIP_SWELL_IRQ_MODE NO_OS_BIT(10)
774#define ADE9000_PWR_SETTLE NO_OS_GENMASK(9, 8)
775#define ADE9000_CF_ACC_CLR NO_OS_BIT(5)
776#define ADE9000_CF4_CFG NO_OS_GENMASK(3, 2)
777#define ADE9000_CF3_CFG NO_OS_BIT(1)
778#define ADE9000_SWRST NO_OS_BIT(0)
779
780/* ADE9000_REG_OISTATUS Bit Definition */
781#define ADE9000_OIPHASE NO_OS_GENMASK(3, 0)
782
783/* ADE9000_REG_CFMODE Bit Definition */
784#define ADE9000_CF4DIS NO_OS_BIT(15)
785#define ADE9000_CF3DIS NO_OS_BIT(14)
786#define ADE9000_CF2DIS NO_OS_BIT(13)
787#define ADE9000_CF1DIS NO_OS_BIT(12)
788#define ADE9000_CF4SEL NO_OS_GENMASK(11, 9)
789#define ADE9000_CF3SEL NO_OS_GENMASK(8, 6)
790#define ADE9000_CF2SEL NO_OS_GENMASK(5, 3)
791#define ADE9000_CF1SEL NO_OS_GENMASK(2, 0)
792
793/* ADE9000_REG_COMPMODE Bit Definition */
794#define ADE9000_TERMSEL4 NO_OS_GENMASK(11, 9)
795#define ADE9000_TERMSEL3 NO_OS_GENMASK(8, 6)
796#define ADE9000_TERMSEL2 NO_OS_GENMASK(5, 3)
797#define ADE9000_TERMSEL1 NO_OS_GENMASK(2, 0)
798
799/* ADE9000_REG_ACCMODE Bit Definition */
800#define ADE9000_SELFREQ NO_OS_BIT(8)
801#define ADE9000_ICONSEL NO_OS_BIT(7)
802#define ADE9000_VCONSEL NO_OS_GENMASK(6, 4)
803#define ADE9000_VARACC NO_OS_GENMASK(3, 2)
804#define ADE9000_WATTACC NO_OS_GENMASK(1, 0)
805
806/* ADE9000_REG_CONFIG3 Bit Definition */
807#define ADE9000_OC_EN NO_OS_GENMASK(15, 12)
808#define ADE9000_PEAKSEL NO_OS_GENMASK(4, 2)
809
810/* ADE9000_REG_ZX_LP_SEL Bit Definition */
811#define ADE9000_LP_SEL NO_OS_GENMASK(4, 3)
812#define ADE9000_ZX_SEL NO_OS_GENMASK(2, 1)
813
814/* ADE9000_REG_PHSIGN Bit Definition */
815#define ADE9000_SUM4SIGN NO_OS_BIT(9)
816#define ADE9000_SUM3SIGN NO_OS_BIT(8)
817#define ADE9000_SUM2SIGN NO_OS_BIT(7)
818#define ADE9000_SUM1SIGN NO_OS_BIT(6)
819#define ADE9000_CVARSIGN NO_OS_BIT(5)
820#define ADE9000_CWSIGN NO_OS_BIT(4)
821#define ADE9000_BVARSIGN NO_OS_BIT(3)
822#define ADE9000_BWSIGN NO_OS_BIT(2)
823#define ADE9000_AVARSIGN NO_OS_BIT(1)
824#define ADE9000_AWSIGN NO_OS_BIT(0)
825
826/* ADE9000_REG_WFB_CFG Bit Definition */
827#define ADE9000_WF_IN_EN NO_OS_BIT(12)
828#define ADE9000_WF_SRC NO_OS_GENMASK(9, 8)
829#define ADE9000_WF_MODE NO_OS_BIT(7, 6)
830#define ADE9000_WF_CAP_SEL NO_OS_BIT(5)
831#define ADE9000_WF_CAP_EN NO_OS_BIT(4)
832#define ADE9000_BURST_CHAN NO_OS_GENMASK(3, 0)
833
834/* ADE9000_WFB_TRG_CFG Bit Definition */
835#define ADE9000_TRIG_FORCE NO_OS_BIT(10)
836#define ADE9000_ZXCOMB NO_OS_BIT(9)
837#define ADE9000_ZXVC NO_OS_BIT(8)
838#define ADE9000_ZXVB NO_OS_BIT(7)
839#define ADE9000_ZXVA NO_OS_BIT(6)
840#define ADE9000_ZXIC NO_OS_BIT(5)
841#define ADE9000_ZXIB NO_OS_BIT(4)
842#define ADE9000_ZXIA NO_OS_BIT(3)
843#define ADE9000_OI NO_OS_BIT(2)
844#define ADE9000_SWELL NO_OS_BIT(1)
845#define ADE9000_DIP NO_OS_BIT(0)
846
847/* ADE9000_WFB_TRG_STAT Bit Definition */
848#define ADE9000_WFB_LAST_PAGE NO_OS_GENMASK(15, 12)
849#define ADE9000_WFB_TRIG_ADDR NO_OS_GENMASK(10, 0)
850
851/* ADE9000_CONFIG2 Bit Definition */
852#define ADE9000_UPERIOD_SEL NO_OS_BIT(12)
853#define ADE9000_HPF_CRN NO_OS_GENMASK(11, 9)
854
855/* ADE9000_EP_CFG Bit Definition */
856#define ADE9000_NOLOAD_TMR NO_OS_GENMASK(15, 13)
857#define ADE9000_PWR_SIGN_SEL_1 NO_OS_BIT(7)
858#define ADE9000_PWR_SIGN_SEL_0 NO_OS_BIT(6)
859#define ADE9000_RD_RST_EN NO_OS_BIT(5)
860#define ADE9000_EGY_LD_ACCUM NO_OS_BIT(4)
861#define ADE9000_EGY_TMR_MODE NO_OS_BIT(1)
862#define ADE9000_EGY_PWR_EN NO_OS_BIT(0)
863
864/* ADE9000_CRC_FORCE Bit Definition */
865#define ADE9000_FORCE_CRC_UPDATE NO_OS_BIT(0)
866
867/* ADE9000_CRC_OPTEN Bit Definition */
868#define ADE9000_CRC_WFB_TRG_CFG_EN NO_OS_BIT(15)
869#define ADE9000_CRC_WFB_PG_IRQEN NO_OS_BIT(14)
870#define ADE9000_CRC_WFB_CFG_EN NO_OS_BIT(13)
871#define ADE9000_CRC_SEQ_CYC_EN NO_OS_BIT(12)
872#define ADE9000_CRC_ZXLPSEL_EN NO_OS_BIT(11)
873#define ADE9000_CRC_ZXTOUT_EN NO_OS_BIT(10)
874#define ADE9000_CRC_APP_NL_LVL_EN NO_OS_BIT(9)
875#define ADE9000_CRC_REACT_NL_LVL_EN NO_OS_BIT(8)
876#define ADE9000_CRC_ACT_NL_LVL_EN NO_OS_BIT(7)
877#define ADE9000_CRC_SWELL_CYC_EN NO_OS_BIT(6)
878#define ADE9000_CRC_SWELL_LVL_EN NO_OS_BIT(5)
879#define ADE9000_CRC_DIP_CYC_EN NO_OS_BIT(4)
880#define ADE9000_CRC_DIP_LVL_EN NO_OS_BIT(3)
881#define ADE9000_CRC_EVENT_MASK_EN NO_OS_BIT(2)
882#define ADE9000_CRC_MASK1_EN NO_OS_BIT(1)
883#define ADE9000_CRC_MASK0_EN NO_OS_BIT(0)
884
885/* ADE9000_TEMP_CFG Bit Definition */
886#define ADE9000_TEMP_START NO_OS_BIT(3)
887#define ADE9000_TEMP_EN NO_OS_BIT(2)
888#define ADE9000_TEMP_TIME NO_OS_GENMASK(1, 0)
889
890/* ADE9000_TEMP_RSLT Bit Definition */
891#define ADE9000_TEMP_RESULT NO_OS_GENMASK(11, 0)
892
893/* ADE9000_PGA_GAIN Bit Definition */
894#define ADE9000_VC_GAIN NO_OS_GENMASK(13, 12)
895#define ADE9000_VB_GAIN NO_OS_GENMASK(11, 10)
896#define ADE9000_VA_GAIN NO_OS_GENMASK(9, 8)
897#define ADE9000_IN_GAIN NO_OS_GENMASK(7, 6)
898#define ADE9000_IC_GAIN NO_OS_GENMASK(5, 4)
899#define ADE9000_IB_GAIN NO_OS_GENMASK(3, 2)
900#define ADE9000_IA_GAIN NO_OS_GENMASK(1, 0)
901
902/* ADE9000_CHNL_DIS Bit Definition */
903#define ADE9000_VC_DISADC NO_OS_BIT(6)
904#define ADE9000_VB_DISADC NO_OS_BIT(5)
905#define ADE9000_VA_DISADC NO_OS_BIT(4)
906#define ADE9000_IN_DISADC NO_OS_BIT(3)
907#define ADE9000_IC_DISADC NO_OS_BIT(2)
908#define ADE9000_IB_DISADC NO_OS_BIT(1)
909#define ADE9000_IA_DISADC NO_OS_BIT(0)
910
911/* ADE9000_VAR_DIS Bit Definition */
912#define ADE9000_VARDIS NO_OS_BIT(0)
913
914/* Miscellaneous Definitions */
915#define ADE9000_CHIP_ID 0x63
916
917/*Configuration registers*/
918/*PGA@0x0000. Gain of all channels=1*/
919#define ADE9000_PGA_GAIN 0x0000
920/*Integrator disabled*/
921#define ADE9000_CONFIG0 0x00000000
922/*CF3/ZX pin outputs Zero crossing */
923#define ADE9000_CONFIG1 0x0002
924/*Default High pass corner frequency of 1.25Hz*/
925#define ADE9000_CONFIG2 0x0C00
926/*Peak and overcurrent detection disabled*/
927#define ADE9000_CONFIG3 0x0000
928/*50Hz operation, 3P4W Wye configuration, signed accumulation*/
929#define ADE9000_ACCMODE 0x0000
930/*Temperature sensor enabled*/
931#define ADE9000_TEMP_CFG 0x000C
932/*Line period and zero crossing obtained from combined signals VA,VB and VC*/
933#define ADE9000_ZX_LP_SEL 0x001E
934/*Enable EGYRDY interrupt*/
935#define ADE9000_MASK0 0x00000001
936/*MASK1 interrupts disabled*/
937#define ADE9000_MASK1 0x00000000
938/*Events disabled */
939#define ADE9000_EVENT_MASK 0x00000000
940/*Assuming Vnom=1/2 of full scale.*/
941/*Refer Technical reference manual for detailed calculations.*/
942#define ADE9000_VLEVEL 0x0022EA28
943/* Set DICOEFF= 0xFFFFE000 when integrator is enabled*/
944#define ADE9000_DICOEFF 0x00000000
945/*Constant Definitions***/
946/*DSP ON*/
947#define ADE9000_RUN_ON 0x0001
948/*Energy Accumulation Settings*/
949/*Enable energy accumulation, accumulate samples at 8ksps*/
950/*latch energy accumulation after EGYRDY*/
951/*If accumulation is changed to half line cycle mode, change EGY_TIME*/
952#define ADE9000_EP_CFG 0x0011
953/*Accumulate 8000 samples*/
954#define ADE9000_EGY_TIME 0x1F3F
955/*Waveform buffer Settings*/
956/*Neutral current samples enabled, Resampled data enabled*/
957/*Burst all channels*/
958#define ADE9000_WFB_CFG 0x1000
959/*size of buffer to read. 512 Max.Each element IA,VA...IN has max 512 points*/
960/*[Size of waveform buffer/number of sample sets = 2048/4 = 512]*/
961/*(Refer ADE9000 technical reference manual for more details)*/
962#define WFB_ELEMENT_ARRAY_SIZE 512
963/*Full scale Codes (FS) referred from Datasheet.*/
964/*Respective digital codes are produced when ADC inputs*/
965/*are at full scale. Do not Change. */
966#define ADE9000_RMS_FS_CODES 52702092
967#define ADE9000_WATT_FS_CODES 20694066
968#define ADE9000_RESAMPLED_FS_CODES 18196
969#define ADE9000_PCF_FS_CODES 74532013
970/* Assuming a transformer ratio of 3000:1 and 10 ohms burden resistance value */
971#define ADE9000_BURDEN_RES 10
972#define ADE9000_CURRENT_TR_RATIO 3000
973#define ADE9000_CURRENT_TR_FCN (ADE9000_CURRENT_TR_RATIO / ADE9000_BURDEN_RES)
974/* Assuming a voltage divider with Rlow 1k and Rup 800k*/
975#define ADE9000_UP_RES 800000
976#define ADE9000_DOWN_RES 1000
977#define ADE9000_VOLTAGE_TR_FCN ((ADE9000_DOWN_RES + ADE9000_UP_RES) / ADE9000_DOWN_RES)
978
979// 0.707V rms full scale * 1000 for mili units
980#define ADE9000_FS_VOLTAGE 707
981
987 /* Approximated neutral current rms calculation */
989 /* Determine mismatch between neutral and
990 phase currents).*/
992 /* determine mismatch between neutral and
993 phase currents) */
995 /* approximated neutral current rms calculation */
997};
998
1018
1038
1058
1065 /* Digital to freq converter */
1067 /* Digital to freq converter */
1069 /* Event */
1071 /* Dready */
1073};
1074
1081 /* Digital to freq converter */
1083 /* Zero corssing out selected by ZX_SEL bits */
1085};
1086
1094 /* Total active power */
1096 /* Total reactive power */
1098 /* Total apparent power */
1100 /* Fundamental active power */
1102 /* Fundamental reactive power */
1104 /* Fundamental apparent power */
1106 /* Total active power */
1108 /* Total active power2 */
1110};
1111
1117 /* 50 Hz */
1119 /* 60 Hz */
1121};
1122
1128 /* 4 wire wye */
1130 /* 3-wire delta. VB' = VA − VC */
1132 /* 4-wire wye, nonBlondel compliant. VB' = −VA − VC */
1134 /* 4-wire delta, nonBlondel compliant. VB' = −VA */
1136 /* 3-wire delta. VA' = VA − VB; VB' = VA − VC; VC' = VC − VB*/
1138};
1139
1146 /* signed acc mode */
1148 /* absolute value acc mode */
1150 /* positive acc mode */
1152 /* negative acc mode */
1154};
1155
1163 /* signed acc mode */
1165 /* absolute value acc mode */
1167 /* positive acc mode */
1169 /* negative acc mode */
1171};
1172
1180 /* Phase A voltage zero-crossing signal */
1182 /* Phase B voltage zero-crossing signal */
1184 /* Phase C voltage zero-crossing signal */
1186 /* Zero-crossing on combined signal from VA, VB, and VC */
1188};
1189
1196 /* Sinc4 output at 32 kSPS */
1198 /* Sinc4 + IIR LPF output at 8 kSPS */
1200 /* Current and voltage channel waveform samples,
1201 processed by the DSP (xI_PCF, xV_PCF) at 8 kSPS */
1203};
1204
1211 /* Stop when waveform buffer is full */
1213 /* Continuous fill—stop only on enabled trigger
1214 events */
1216 /* Continuous filling—center capture around
1217 enabled trigger events. */
1219 /* Continuous fill—save event address of enabled
1220 trigger events */
1222};
1223
1230 /* All channels */
1232 /* IA and VA */
1234 /* IB and VB */
1236 /* IC and VC */
1238 /* IA */
1240 /* VA */
1242 /* IB */
1244 /* VB */
1246 /* IC */
1248 /* VC */
1250 /* IN if WF_IN_EN = 1*/
1252 /* Burst Disable read single addr */
1254};
1255
1262 /* 77.39 Hz. */
1264 /* 39.275 Hz. */
1266 /* 19.79 Hz. */
1268 /* 9.935 Hz. */
1270 /* 4.98 Hz. */
1272 /* 2.495 Hz. */
1274 /* 1.25 Hz. */
1276 /* 0.625 Hz. */
1278};
1279
1286 /* 64 samples */
1288 /* 128 samples */
1290 /* 256 samples */
1292 /* 512 samples */
1294 /* 1024 samples */
1296 /* 2048 samples */
1298 /* 4096 samples */
1300 /* disable no load threshold */
1302};
1303
1310 /* 1 sample. New temperature measurement every
1311 1.25 ms. */
1313 /* 256 samples. New temperature measurement
1314 every 320 ms */
1316 /* 512 samples. New temperature measurement
1317 every 640 ms*/
1319 /* 1024 samples. New temperature measurement
1320 every 1.3 sec. */
1322};
1323
1329 /* Gain = 1 */
1331 /* Gain = 2 */
1333 /* Gain = 3 */
1335 /* Gain = 4 */
1337};
1338
1348
1358
1369
1378 uint32_t watt_val;
1380 uint32_t irms_val;
1382 uint32_t vrms_val;
1384 int32_t temp_deg;
1385};
1386
1387/* Read device register. */
1388int ade9000_read(struct ade9000_dev *dev, uint16_t reg_addr,
1389 uint32_t *reg_data);
1390
1391/* Write device register. */
1392int ade9000_write(struct ade9000_dev *dev, uint16_t reg_addr,
1393 uint32_t reg_data);
1394
1395/* Update specific register bits. */
1396int ade9000_update_bits(struct ade9000_dev *dev, uint16_t reg_addr,
1397 uint32_t mask, uint32_t reg_data);
1398
1399/* Read temperature */
1400int ade9000_read_temp(struct ade9000_dev *dev);
1401
1402/* Read Energy/Power for specific phase */
1403int ade9000_read_data_ph(struct ade9000_dev *dev, enum ade9000_phase phase);
1404
1405/* Set User Energy use model */
1406int ade9000_set_egy_model(struct ade9000_dev *dev, enum ade9000_egy_model model,
1407 uint16_t value);
1408
1409/* Initialize the device. */
1410int ade9000_init(struct ade9000_dev **device,
1412
1413/* Setup the device */
1414int ade9000_setup(struct ade9000_dev *dev);
1415
1416/* Remove the device and release resources. */
1417int ade9000_remove(struct ade9000_dev *dev);
1418
1419/* Get interrupt indicator from STATUS0 register. */
1420int ade9000_get_int_status0(struct ade9000_dev *dev, uint32_t msk,
1421 uint8_t *status);
1422
1423#endif // __ADE9000_H__
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
ade9000_cf4_sel_e
ADE9000 Type of energy output on the CF4 pin. Configure TERMSEL4 in the COMPMODE register to select w...
Definition ade9000.h:1093
@ ADE9000_CF4_SEL_FUN_REACTIVE_P
Definition ade9000.h:1103
@ ADE9000_CF4_SEL_FUN_ACTIVE_P
Definition ade9000.h:1101
@ ADE9000_CF4_SEL_TOTAL_ACTIVE_P
Definition ade9000.h:1107
@ ADE9000_CF4_SEL_FUN_APPARENT_P
Definition ade9000.h:1105
@ ADE9000_CF4_SEL_APPARENT_P
Definition ade9000.h:1099
@ ADE9000_CF4_SEL_REACTIV_P
Definition ade9000.h:1097
@ ADE9000_CF4_SEL_TOTAL_ACTIVE_P_2
Definition ade9000.h:1109
@ ADE9000_CF4_SEL_ACTIV_P
Definition ade9000.h:1095
int ade9000_write(struct ade9000_dev *dev, uint16_t reg_addr, uint32_t reg_data)
Write device register.
Definition ade9000.c:93
ade9000_cf4_pin_out_cfg_e
ADE9000 These bits indicate which function to output on CF4 pin.
Definition ade9000.h:1064
@ ADE9000_CF4_D_F_CONV2
Definition ade9000.h:1068
@ ADE9000_CF4_DREADY
Definition ade9000.h:1072
@ ADE9000_CF4_EVENT
Definition ade9000.h:1070
@ ADE9000_CF4_D_F_CONV
Definition ade9000.h:1066
ade9000_wf_mode_e
Fixed data rate waveforms filling and trigger based modes.
Definition ade9000.h:1210
@ ADE9000_MODE_STOP_FULL
Definition ade9000.h:1212
@ ADE9000_MODE_TRIG_EN_EVENTS
Definition ade9000.h:1215
@ ADE9000_MODE_SAVE_EVENT_ADDR
Definition ade9000.h:1221
@ ADE9000_MODE_CENTER_CAPTURE
Definition ade9000.h:1218
ade9000_isum_cfg_e
ADE9000 isum calculation configuration.
Definition ade9000.h:986
@ ADE9000_ISUM_DET_MISM_POS
Definition ade9000.h:991
@ ADE9000_ISUM_APROX_N_RMS
Definition ade9000.h:996
@ ADE9000_ISUM_APROX_N
Definition ade9000.h:988
@ ADE9000_ISUM_DET_MISM_NEG
Definition ade9000.h:994
ade9000_burst_ch_e
Selects which data to read out of the waveform buffer through SPI.
Definition ade9000.h:1229
@ ADE9000_BURST_IA
Definition ade9000.h:1239
@ ADE9000_BURST_DISABLED
Definition ade9000.h:1253
@ ADE9000_BURST_IC
Definition ade9000.h:1247
@ ADE9000_BURST_VA
Definition ade9000.h:1241
@ ADE9000_BURST_IB_VB
Definition ade9000.h:1235
@ ADE9000_BURST_VC
Definition ade9000.h:1249
@ ADE9000_BURST_IA_VA
Definition ade9000.h:1233
@ ADE9000_BURST_IN
Definition ade9000.h:1251
@ ADE9000_BURST_IB
Definition ade9000.h:1243
@ ADE9000_BURST_ALL_CH
Definition ade9000.h:1231
@ ADE9000_BURST_VB
Definition ade9000.h:1245
@ ADE9000_BURST_IC_VC
Definition ade9000.h:1237
ade9000_var_acc_mode_e
ADE9000 Total and fundamental reactive power accumulation mode for energy registers and CFx pulses.
Definition ade9000.h:1145
@ ADE9000_ACC_NEGATIVE
Definition ade9000.h:1153
@ ADE9000_ACC_SIGNED
Definition ade9000.h:1147
@ ADE9000_ACC_POSITIVE
Definition ade9000.h:1151
@ ADE9000_ACC_ABSOLUTE
Definition ade9000.h:1149
ade9000_line_period_sel_e
Selects line period measurement used for VRMS½ cycle, 10 cycle rms/12 cycle rms, and resampling.
Definition ade9000.h:1162
@ ADE9000_BPERIOD
Definition ade9000.h:1166
@ ADE9000_APERIOD
Definition ade9000.h:1164
@ ADE9000_COM_PERIOD
Definition ade9000.h:1170
@ ADE9000_CPERIOD
Definition ade9000.h:1168
ade9000_wf_src_e
Waveform buffer source and DREADY (data ready update rate) selection.
Definition ade9000.h:1195
@ ADE9000_SRC_SINC4_IIR
Definition ade9000.h:1199
@ ADE9000_SRC_SINC4
Definition ade9000.h:1197
@ ADE9000_SRC_DSP
Definition ade9000.h:1202
ade9000_hpf_freq_e
High-pass filter corner (f3dB) enabled when the HPFDIS bit in the CONFIG0 register is equal to zero.
Definition ade9000.h:1261
@ ADE9000_HPF_0_625
Definition ade9000.h:1277
@ ADE9000_HPF_19_79
Definition ade9000.h:1267
@ ADE9000_HPF_4_98
Definition ade9000.h:1271
@ ADE9000_HPF_9_935
Definition ade9000.h:1269
@ ADE9000_HPF_39_275
Definition ade9000.h:1265
@ ADE9000_HPF_2_495
Definition ade9000.h:1273
@ ADE9000_HPF_77_39
Definition ade9000.h:1263
@ ADE9000_HPF_1_25
Definition ade9000.h:1275
ade9000_cregion_sel_e
ADE9000 These bits indicate which CIGAINx and CPHCALx is currently being used.
Definition ade9000.h:1044
@ ADE9000_CIGAIN_CPHCAL_0
Definition ade9000.h:1046
@ ADE9000_CIGAIN_CPHCAL_2
Definition ade9000.h:1050
@ ADE9000_CIGAIN_CPHCAL_4
Definition ade9000.h:1054
@ ADE9000_CIGAIN_CPHCAL_DISABLE
Definition ade9000.h:1056
@ ADE9000_CIGAIN_CPHCAL_3
Definition ade9000.h:1052
@ ADE9000_CIGAIN_CPHCAL_1
Definition ade9000.h:1048
int ade9000_read_temp(struct ade9000_dev *dev)
Read the temperature.
Definition ade9000.c:176
ade9000_zx_select_e
Selects the zero-crossing signal, which can be routed to the CF3/ZX output pin and used for line cycl...
Definition ade9000.h:1179
@ ADE9000_ZXVC_SEL
Definition ade9000.h:1185
@ ADE9000_ZXVB_SEL
Definition ade9000.h:1183
@ ADE9000_ZXCOMB_SEL
Definition ade9000.h:1187
@ ADE9000_ZXVA_SEL
Definition ade9000.h:1181
ade9000_vconsel_e
ADE9000 3-wire and 4-wire hardware configuration selection.
Definition ade9000.h:1127
@ ADE9000_4WIRE_WYE_VA
Definition ade9000.h:1135
@ ADE9000_3WIRE_DELTA
Definition ade9000.h:1131
@ ADE9000_4WIRE_WYE_VA_VC
Definition ade9000.h:1133
@ ADE9000_4WIRE_WYE
Definition ade9000.h:1129
@ ADE9000_3WIRE_DELTA_2
Definition ade9000.h:1137
ade9000_egy_model
ADE9000 available user energy use models.
Definition ade9000.h:1353
@ ADE9000_EGY_NR_SAMPLES
Definition ade9000.h:1356
@ ADE9000_EGY_WITH_RESET
Definition ade9000.h:1354
@ ADE9000_EGY_HALF_LINE_CYCLES
Definition ade9000.h:1355
int ade9000_init(struct ade9000_dev **device, struct ade9000_init_param init_param)
Initialize the device.
Definition ade9000.c:376
ade9000_bregion_sel_e
ADE9000 These bits indicate which BIGAINx and BPHCALx is currently being used.
Definition ade9000.h:1024
@ ADE9000_BIGAIN_BPHCAL_4
Definition ade9000.h:1034
@ ADE9000_BIGAIN_BPHCAL_DISABLE
Definition ade9000.h:1036
@ ADE9000_BIGAIN_BPHCAL_0
Definition ade9000.h:1026
@ ADE9000_BIGAIN_BPHCAL_2
Definition ade9000.h:1030
@ ADE9000_BIGAIN_BPHCAL_1
Definition ade9000.h:1028
@ ADE9000_BIGAIN_BPHCAL_3
Definition ade9000.h:1032
int ade9000_get_int_status0(struct ade9000_dev *dev, uint32_t msk, uint8_t *status)
Get interrupt indicator from STATUS0 register.
Definition ade9000.c:150
ade9000_temp_time_e
Select the number of temperature readings to average.
Definition ade9000.h:1309
@ ADE9000_TEMP_TIME_1024
Definition ade9000.h:1321
@ ADE9000_TEMP_TIME_1
Definition ade9000.h:1312
@ ADE9000_TEMP_TIME_256
Definition ade9000.h:1315
@ ADE9000_TEMP_TIME_512
Definition ade9000.h:1318
ade9000_pga_gain_e
PGA gain.
Definition ade9000.h:1328
@ ADE9000_PGA_GAIN_4
Definition ade9000.h:1336
@ ADE9000_PGA_GAIN_1
Definition ade9000.h:1330
@ ADE9000_PGA_GAIN_3
Definition ade9000.h:1334
@ ADE9000_PGA_GAIN_2
Definition ade9000.h:1332
ade9000_phase
ADE9000 available phases.
Definition ade9000.h:1343
@ ADE9000_PHASE_C
Definition ade9000.h:1346
@ ADE9000_PHASE_B
Definition ade9000.h:1345
@ ADE9000_PHASE_A
Definition ade9000.h:1344
int ade9000_read_data_ph(struct ade9000_dev *dev, enum ade9000_phase phase)
Read the power/energy for specific phase.
Definition ade9000.c:238
int ade9000_remove(struct ade9000_dev *dev)
Remove the device and release resources.
Definition ade9000.c:499
int ade9000_setup(struct ade9000_dev *dev)
Setup the device.
Definition ade9000.c:434
ade9000_cf3_pin_out_cfg_e
ADE9000 These bits indicate which function to output on CF3 pin.
Definition ade9000.h:1080
@ ADE9000_CF3_D_F_CONV
Definition ade9000.h:1082
@ ADE9000_CF3_ZX
Definition ade9000.h:1084
int ade9000_set_egy_model(struct ade9000_dev *dev, enum ade9000_egy_model model, uint16_t value)
Set User Energy use model.
Definition ade9000.c:315
int ade9000_update_bits(struct ade9000_dev *dev, uint16_t reg_addr, uint32_t mask, uint32_t reg_data)
Update specific register bits.
Definition ade9000.c:123
ade9000_aregion_sel_e
ADE9000 These bits indicate which AIGAINx and APHCALx is currently being used.
Definition ade9000.h:1004
@ ADE9000_AIGAIN_APHCAL_3
Definition ade9000.h:1012
@ ADE9000_AIGAIN_APHCAL_0
Definition ade9000.h:1006
@ ADE9000_AIGAIN_APHCAL_2
Definition ade9000.h:1010
@ ADE9000_AIGAIN_APHCAL_4
Definition ade9000.h:1014
@ ADE9000_AIGAIN_APHCAL_DISABLE
Definition ade9000.h:1016
@ ADE9000_AIGAIN_APHCAL_1
Definition ade9000.h:1008
int ade9000_read(struct ade9000_dev *dev, uint16_t reg_addr, uint32_t *reg_data)
Read device register.
Definition ade9000.c:48
ade9000_no_load_tmr_e
This register configures how many 8 kSPS samples to evaluate the no load condition over.
Definition ade9000.h:1285
@ ADE9000_NOLOAD_SAMPLES_64
Definition ade9000.h:1287
@ ADE9000_NOLOAD_SAMPLES_DISABLE
Definition ade9000.h:1301
@ ADE9000_NOLOAD_SAMPLES_4096
Definition ade9000.h:1299
@ ADE9000_NOLOAD_SAMPLES_512
Definition ade9000.h:1293
@ ADE9000_NOLOAD_SAMPLES_128
Definition ade9000.h:1289
@ ADE9000_NOLOAD_SAMPLES_1024
Definition ade9000.h:1295
@ ADE9000_NOLOAD_SAMPLES_256
Definition ade9000.h:1291
@ ADE9000_NOLOAD_SAMPLES_2048
Definition ade9000.h:1297
ade9000_freq_sel_e
ADE9000 Freq value.
Definition ade9000.h:1116
@ ADE9000_SELFREQ_50
Definition ade9000.h:1118
@ ADE9000_SELFREQ_60
Definition ade9000.h:1120
Header file of SPI Interface.
Header file of utility functions.
ADE9000 Device structure.
Definition ade9000.h:1374
struct no_os_spi_desc * spi_desc
Definition ade9000.h:1376
uint32_t vrms_val
Definition ade9000.h:1382
int32_t temp_deg
Definition ade9000.h:1384
uint32_t irms_val
Definition ade9000.h:1380
uint32_t watt_val
Definition ade9000.h:1378
ADE9000 Device initialization parameters.
Definition ade9000.h:1363
bool temp_en
Definition ade9000.h:1367
struct no_os_spi_init_param * spi_init
Definition ade9000.h:1365
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