no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ade9430.h
Go to the documentation of this file.
1/***************************************************************************/
33#ifndef __ADE9430_H__
34#define __ADE9430_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 ADE9430_SPI_READ NO_OS_BIT(3)
44#define ADE9430_R1B NO_OS_BIT(16)
45#define ADE9430_R2B NO_OS_BIT(17)
46
47/* ADE9430 Register Map */
48#define ADE9430_REG_AIGAIN 0x0000
49#define ADE9430_REG_AIGAIN0 0x0001
50#define ADE9430_REG_AIGAIN1 0x0002
51#define ADE9430_REG_AIGAIN2 0x0003
52#define ADE9430_REG_AIGAIN3 0x0004
53#define ADE9430_REG_AIGAIN4 0x0005
54#define ADE9430_REG_APHCAL0 0x0006
55#define ADE9430_REG_APHCAL1 0x0007
56#define ADE9430_REG_APHCAL2 0x0008
57#define ADE9430_REG_APHCAL3 0x0009
58#define ADE9430_REG_APHCAL4 0x000A
59#define ADE9430_REG_AVGAIN 0x000B
60#define ADE9430_REG_AIRMSOS 0x000C
61#define ADE9430_REG_AVRMSOS 0x000D
62#define ADE9430_REG_APGAIN 0x000E
63#define ADE9430_REG_AWATTOS 0x000F
64#define ADE9430_REG_AVAROS 0x0010
65#define ADE9430_REG_AFWATTOS 0x0011
66#define ADE9430_REG_AFVAROS 0x0012
67#define ADE9430_REG_AIFRMSOS 0x0013
68#define ADE9430_REG_AVFRMSOS 0x0014
69#define ADE9430_REG_AVRMSONEOS 0x0015
70#define ADE9430_REG_AIRMSONEOS 0x0016
71#define ADE9430_REG_AVRMS1012OS 0x0017
72#define ADE9430_REG_AIRMS1012OS 0x0018
73#define ADE9430_REG_BIGAIN 0x0020
74#define ADE9430_REG_BIGAIN0 0x0021
75#define ADE9430_REG_BIGAIN1 0x0022
76#define ADE9430_REG_BIGAIN2 0x0023
77#define ADE9430_REG_BIGAIN3 0x0024
78#define ADE9430_REG_BIGAIN4 0x0025
79#define ADE9430_REG_BPHCAL0 0x0026
80#define ADE9430_REG_BPHCAL1 0x0027
81#define ADE9430_REG_BPHCAL2 0x0028
82#define ADE9430_REG_BPHCAL3 0x0029
83#define ADE9430_REG_BPHCAL4 0x002A
84#define ADE9430_REG_BVGAIN 0x002B
85#define ADE9430_REG_BIRMSOS 0x002C
86#define ADE9430_REG_BVRMSOS 0x002D
87#define ADE9430_REG_BPGAIN 0x002E
88#define ADE9430_REG_BWATTOS 0x002F
89#define ADE9430_REG_BVAROS 0x0030
90#define ADE9430_REG_BFWATTOS 0x0031
91#define ADE9430_REG_BFVAROS 0x0032
92#define ADE9430_REG_BIFRMSOS 0x0033
93#define ADE9430_REG_BVFRMSOS 0x0034
94#define ADE9430_REG_BVRMSONEOS 0x0035
95#define ADE9430_REG_BIRMSONEOS 0x0036
96#define ADE9430_REG_BVRMS1012OS 0x0037
97#define ADE9430_REG_BIRMS1012OS 0x0038
98#define ADE9430_REG_CIGAIN 0x0040
99#define ADE9430_REG_CIGAIN0 0x0041
100#define ADE9430_REG_CIGAIN1 0x0042
101#define ADE9430_REG_CIGAIN2 0x0043
102#define ADE9430_REG_CIGAIN3 0x0044
103#define ADE9430_REG_CIGAIN4 0x0045
104#define ADE9430_REG_CPHCAL0 0x0046
105#define ADE9430_REG_CPHCAL1 0x0047
106#define ADE9430_REG_CPHCAL2 0x0048
107#define ADE9430_REG_CPHCAL3 0x0049
108#define ADE9430_REG_CPHCAL4 0x004A
109#define ADE9430_REG_CVGAIN 0x004B
110#define ADE9430_REG_CIRMSOS 0x004C
111#define ADE9430_REG_CVRMSOS 0x004D
112#define ADE9430_REG_CPGAIN 0x004E
113#define ADE9430_REG_CWATTOS 0x004F
114#define ADE9430_REG_CVAROS 0x0050
115#define ADE9430_REG_CFWATTOS 0x0051
116#define ADE9430_REG_CFVAROS 0x0052
117#define ADE9430_REG_CIFRMSOS 0x0053
118#define ADE9430_REG_CVFRMSOS 0x0054
119#define ADE9430_REG_CVRMSONEOS 0x0055
120#define ADE9430_REG_CIRMSONEOS 0x0056
121#define ADE9430_REG_CVRMS1012OS 0x0057
122#define ADE9430_REG_CIRMS1012OS 0x0058
123#define ADE9430_REG_CONFIG0 0x0060
124#define ADE9430_REG_MTTHR_L0 0x0061
125#define ADE9430_REG_MTTHR_L1 0x0062
126#define ADE9430_REG_MTTHR_L2 0x0063
127#define ADE9430_REG_MTTHR_L3 0x0064
128#define ADE9430_REG_MTTHR_L4 0x0065
129#define ADE9430_REG_MTTHR_H0 0x0066
130#define ADE9430_REG_MTTHR_H1 0x0067
131#define ADE9430_REG_MTTHR_H2 0x0068
132#define ADE9430_REG_MTTHR_H3 0x0069
133#define ADE9430_REG_MTTHR_H4 0x006A
134#define ADE9430_REG_NIRMSOS 0x006B
135#define ADE9430_REG_ISUMRMSOS 0x006C
136#define ADE9430_REG_NIGAIN 0x006D
137#define ADE9430_REG_NPHCAL 0x006E
138#define ADE9430_REG_NIRMSONEOS 0x006F
139#define ADE9430_REG_NIRMS1012OS 0x0070
140#define ADE9430_REG_VNOM 0x0071
141#define ADE9430_REG_ISUMLVL 0x0073
142#define ADE9430_REG_AI_PCF 0x020A
143#define ADE9430_REG_AV_PCF 0x020B
144#define ADE9430_REG_AIRMS 0x020C
145#define ADE9430_REG_AVRMS 0x020D
146#define ADE9430_REG_AIFRMS 0x020E
147#define ADE9430_REG_AVFRMS 0x020F
148#define ADE9430_REG_AWATT 0x0210
149#define ADE9430_REG_AVAR 0x0211
150#define ADE9430_REG_AVA 0x0212
151#define ADE9430_REG_AFWATT 0x0213
152#define ADE9430_REG_AFVAR 0x0214
153#define ADE9430_REG_AFVA 0x0215
154#define ADE9430_REG_APF 0x0216
155#define ADE9430_REG_AIRMSONE 0x0219
156#define ADE9430_REG_AVRMSONE 0x021A
157#define ADE9430_REG_AIRMS1012 0x021B
158#define ADE9430_REG_AVRMS1012 0x021C
159#define ADE9430_REG_AMTREGION 0x021D
160#define ADE9430_REG_BI_PCF 0x022A
161#define ADE9430_REG_BV_PCF 0x022B
162#define ADE9430_REG_BIRMS 0x022C
163#define ADE9430_REG_BVRMS 0x022D
164#define ADE9430_REG_BIFRMS 0x022E
165#define ADE9430_REG_BVFRMS 0x022F
166#define ADE9430_REG_BWATT 0x0230
167#define ADE9430_REG_BVAR 0x0231
168#define ADE9430_REG_BVA 0x0232
169#define ADE9430_REG_BFWATT 0x0233
170#define ADE9430_REG_BFVAR 0x0234
171#define ADE9430_REG_BFVA 0x0235
172#define ADE9430_REG_BPF 0x0236
173#define ADE9430_REG_BIRMSONE 0x0239
174#define ADE9430_REG_BVRMSONE 0x023A
175#define ADE9430_REG_BIRMS1012 0x023B
176#define ADE9430_REG_BVRMS1012 0x023C
177#define ADE9430_REG_BMTREGION 0x023D
178#define ADE9430_REG_CI_PCF 0x024A
179#define ADE9430_REG_CV_PCF 0x024B
180#define ADE9430_REG_CIRMS 0x024C
181#define ADE9430_REG_CVRMS 0x024D
182#define ADE9430_REG_CIFRMS 0x024E
183#define ADE9430_REG_CVFRMS 0x024F
184#define ADE9430_REG_CWATT 0x0250
185#define ADE9430_REG_CVAR 0x0251
186#define ADE9430_REG_CVA 0x0252
187#define ADE9430_REG_CFWATT 0x0253
188#define ADE9430_REG_CFVAR 0x0254
189#define ADE9430_REG_CFVA 0x0255
190#define ADE9430_REG_CPF 0x0256
191#define ADE9430_REG_CIRMSONE 0x0259
192#define ADE9430_REG_CVRMSONE 0x025A
193#define ADE9430_REG_CIRMS1012 0x025B
194#define ADE9430_REG_CVRMS1012 0x025C
195#define ADE9430_REG_CMTREGION 0x025D
196#define ADE9430_REG_NI_PCF 0x0265
197#define ADE9430_REG_NIRMS 0x0266
198#define ADE9430_REG_NIRMSONE 0x0267
199#define ADE9430_REG_NIRMS1012 0x0268
200#define ADE9430_REG_ISUMRMS 0x0269
201#define ADE9430_REG_VERSION2 0x026A
202#define ADE9430_REG_NPERIOD_FORRMS 0x026B
203#define ADE9430_REG_COH_PAGE 0x026C
204#define ADE9430_REG_RESAMPLE_STATUS 0x026D
205#define ADE9430_REG_AWATT_ACC 0x02E5
206#define ADE9430_REG_AWATTHR_LO 0x02E6
207#define ADE9430_REG_AWATTHR_HI 0x02E7
208#define ADE9430_REG_AVAR_ACC 0x02EF
209#define ADE9430_REG_AVARHR_LO 0x02F0
210#define ADE9430_REG_AVARHR_HI 0x02F1
211#define ADE9430_REG_AVA_ACC 0x02F9
212#define ADE9430_REG_AVAHR_LO 0x02FA
213#define ADE9430_REG_AVAHR_HI 0x02FB
214#define ADE9430_REG_AFWATT_ACC 0x0303
215#define ADE9430_REG_AFWATTHR_LO 0x0304
216#define ADE9430_REG_AFWATTHR_HI 0x0305
217#define ADE9430_REG_AFVAR_ACC 0x030D
218#define ADE9430_REG_AFVARHR_LO 0x030E
219#define ADE9430_REG_AFVARHR_HI 0x030F
220#define ADE9430_REG_AFVA_ACC 0x0317
221#define ADE9430_REG_AFVAHR_LO 0x0318
222#define ADE9430_REG_AFVAHR_HI 0x0319
223#define ADE9430_REG_BWATT_ACC 0x0321
224#define ADE9430_REG_BWATTHR_LO 0x0322
225#define ADE9430_REG_BWATTHR_HI 0x0323
226#define ADE9430_REG_BVAR_ACC 0x032B
227#define ADE9430_REG_BVARHR_LO 0x032C
228#define ADE9430_REG_BVARHR_HI 0x032D
229#define ADE9430_REG_BVA_ACC 0x0335
230#define ADE9430_REG_BVAHR_LO 0x0336
231#define ADE9430_REG_BVAHR_HI 0x0337
232#define ADE9430_REG_BFWATT_ACC 0x033F
233#define ADE9430_REG_BFWATTHR_LO 0x0340
234#define ADE9430_REG_BFWATTHR_HI 0x0341
235#define ADE9430_REG_BFVAR_ACC 0x0349
236#define ADE9430_REG_BFVARHR_LO 0x034A
237#define ADE9430_REG_BFVARHR_HI 0x034B
238#define ADE9430_REG_BFVA_ACC 0x0353
239#define ADE9430_REG_BFVAHR_LO 0x0354
240#define ADE9430_REG_BFVAHR_HI 0x0355
241#define ADE9430_REG_CWATT_ACC 0x0355
242#define ADE9430_REG_CWATTHR_LO 0x035E
243#define ADE9430_REG_CWATTHR_HI 0x035F
244#define ADE9430_REG_CVAR_ACC 0x0367
245#define ADE9430_REG_CVARHR_LO 0x0368
246#define ADE9430_REG_CVARHR_HI 0x0369
247#define ADE9430_REG_CVA_ACC 0x0371
248#define ADE9430_REG_CVAHR_LO 0x0372
249#define ADE9430_REG_CVAHR_HI 0x0373
250#define ADE9430_REG_CFWATT_ACC 0x037B
251#define ADE9430_REG_CFWATTHR_LO 0x037C
252#define ADE9430_REG_CFWATTHR_HI 0x037D
253#define ADE9430_REG_CFVAR_ACC 0x0385
254#define ADE9430_REG_CFVARHR_LO 0x0386
255#define ADE9430_REG_CFVARHR_HI 0x0387
256#define ADE9430_REG_CFVA_ACC 0x038F
257#define ADE9430_REG_CFVAHR_LO 0x0390
258#define ADE9430_REG_CFVAHR_HI 0x0391
259#define ADE9430_REG_PWATT_ACC 0x0397
260#define ADE9430_REG_NWATT_ACC 0x039B
261#define ADE9430_REG_PVAR_ACC 0x039F
262#define ADE9430_REG_NVAR_ACC 0x03A3
263#define ADE9430_REG_IPEAK 0x0400
264#define ADE9430_REG_VPEAK 0x0401
265#define ADE9430_REG_STATUS0 0x0402
266#define ADE9430_REG_STATUS1 0x0403
267#define ADE9430_REG_EVENT_STATUS 0x0404
268#define ADE9430_REG_MASK0 0x0405
269#define ADE9430_REG_MASK1 0x0406
270#define ADE9430_REG_EVENT_MASK 0x0407
271#define ADE9430_REG_OILVL 0x0409
272#define ADE9430_REG_OIA 0x040A
273#define ADE9430_REG_OIB 0x040B
274#define ADE9430_REG_OIC 0x040C
275#define ADE9430_REG_OIN 0x040D
276#define ADE9430_REG_USER_PERIOD 0x040E
277#define ADE9430_REG_VLEVEL 0x040F
278#define ADE9430_REG_APERIOD 0x0418
279#define ADE9430_REG_BPERIOD 0x0419
280#define ADE9430_REG_CPERIOD 0x041A
281#define ADE9430_REG_COM_PERIOD 0x041B
282#define ADE9430_REG_ACT_NL_LVL 0x041C
283#define ADE9430_REG_REACT_NL_LVL 0x041D
284#define ADE9430_REG_APP_NL_LVL 0x041E
285#define ADE9430_REG_PHNOLOAD 0x041F
286#define ADE9430_REG_WTHR 0x0420
287#define ADE9430_REG_VARTHR 0x0421
288#define ADE9430_REG_VATHR 0x0422
289#define ADE9430_REG_LAST_DATA_32 0x0423
290#define ADE9430_REG_ADC_REDIRECT 0x0424
291#define ADE9430_REG_CF_LCFG 0x0425
292#define ADE9430_REG_PART_ID 0x0472
293#define ADE9430_REG_TEMP_TRIM 0x0474
294#define ADE9430_REG_RUN 0x0480
295#define ADE9430_REG_CONFIG1 0x0481
296#define ADE9430_REG_ANGL_VA_VB 0x0482
297#define ADE9430_REG_ANGL_VB_VC 0x0483
298#define ADE9430_REG_ANGL_VA_VC 0x0484
299#define ADE9430_REG_ANGL_VB_IA 0x0485
300#define ADE9430_REG_ANGL_VB_IB 0x0486
301#define ADE9430_REG_ANGL_VC_IC 0x0487
302#define ADE9430_REG_ANGL_IA_IB 0x0488
303#define ADE9430_REG_ANGL_IB_IC 0x0489
304#define ADE9430_REG_ANGL_IA_IC 0x048A
305#define ADE9430_REG_OISTATUS 0x048F
306#define ADE9430_REG_CFMODE 0x0490
307#define ADE9430_REG_COMPMODE 0x0491
308#define ADE9430_REG_ACCMODE 0x0492
309#define ADE9430_REG_CONFIG3 0x0493
310#define ADE9430_REG_CF1DEN 0x0494
311#define ADE9430_REG_CF2DEN 0x0495
312#define ADE9430_REG_CF3DEN 0x0496
313#define ADE9430_REG_CF4DEN 0x0497
314#define ADE9430_REG_ZXTOUT 0x0498
315#define ADE9430_REG_ZXTHRSH 0x0499
316#define ADE9430_REG_ZX_LP_SEL 0x049A
317#define ADE9430_REG_SEQ_CYC 0x049C
318#define ADE9430_REG_PHSIGN 0x049D
319#define ADE9430_REG_WFB_CFG 0x04A0
320#define ADE9430_REG_WFB_PG_IRQEN 0x04A1
321#define ADE9430_REG_WFB_TRG_CFG 0x04A2
322#define ADE9430_REG_WFB_TRG_STAT 0x04A3
323#define ADE9430_REG_CONFIG5 0x04A4
324#define ADE9430_REG_CRC_RSLT 0x04A8
325#define ADE9430_REG_CRC_SPI 0x04A9
326#define ADE9430_REG_LAST_DATA_16 0x04AC
327#define ADE9430_REG_LAST_CMD 0x04AE
328#define ADE9430_REG_CONFIG2 0x04AF
329#define ADE9430_REG_EP_CFG 0x04B0
330#define ADE9430_REG_PWR_TIME 0x04B1
331#define ADE9430_REG_EGY_TIME 0x04B2
332#define ADE9430_REG_CRC_FORCE 0x04B4
333#define ADE9430_REG_CRC_OPTEN 0x04B5
334#define ADE9430_REG_TEMP_CFG 0x04B6
335#define ADE9430_REG_TEMP_RSLT 0x04B7
336#define ADE9430_REG_PGA_GAIN 0x04B9
337#define ADE9430_REG_CHNL_DIS 0x04BA
338#define ADE9430_REG_WR_LOCK 0x04BF
339#define ADE9430_REG_VAR_DIS 0x04E0
340#define ADE9430_REG_RESERVED1 0x04F0
341#define ADE9430_REG_VERSION 0x04FE
342#define ADE9430_REG_AI_SINC_DAT 0x0500
343#define ADE9430_REG_AV_SINC_DAT 0x0501
344#define ADE9430_REG_BI_SINC_DAT 0x0502
345#define ADE9430_REG_BV_SINC_DAT 0x0503
346#define ADE9430_REG_CI_SINC_DAT 0x0504
347#define ADE9430_REG_CV_SINC_DAT 0x0505
348#define ADE9430_REG_NI_SINC_DAT 0x0506
349#define ADE9430_REG_AI_LPF_DAT 0x0510
350#define ADE9430_REG_AV_LPF_DAT 0x0511
351#define ADE9430_REG_BI_LPF_DAT 0x0512
352#define ADE9430_REG_BV_LPF_DAT 0x0513
353#define ADE9430_REG_CI_LPF_DAT 0x0514
354#define ADE9430_REG_CV_LPF_DAT 0x0515
355#define ADE9430_REG_NI_LPF_DAT 0x0516
356#define ADE9430_REG_AV_PCF_1 0x0600
357#define ADE9430_REG_BV_PCF_1 0x0601
358#define ADE9430_REG_CV_PCF_1 0x0602
359#define ADE9430_REG_NI_PCF_1 0x0603
360#define ADE9430_REG_AI_PCF_1 0x0604
361#define ADE9430_REG_BI_PCF_1 0x0605
362#define ADE9430_REG_CI_PCF_1 0x0606
363#define ADE9430_REG_AIRMS_1 0x0607
364#define ADE9430_REG_BIRMS_1 0x0608
365#define ADE9430_REG_CIRMS_1 0x0609
366#define ADE9430_REG_AVRMS_1 0x060A
367#define ADE9430_REG_BVRMS_1 0x060B
368#define ADE9430_REG_CVRMS_1 0x060C
369#define ADE9430_REG_NIRMS_1 0x060D
370#define ADE9430_REG_AWATT_1 0x060E
371#define ADE9430_REG_BWATT_1 0x060F
372#define ADE9430_REG_CWATT_1 0x0610
373#define ADE9430_REG_AVA_1 0x0611
374#define ADE9430_REG_BVA_1 0x0612
375#define ADE9430_REG_CVA_1 0x0613
376#define ADE9430_REG_AVAR_1 0x0614
377#define ADE9430_REG_BVAR_1 0x0615
378#define ADE9430_REG_CVAR_1 0x0616
379#define ADE9430_REG_AFVAR_1 0x0617
380#define ADE9430_REG_BFVAR_1 0x0618
381#define ADE9430_REG_CFVAR_1 0x0619
382#define ADE9430_REG_APF_1 0x061A
383#define ADE9430_REG_BPF_1 0x061B
384#define ADE9430_REG_CPF_1 0x061C
385#define ADE9430_REG_AFWATT_1 0x0623
386#define ADE9430_REG_BFWATT_1 0x0624
387#define ADE9430_REG_CFWATT_1 0x0625
388#define ADE9430_REG_AFVA_1 0x0626
389#define ADE9430_REG_BFVA_1 0x0627
390#define ADE9430_REG_CFVA_1 0x0628
391#define ADE9430_REG_AFIRMS_1 0x0629
392#define ADE9430_REG_BFIRMS_1 0x062A
393#define ADE9430_REG_CFIRMS_1 0x062B
394#define ADE9430_REG_AFVRMS_1 0x062C
395#define ADE9430_REG_BFVRMS_1 0x062D
396#define ADE9430_REG_CFVRMS_1 0x062E
397#define ADE9430_REG_AIRMSONE_1 0x062F
398#define ADE9430_REG_BIRMSONE_1 0x0630
399#define ADE9430_REG_CIRMSONE_1 0x0631
400#define ADE9430_REG_AVRMSONE_1 0x0622
401#define ADE9430_REG_BVRMSONE_1 0x0633
402#define ADE9430_REG_CVRMSONE_1 0x0634
403#define ADE9430_REG_NIRSONE_1 0x0635
404#define ADE9430_REG_AIRMS1012_1 0x0636
405#define ADE9430_REG_BIRMS1012_1 0x0637
406#define ADE9430_REG_CIRMS1012_1 0x0638
407#define ADE9430_REG_AVRMS1012_1 0x0639
408#define ADE9430_REG_BVRMS1012_1 0x063A
409#define ADE9430_REG_CVRMS1012_1 0x063B
410#define ADE9430_REG_NIRMS1012_1 0x063C
411#define ADE9430_REG_AV_PCF_2 0x0680
412#define ADE9430_REG_AI_PCF_2 0x0681
413#define ADE9430_REG_AIRMS_2 0x0682
414#define ADE9430_REG_AVRMS_2 0x0683
415#define ADE9430_REG_AWATT_2 0x0684
416#define ADE9430_REG_AVA_2 0x0685
417#define ADE9430_REG_AVAR_2 0x0686
418#define ADE9430_REG_AFVAR_2 0x0687
419#define ADE9430_REG_APF_2 0x0688
420#define ADE9430_REG_AFWATT_2 0x068B
421#define ADE9430_REG_AFVA_2 0x068C
422#define ADE9430_REG_AFIRMS_2 0x068D
423#define ADE9430_REG_AFVRMS_2 0x068E
424#define ADE9430_REG_AIRMSONE_2 0x068F
425#define ADE9430_REG_AVRMSONE_2 0x0690
426#define ADE9430_REG_AIRMS1012_2 0x0691
427#define ADE9430_REG_AVRMS1012_2 0x0692
428#define ADE9430_REG_BV_PCF_2 0x0693
429#define ADE9430_REG_BI_PCF_2 0x0694
430#define ADE9430_REG_BIRMS_2 0x0695
431#define ADE9430_REG_BVRMS_2 0x0696
432#define ADE9430_REG_BWATT_2 0x0697
433#define ADE9430_REG_BVA_2 0x0698
434#define ADE9430_REG_BVAR_2 0x0699
435#define ADE9430_REG_BFVAR_2 0x069A
436#define ADE9430_REG_BPF_2 0x069B
437#define ADE9430_REG_BFWATT_2 0x069E
438#define ADE9430_REG_BFVA_2 0x069F
439#define ADE9430_REG_BFIRMS_2 0x06A0
440#define ADE9430_REG_BFVRMS_2 0x06A1
441#define ADE9430_REG_BIRMSONE_2 0x06A2
442#define ADE9430_REG_BVRMSONE_2 0x06A3
443#define ADE9430_REG_BIRMS1012_2 0x06A4
444#define ADE9430_REG_BVRMS1012_2 0x06A5
445#define ADE9430_REG_CV_PCF_2 0x06A6
446#define ADE9430_REG_CI_PCF_2 0x06A7
447#define ADE9430_REG_CIRMS_2 0x06A8
448#define ADE9430_REG_CVRMS_2 0x06A9
449#define ADE9430_REG_CWATT_2 0x06AA
450#define ADE9430_REG_CVA_2 0x06AB
451#define ADE9430_REG_CVAR_2 0x06AC
452#define ADE9430_REG_CFVAR_2 0x06AD
453#define ADE9430_REG_CPF_2 0x06AE
454#define ADE9430_REG_CFWATT_2 0x06B1
455#define ADE9430_REG_CFVA_2 0x06B2
456#define ADE9430_REG_CFIRMS_2 0x06B3
457#define ADE9430_REG_CFVRMS_2 0x06B4
458#define ADE9430_REG_CIRMSONE_2 0x06B5
459#define ADE9430_REG_CVRMSONE_2 0x06B6
460#define ADE9430_REG_CIRMS1012_2 0x06B7
461#define ADE9430_REG_CVRMS1012_2 0x06B8
462#define ADE9430_REG_NI_PCF_2 0x06B9
463#define ADE9430_REG_NIRMS_2 0x06BA
464#define ADE9430_REG_NIRMSONE_2 0x06BB
465#define ADE9430_REG_NIRMS1012_2 0x06BC
466
467/* ADE9430_REG_CONFIG0 Bit Definition */
468#define ADE9430_PERIOD_AVG_CFG NO_OS_GENMASK(17, 16)
469#define ADE9430_RESAMPLE_RATE NO_OS_BIT(15)
470#define ADE9430_RMSONE_RATE NO_OS_BIT(14)
471#define ADE9430_DISRPLPF NO_OS_BIT(13)
472#define ADE9430_DISAPLPF NO_OS_BIT(12)
473#define ADE9430_ININTEN NO_OS_BIT(11)
474#define ADE9430_VNOMC_EN NO_OS_BIT(10)
475#define ADE9430_VNOMB_EN NO_OS_BIT(9)
476#define ADE9430_VNOMA_EN NO_OS_BIT(8)
477#define ADE9430_RMS_SRC_SEL NO_OS_BIT(7)
478#define ADE9430_ZX_SRC_SEL NO_OS_BIT(6)
479#define ADE9430_INTEN NO_OS_BIT(5)
480#define ADE9430_MTEN NO_OS_BIT(4)
481#define ADE9430_HPFDIS NO_OS_BIT(3)
482#define ADE9430_ISUM_CFG NO_OS_GENMASK(1, 0)
483
484/* ADE9430_REG_AMTREGION Bit Definition */
485#define ADE9430_AREGION NO_OS_GENMASK(3, 0)
486
487/* ADE9430_REG_BMTREGION Bit Definition */
488#define ADE9430_BREGION NO_OS_GENMASK(3, 0)
489
490/* ADE9430_REG_CMTREGION Bit Definition */
491#define ADE9430_CREGION NO_OS_GENMASK(3, 0)
492
493/* ADE9430_REG_IPEAK Bit Definition */
494#define ADE9430_IPPHASE NO_OS_GENMASK(26, 24)
495#define ADE9430_IPEAKVAL NO_OS_GENMASK(23, 0)
496
497/* ADE9430_REG_VPEAK Bit Definition */
498#define ADE9430_VPPHASE NO_OS_GENMASK(26, 24)
499#define ADE9430_VPEAKVAL NO_OS_GENMASK(23, 0)
500
501/* ADE9430_REG_STATUS0 Bit Definition */
502#define ADE9430_STATUS0_TEMP_RDY NO_OS_BIT(25)
503#define ADE9430_STATUS0_MISMTCH NO_OS_BIT(24)
504#define ADE9430_STATUS0_COH_PAGE_RDY NO_OS_BIT(23)
505#define ADE9430_STATUS0_WFB_TRIG NO_OS_BIT(22)
506#define ADE9430_STATUS0_PF_RDY NO_OS_BIT(21)
507#define ADE9430_STATUS0_RMS1012RDY NO_OS_BIT(20)
508#define ADE9430_STATUS0_RMSONERDY NO_OS_BIT(19)
509#define ADE9430_STATUS0_PWRRDY NO_OS_BIT(18)
510#define ADE9430_STATUS0_PAGE_FULL NO_OS_BIT(17)
511#define ADE9430_STATUS0_WFB_TRIG_IRQ NO_OS_BIT(16)
512#define ADE9430_STATUS0_DREADY NO_OS_BIT(15)
513#define ADE9430_STATUS0_CF4 NO_OS_BIT(14)
514#define ADE9430_STATUS0_CF3 NO_OS_BIT(13)
515#define ADE9430_STATUS0_CF2 NO_OS_BIT(12)
516#define ADE9430_STATUS0_CF1 NO_OS_BIT(11)
517#define ADE9430_STATUS0_REVPSUM4 NO_OS_BIT(10)
518#define ADE9430_STATUS0_REVPSUM3 NO_OS_BIT(9)
519#define ADE9430_STATUS0_REVPSUM2 NO_OS_BIT(8)
520#define ADE9430_STATUS0_REVPSUM1 NO_OS_BIT(7)
521#define ADE9430_STATUS0_REVRPC NO_OS_BIT(6)
522#define ADE9430_STATUS0_REVRPB NO_OS_BIT(5)
523#define ADE9430_STATUS0_REVRPA NO_OS_BIT(4)
524#define ADE9430_STATUS0_REVAPC NO_OS_BIT(3)
525#define ADE9430_STATUS0_REVAPB NO_OS_BIT(2)
526#define ADE9430_STATUS0_REVAPA NO_OS_BIT(1)
527#define ADE9430_STATUS0_EGYRDY NO_OS_BIT(0)
528
529/* ADE9430_REG_STATUS1 Bit Definition */
530#define ADE9430_STATUS1_ERROR3 NO_OS_BIT(31)
531#define ADE9430_STATUS1_RROR2 NO_OS_BIT(30)
532#define ADE9430_STATUS1_ERROR1 NO_OS_BIT(29)
533#define ADE9430_STATUS1_ERROR0 NO_OS_BIT(28)
534#define ADE9430_STATUS1_CRC_DONE NO_OS_BIT(27)
535#define ADE9430_STATUS1_CRC_CHG NO_OS_BIT(26)
536#define ADE9430_STATUS1_SEQERR NO_OS_BIT(18)
537#define ADE9430_STATUS1_OI NO_OS_BIT(17)
538#define ADE9430_STATUS1_RSTDONE NO_OS_BIT(16)
539#define ADE9430_STATUS1_ZXIC NO_OS_BIT(15)
540#define ADE9430_STATUS1_ZXIB NO_OS_BIT(14)
541#define ADE9430_STATUS1_ZXIA NO_OS_BIT(13)
542#define ADE9430_STATUS1_ZXCOMB NO_OS_BIT(12)
543#define ADE9430_STATUS1_ZXVC NO_OS_BIT(11)
544#define ADE9430_STATUS1_ZXVB NO_OS_BIT(10)
545#define ADE9430_STATUS1_ZXVA NO_OS_BIT(9)
546#define ADE9430_STATUS1_ZXTOVC NO_OS_BIT(8)
547#define ADE9430_STATUS1_ZXTOVB NO_OS_BIT(7)
548#define ADE9430_STATUS1_ZXTOVA NO_OS_BIT(6)
549#define ADE9430_STATUS1_VAFNOLOAD NO_OS_BIT(5)
550#define ADE9430_STATUS1_RFNOLOAD NO_OS_BIT(4)
551#define ADE9430_STATUS1_AFNOLOAD NO_OS_BIT(3)
552#define ADE9430_STATUS1_VANLOAD NO_OS_BIT(2)
553#define ADE9430_STATUS1_RNLOAD NO_OS_BIT(1)
554#define ADE9430_STATUS1_ANLOAD NO_OS_BIT(0)
555
556/* ADE9430_REG_EVENT_STATUS Bit Definition */
557#define ADE9430_EVENT_DREADY NO_OS_BIT(16)
558#define ADE9430_EVENT_VAFNOLOAD NO_OS_BIT(15)
559#define ADE9430_EVENT_RFNOLOAD NO_OS_BIT(14)
560#define ADE9430_EVENT_AFNOLOAD NO_OS_BIT(13)
561#define ADE9430_EVENT_VANLOAD NO_OS_BIT(12)
562#define ADE9430_EVENT_RNLOAD NO_OS_BIT(11)
563#define ADE9430_EVENT_ANLOAD NO_OS_BIT(10)
564#define ADE9430_EVENT_REVPSUM4 NO_OS_BIT(9)
565#define ADE9430_EVENT_REVPSUM3 NO_OS_BIT(8)
566#define ADE9430_EVENT_REVPSUM2 NO_OS_BIT(7)
567#define ADE9430_EVENT_REVPSUM1 NO_OS_BIT(6)
568
569/* ADE9430_REG_MASK0 Bit Definition */
570#define ADE9430_MASK0_TEMP_RDY NO_OS_BIT(25)
571#define ADE9430_MASK0_ISMTCH NO_OS_BIT(24)
572#define ADE9430_MASK0_COH_PAGE_RDY NO_OS_BIT(23)
573#define ADE9430_MASK0_WFB_TRIG NO_OS_BIT(22)
574#define ADE9430_MASK0_PF_RDY NO_OS_BIT(21)
575#define ADE9430_MASK0_RMS1012RDY NO_OS_BIT(20)
576#define ADE9430_MASK0_RMSONERDY NO_OS_BIT(19)
577#define ADE9430_MASK0_PWRRDY NO_OS_BIT(18)
578#define ADE9430_MASK0_PAGE_FULL NO_OS_BIT(17)
579#define ADE9430_MASK0_WFB_TRIG_IRQ NO_OS_BIT(16)
580#define ADE9430_MASK0_DREADY NO_OS_BIT(15)
581#define ADE9430_MASK0_CF4 NO_OS_BIT(14)
582#define ADE9430_MASK0_CF3 NO_OS_BIT(13)
583#define ADE9430_MASK0_CF2 NO_OS_BIT(12)
584#define ADE9430_MASK0_CF1 NO_OS_BIT(11)
585#define ADE9430_MASK0_REVPSUM4 NO_OS_BIT(10)
586#define ADE9430_MASK0_REVPSUM3 NO_OS_BIT(9)
587#define ADE9430_MASK0_REVPSUM2 NO_OS_BIT(8)
588#define ADE9430_MASK0_REVPSUM1 NO_OS_BIT(7)
589#define ADE9430_MASK0_REVRPC NO_OS_BIT(6)
590#define ADE9430_MASK0_REVRPB NO_OS_BIT(5)
591#define ADE9430_MASK0_REVRPA NO_OS_BIT(4)
592#define ADE9430_MASK0_REVAPC NO_OS_BIT(3)
593#define ADE9430_MASK0_REVAPB NO_OS_BIT(2)
594#define ADE9430_MASK0_REVAPA NO_OS_BIT(1)
595#define ADE9430_MASK0_EGYRDY NO_OS_BIT(0)
596
597/* ADE9430_REG_MASK1 Bit Definition */
598#define ADE9430_MASK1_ERROR3 NO_OS_BIT(31)
599#define ADE9430_MASK1_ERROR2 NO_OS_BIT(30)
600#define ADE9430_MASK1_ERROR1 NO_OS_BIT(29)
601#define ADE9430_MASK1_ERROR0 NO_OS_BIT(28)
602#define ADE9430_MASK1_CRC_DONE NO_OS_BIT(27)
603#define ADE9430_MASK1_CRC_CHG NO_OS_BIT(26)
604#define ADE9430_MASK1_SEQERR NO_OS_BIT(18)
605#define ADE9430_MASK1_OI NO_OS_BIT(17)
606#define ADE9430_MASK1_ZXIC NO_OS_BIT(15)
607#define ADE9430_MASK1_ZXIB NO_OS_BIT(14)
608#define ADE9430_MASK1_ZXIA NO_OS_BIT(13)
609#define ADE9430_MASK1_ZXCOMB NO_OS_BIT(12)
610#define ADE9430_MASK1_ZXVC NO_OS_BIT(11)
611#define ADE9430_MASK1_ZXVB NO_OS_BIT(10)
612#define ADE9430_MASK1_ZXVA NO_OS_BIT(9)
613#define ADE9430_MASK1_ZXTOVC NO_OS_BIT(8)
614#define ADE9430_MASK1_ZXTOVB NO_OS_BIT(7)
615#define ADE9430_MASK1_ZXTOVA NO_OS_BIT(6)
616#define ADE9430_MASK1_VAFNOLOAD NO_OS_BIT(5)
617#define ADE9430_MASK1_RFNOLOAD NO_OS_BIT(4)
618#define ADE9430_MASK1_AFNOLOAD NO_OS_BIT(3)
619#define ADE9430_MASK1_VANLOAD NO_OS_BIT(2)
620#define ADE9430_MASK1_RNLOAD NO_OS_BIT(1)
621#define ADE9430_MASK1_ANLOAD NO_OS_BIT(0)
622
623/* ADE9430_REG_EVENT_MASK Bit Definition */
624#define ADE9430_EVENT_READY_MSK NO_OS_BIT(16)
625#define ADE9430_EVENT_VAFNOLOAD_MSK NO_OS_BIT(15)
626#define ADE9430_EVENT_RFNOLOAD_MSK NO_OS_BIT(14)
627#define ADE9430_EVENT_AFNOLOAD_MSK NO_OS_BIT(13)
628#define ADE9430_EVENT_VANLOAD_MSK NO_OS_BIT(12)
629#define ADE9430_EVENT_RNLOAD_MSK NO_OS_BIT(11)
630#define ADE9430_EVENT_ANLOAD_MSK NO_OS_BIT(10)
631#define ADE9430_EVENT_REVPSUM4_MSK NO_OS_BIT(9)
632#define ADE9430_EVENT_REVPSUM3_MSK NO_OS_BIT(8)
633#define ADE9430_EVENT_REVPSUM2_MSK NO_OS_BIT(7)
634#define ADE9430_EVENT_REVPSUM1_MSK NO_OS_BIT(6)
635
636/* ADE9430_REG_OILVL Bit Definition */
637#define ADE9430_OILVL_VAL NO_OS_GENMASK(23, 0)
638
639/* ADE9430_REG_OIA Bit Definition */
640#define ADE9430_OI_VAL NO_OS_GENMASK(23, 0)
641
642/* ADE9430_REG_OIB Bit Definition */
643#define ADE9430_OIB_VAL NO_OS_GENMASK(23, 0)
644
645/* ADE9430_REG_OIC Bit Definition */
646#define ADE9430_OIC_VAL NO_OS_GENMASK(23, 0)
647
648/* ADE9430_REG_OIN Bit Definition */
649#define ADE9430_OIN_VAL NO_OS_GENMASK(23, 0)
650
651/* ADE9430_REG_VLEVEL Bit Definition */
652#define ADE9430_VLEVEL_VAL NO_OS_GENMASK(23, 0)
653
654/* ADE9430_REG_PHNOLOAD Bit Definition */
655#define ADE9430_CFVANL NO_OS_BIT(17)
656#define ADE9430_CFVARNL NO_OS_BIT(16)
657#define ADE9430_CFWATTNL NO_OS_BIT(15)
658#define ADE9430_CVANL NO_OS_BIT(14)
659#define ADE9430_CVARNL NO_OS_BIT(13)
660#define ADE9430_CWATTNL NO_OS_BIT(12)
661#define ADE9430_BFVANL NO_OS_BIT(11)
662#define ADE9430_BFVARNL NO_OS_BIT(10)
663#define ADE9430_BFWATTNL NO_OS_BIT(9)
664#define ADE9430_BVANL NO_OS_BIT(8)
665#define ADE9430_BVARNL NO_OS_BIT(7)
666#define ADE9430_BWATTNL NO_OS_BIT(6)
667#define ADE9430_AFVANL NO_OS_BIT(5)
668#define ADE9430_AFVARNL NO_OS_BIT(4)
669#define ADE9430_AFWATTNL NO_OS_BIT(3)
670#define ADE9430_AVANL NO_OS_BIT(2)
671#define ADE9430_AVARNL NO_OS_BIT(1)
672#define ADE9430_AWATTNL NO_OS_BIT(0)
673
674/* ADE9430_REG_ADC_REDIRECT Bit Definition */
675#define ADE9430_VC_DIN NO_OS_GENMASK(20, 18)
676#define ADE9430_VB_DIN NO_OS_GENMASK(17, 15)
677#define ADE9430_VA_DIN NO_OS_GENMASK(14, 12)
678#define ADE9430_IN_DIN NO_OS_GENMASK(11, 9)
679#define ADE9430_IC_DIN NO_OS_GENMASK(8, 6)
680#define ADE9430_IB_DIN NO_OS_GENMASK(5, 3)
681#define ADE9430_IA_DIN NO_OS_GENMASK(2, 0)
682
683/* ADE9430_REG_CF_LCFG Bit Definition */
684#define ADE9430_CF4_LT NO_OS_BIT(22)
685#define ADE9430_CF3_LT NO_OS_BIT(21)
686#define ADE9430_CF2_LT NO_OS_BIT(20)
687#define ADE9430_CF1_LT NO_OS_BIT(19)
688#define ADE9430_CF_LTMR NO_OS_GENMASK(18, 0)
689
690/* ADE9430_REG_PART_ID Bit Definition */
691#define ADE9430_ADE9430_ID NO_OS_BIT(20)
692
693/* ADE9430_REG_TEMP_TRIM Bit Definition */
694#define ADE9430_TEMP_OFFSET NO_OS_GENMASK(31, 16)
695#define ADE9430_TEMP_GAIN NO_OS_GENMASK(15, 0)
696
697/* ADE9430_REG_CONFIG1 Bit Definition */
698#define ADE9430_EXT_REF NO_OS_BIT(15)
699#define ADE9430_IRQ0_ON_IRQ1 NO_OS_BIT(12)
700#define ADE9430_BURST_EN NO_OS_BIT(11)
701#define ADE9430_PWR_SETTLE NO_OS_GENMASK(9, 8)
702#define ADE9430_CF_ACC_CLR NO_OS_BIT(5)
703#define ADE9430_CF4_CFG NO_OS_GENMASK(3, 2)
704#define ADE9430_CF3_CFG NO_OS_BIT(1)
705#define ADE9430_SWRST NO_OS_BIT(0)
706
707/* ADE9430_REG_OISTATUS Bit Definition */
708#define ADE9430_OIPHASE NO_OS_GENMASK(3, 0)
709
710/* ADE9430_REG_CFMODE Bit Definition */
711#define ADE9430_CF4DIS NO_OS_BIT(15)
712#define ADE9430_CF3DIS NO_OS_BIT(14)
713#define ADE9430_CF2DIS NO_OS_BIT(13)
714#define ADE9430_CF1DIS NO_OS_BIT(12)
715#define ADE9430_CF4SEL NO_OS_GENMASK(11, 9)
716#define ADE9430_CF3SEL NO_OS_GENMASK(8, 6)
717#define ADE9430_CF2SEL NO_OS_GENMASK(5, 3)
718#define ADE9430_CF1SEL NO_OS_GENMASK(2, 0)
719
720/* ADE9430_REG_COMPMODE Bit Definition */
721#define ADE9430_TERMSEL4 NO_OS_GENMASK(11, 9)
722#define ADE9430_TERMSEL3 NO_OS_GENMASK(8, 6)
723#define ADE9430_TERMSEL2 NO_OS_GENMASK(5, 3)
724#define ADE9430_TERMSEL1 NO_OS_GENMASK(2, 0)
725
726/* ADE9430_REG_ACCMODE Bit Definition */
727#define ADE9430_SELFREQ NO_OS_BIT(8)
728#define ADE9430_ICONSEL NO_OS_BIT(7)
729#define ADE9430_VCONSEL NO_OS_GENMASK(6, 4)
730#define ADE9430_VARACC NO_OS_GENMASK(3, 2)
731#define ADE9430_WATTACC NO_OS_GENMASK(3, 2)
732
733/* ADE9430_REG_CONFIG3 Bit Definition */
734#define ADE9430_OC_EN NO_OS_GENMASK(15, 12)
735#define ADE9430_PEAKSEL NO_OS_GENMASK(4, 2)
736
737/* ADE9430_REG_ZX_LP_SEL Bit Definition */
738#define ADE9430_LP_SEL NO_OS_GENMASK(4, 3)
739#define ADE9430_ZX_SEL NO_OS_GENMASK(2, 1)
740
741/* ADE9430_REG_PHSIGN Bit Definition */
742#define ADE9430_SUM4SIGN NO_OS_BIT(9)
743#define ADE9430_SUM3SIGN NO_OS_BIT(8)
744#define ADE9430_SUM2SIGN NO_OS_BIT(7)
745#define ADE9430_SUM1SIGN NO_OS_BIT(6)
746#define ADE9430_CVARSIGN NO_OS_BIT(5)
747#define ADE9430_CWSIGN NO_OS_BIT(4)
748#define ADE9430_BVARSIGN NO_OS_BIT(3)
749#define ADE9430_BWSIGN NO_OS_BIT(2)
750#define ADE9430_AVARSIGN NO_OS_BIT(1)
751#define ADE9430_AWSIGN NO_OS_BIT(0)
752
753/* ADE9430_REG_WFB_CFG Bit Definition */
754#define ADE9430_WF_IN_EN NO_OS_BIT(12)
755#define ADE9430_WF_SRC NO_OS_GENMASK(9, 8)
756#define ADE9430_WF_MODE NO_OS_BIT(7, 6)
757#define ADE9430_WF_CAP_SEL NO_OS_BIT(5)
758#define ADE9430_WF_CAP_EN NO_OS_BIT(4)
759#define ADE9430_BURST_CHAN NO_OS_GENMASK(3, 0)
760
761/* ADE9430_WFB_TRG_CFG Bit Definition */
762#define ADE9430_TRIG_FORCE NO_OS_BIT(10)
763#define ADE9430_ZXCOMB NO_OS_BIT(9)
764#define ADE9430_ZXVC NO_OS_BIT(8)
765#define ADE9430_ZXVB NO_OS_BIT(7)
766#define ADE9430_ZXVA NO_OS_BIT(6)
767#define ADE9430_ZXIC NO_OS_BIT(5)
768#define ADE9430_ZXIB NO_OS_BIT(4)
769#define ADE9430_ZXIA NO_OS_BIT(3)
770#define ADE9430_OI NO_OS_BIT(2)
771
772/* ADE9430_WFB_TRG_STAT Bit Definition */
773#define ADE9430_WFB_LAST_PAGE NO_OS_GENMASK(15, 12)
774#define ADE9430_WFB_TRIG_ADDR NO_OS_GENMASK(10, 0)
775
776/* ADE9430_CONFIG2 Bit Definition */
777#define ADE9430_UPERIOD_SEL NO_OS_BIT(12)
778#define ADE9430_HPF_CRN NO_OS_GENMASK(12, 9)
779
780/* ADE9430_EP_CFG Bit Definition */
781#define ADE9430_NOLOAD_TMR NO_OS_GENMASK(15, 13)
782#define ADE9430_PWR_SIGN_SEL_1 NO_OS_BIT(7)
783#define ADE9430_PWR_SIGN_SEL_0 NO_OS_BIT(6)
784#define ADE9430_RD_RST_EN NO_OS_BIT(5)
785#define ADE9430_EGY_LD_ACCUM NO_OS_BIT(4)
786#define ADE9430_EGY_TMR_MODE NO_OS_BIT(1)
787#define ADE9430_EGY_PWR_EN NO_OS_BIT(0)
788
789/* ADE9430_CRC_FORCE Bit Definition */
790#define ADE9430_FORCE_CRC_UPDATE NO_OS_BIT(0)
791
792/* ADE9430_CRC_OPTEN Bit Definition */
793#define ADE9430_CRC_WFB_TRG_CFG_EN NO_OS_BIT(15)
794#define ADE9430_CRC_WFB_PG_IRQEN NO_OS_BIT(15)
795#define ADE9430_CRC_WFB_CFG_EN NO_OS_BIT(15)
796#define ADE9430_CRC_SEQ_CYC_EN NO_OS_BIT(15)
797#define ADE9430_CRC_ZXLPSEL_EN NO_OS_BIT(15)
798#define ADE9430_CRC_ZXTOUT_EN NO_OS_BIT(15)
799#define ADE9430_CRC_APP_NL_LVL_EN NO_OS_BIT(15)
800#define ADE9430_CRC_REACT_NL_LVL_EN NO_OS_BIT(15)
801#define ADE9430_CRC_ACT_NL_LVL_EN NO_OS_BIT(15)
802#define ADE9430_CRC_EVENT_MASK_EN NO_OS_BIT(15)
803#define ADE9430_CRC_MASK1_EN NO_OS_BIT(15)
804#define ADE9430_CRC_MASK0_EN NO_OS_BIT(15)
805
806/* ADE9430_TEMP_CFG Bit Definition */
807#define ADE9430_TEMP_START NO_OS_BIT(3)
808#define ADE9430_TEMP_EN NO_OS_BIT(2)
809#define ADE9430_TEMP_TIME NO_OS_GENMASK(1, 0)
810
811/* ADE9430_TEMP_RSLT Bit Definition */
812#define ADE9430_TEMP_RESULT NO_OS_GENMASK(11, 0)
813
814/* ADE9430_PGA_GAIN Bit Definition */
815#define ADE9430_VC_GAIN NO_OS_GENMASK(13, 12)
816#define ADE9430_VB_GAIN NO_OS_GENMASK(11, 10)
817#define ADE9430_VA_GAIN NO_OS_GENMASK(9, 8)
818#define ADE9430_IN_GAIN NO_OS_GENMASK(7, 6)
819#define ADE9430_IC_GAIN NO_OS_GENMASK(5, 4)
820#define ADE9430_IB_GAIN NO_OS_GENMASK(3, 2)
821#define ADE9430_IA_GAIN NO_OS_GENMASK(1, 0)
822
823/* ADE9430_CHNL_DIS Bit Definition */
824#define ADE9430_VC_DISADC NO_OS_BIT(6)
825#define ADE9430_VB_DISADC NO_OS_BIT(5)
826#define ADE9430_VA_DISADC NO_OS_BIT(4)
827#define ADE9430_IN_DISADC NO_OS_BIT(3)
828#define ADE9430_IC_DISADC NO_OS_BIT(2)
829#define ADE9430_IB_DISADC NO_OS_BIT(1)
830#define ADE9430_IA_DISADC NO_OS_BIT(0)
831
832/* ADE9430_VAR_DIS Bit Definition */
833#define ADE9430_VARDIS NO_OS_BIT(0)
834
835/* Miscellaneous Definitions */
836#define ADE9430_CHIP_ID 0x63
837#define ADE9430_I_RES_NA 4018ULL
838#define ADE9430_V_RES_NV 13357ULL
839#define ADE9430_W_RES_UW 7203ULL
840
850
860
871
880 uint32_t watt_val;
882 uint32_t irms_val;
884 uint32_t vrms_val;
886 int32_t temp_deg;
887};
888
889/* Read device register. */
890int ade9430_read(struct ade9430_dev *dev, uint16_t reg_addr,
891 uint32_t *reg_data);
892
893/* Write device register. */
894int ade9430_write(struct ade9430_dev *dev, uint16_t reg_addr,
895 uint32_t reg_data);
896
897/* Update specific register bits. */
898int ade9430_update_bits(struct ade9430_dev *dev, uint16_t reg_addr,
899 uint32_t mask, uint32_t reg_data);
900
901/* Read temperature */
902int ade9430_read_temp(struct ade9430_dev *dev);
903
904/* Read Energy/Power for specific phase */
905int ade9430_read_data_ph(struct ade9430_dev *dev, enum ade9430_phase phase);
906
907/* Set User Energy use model */
908int ade9430_set_egy_model(struct ade9430_dev *dev, enum ade9430_egy_model model,
909 uint16_t value);
910
911/* Initialize the device. */
912int ade9430_init(struct ade9430_dev **device,
914
915/* Remove the device and release resources. */
916int ade9430_remove(struct ade9430_dev *dev);
917
918#endif // __ADE9430_H__
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int ade9430_read(struct ade9430_dev *dev, uint16_t reg_addr, uint32_t *reg_data)
Read device register.
Definition ade9430.c:48
int ade9430_read_data_ph(struct ade9430_dev *dev, enum ade9430_phase phase)
Read the power/energy for specific phase.
Definition ade9430.c:163
int ade9430_remove(struct ade9430_dev *dev)
Remove the device and release resources.
Definition ade9430.c:336
int ade9430_init(struct ade9430_dev **device, struct ade9430_init_param init_param)
Initialize the device.
Definition ade9430.c:277
ade9430_egy_model
ADE9430 available user energy use models.
Definition ade9430.h:855
@ ADE9430_EGY_NR_SAMPLES
Definition ade9430.h:858
@ ADE9430_EGY_WITH_RESET
Definition ade9430.h:856
@ ADE9430_EGY_HALF_LINE_CYCLES
Definition ade9430.h:857
int ade9430_write(struct ade9430_dev *dev, uint16_t reg_addr, uint32_t reg_data)
Write device register.
Definition ade9430.c:80
int ade9430_update_bits(struct ade9430_dev *dev, uint16_t reg_addr, uint32_t mask, uint32_t reg_data)
Update specific register bits.
Definition ade9430.c:104
int ade9430_set_egy_model(struct ade9430_dev *dev, enum ade9430_egy_model model, uint16_t value)
Set User Energy use model.
Definition ade9430.c:219
int ade9430_read_temp(struct ade9430_dev *dev)
Read the temperature.
Definition ade9430.c:125
ade9430_phase
ADE9430 available phases.
Definition ade9430.h:845
@ ADE9430_PHASE_B
Definition ade9430.h:847
@ ADE9430_PHASE_A
Definition ade9430.h:846
@ ADE9430_PHASE_C
Definition ade9430.h:848
Header file of SPI Interface.
Header file of utility functions.
ADE9430 Device structure.
Definition ade9430.h:876
uint32_t watt_val
Definition ade9430.h:880
struct no_os_spi_desc * spi_desc
Definition ade9430.h:878
uint32_t irms_val
Definition ade9430.h:882
uint32_t vrms_val
Definition ade9430.h:884
int32_t temp_deg
Definition ade9430.h:886
ADE9430 Device initialization parameters.
Definition ade9430.h:865
bool temp_en
Definition ade9430.h:869
struct no_os_spi_init_param * spi_init
Definition ade9430.h:867
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