1 //------------------------------------------------------------------------------
2 // Copyright 2012 (c) Silicon Laboratories Inc.
3 //
4 // SPDX-License-Identifier: Zlib
5 //
6 // This siHAL software is provided 'as-is', without any express or implied
7 // warranty. In no event will the authors be held liable for any damages
8 // arising from the use of this software.
9 //
10 // Permission is granted to anyone to use this software for any purpose,
11 // including commercial applications, and to alter it and redistribute it
12 // freely, subject to the following restrictions:
13 //
14 // 1. The origin of this software must not be misrepresented; you must not
15 //    claim that you wrote the original software. If you use this software
16 //    in a product, an acknowledgment in the product documentation would be
17 //    appreciated but is not required.
18 // 2. Altered source versions must be plainly marked as such, and must not be
19 //    misrepresented as being the original software.
20 // 3. This notice may not be removed or altered from any source distribution.
21 //------------------------------------------------------------------------------
22 //
23 // Script: 0.57
24 // Version: 1
25 
26 #ifndef __SI32_IVC_A_REGISTERS_H__
27 #define __SI32_IVC_A_REGISTERS_H__
28 
29 #include <stdint.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 struct SI32_IVC_A_CONTROL_Struct
36 {
37    union
38    {
39       struct
40       {
41          // Input 0 Range
42          volatile uint32_t IN0RANGE: 3;
43                   uint32_t reserved0: 1;
44          // Input 1 Range
45          volatile uint32_t IN1RANGE: 3;
46                   uint32_t reserved1: 23;
47          // Converter 0 Enable
48          volatile uint32_t C0EN: 1;
49          // Converter 1 Enable
50          volatile uint32_t C1EN: 1;
51       };
52       volatile uint32_t U32;
53    };
54 };
55 
56 #define SI32_IVC_A_CONTROL_IN0RANGE_MASK  0x00000007
57 #define SI32_IVC_A_CONTROL_IN0RANGE_SHIFT  0
58 // Input range is 0-6 mA.
59 #define SI32_IVC_A_CONTROL_IN0RANGE_6_MA_VALUE  0
60 #define SI32_IVC_A_CONTROL_IN0RANGE_6_MA_U32 \
61    (SI32_IVC_A_CONTROL_IN0RANGE_6_MA_VALUE << SI32_IVC_A_CONTROL_IN0RANGE_SHIFT)
62 // Input range is 0-5 mA.
63 #define SI32_IVC_A_CONTROL_IN0RANGE_5_MA_VALUE  1
64 #define SI32_IVC_A_CONTROL_IN0RANGE_5_MA_U32 \
65    (SI32_IVC_A_CONTROL_IN0RANGE_5_MA_VALUE << SI32_IVC_A_CONTROL_IN0RANGE_SHIFT)
66 // Input range is 0-4 mA.
67 #define SI32_IVC_A_CONTROL_IN0RANGE_4_MA_VALUE  2
68 #define SI32_IVC_A_CONTROL_IN0RANGE_4_MA_U32 \
69    (SI32_IVC_A_CONTROL_IN0RANGE_4_MA_VALUE << SI32_IVC_A_CONTROL_IN0RANGE_SHIFT)
70 // Input range is 0-3 mA.
71 #define SI32_IVC_A_CONTROL_IN0RANGE_3_MA_VALUE  3
72 #define SI32_IVC_A_CONTROL_IN0RANGE_3_MA_U32 \
73    (SI32_IVC_A_CONTROL_IN0RANGE_3_MA_VALUE << SI32_IVC_A_CONTROL_IN0RANGE_SHIFT)
74 // Input range is 0-2 mA.
75 #define SI32_IVC_A_CONTROL_IN0RANGE_2_MA_VALUE  4
76 #define SI32_IVC_A_CONTROL_IN0RANGE_2_MA_U32 \
77    (SI32_IVC_A_CONTROL_IN0RANGE_2_MA_VALUE << SI32_IVC_A_CONTROL_IN0RANGE_SHIFT)
78 // Input range is 0-1 mA.
79 #define SI32_IVC_A_CONTROL_IN0RANGE_1_MA_VALUE  5
80 #define SI32_IVC_A_CONTROL_IN0RANGE_1_MA_U32 \
81    (SI32_IVC_A_CONTROL_IN0RANGE_1_MA_VALUE << SI32_IVC_A_CONTROL_IN0RANGE_SHIFT)
82 
83 #define SI32_IVC_A_CONTROL_IN1RANGE_MASK  0x00000070
84 #define SI32_IVC_A_CONTROL_IN1RANGE_SHIFT  4
85 // Input range is 0-6 mA.
86 #define SI32_IVC_A_CONTROL_IN1RANGE_6_MA_VALUE  0
87 #define SI32_IVC_A_CONTROL_IN1RANGE_6_MA_U32 \
88    (SI32_IVC_A_CONTROL_IN1RANGE_6_MA_VALUE << SI32_IVC_A_CONTROL_IN1RANGE_SHIFT)
89 // Input range is 0-5 mA.
90 #define SI32_IVC_A_CONTROL_IN1RANGE_5_MA_VALUE  1
91 #define SI32_IVC_A_CONTROL_IN1RANGE_5_MA_U32 \
92    (SI32_IVC_A_CONTROL_IN1RANGE_5_MA_VALUE << SI32_IVC_A_CONTROL_IN1RANGE_SHIFT)
93 // Input range is 0-4 mA.
94 #define SI32_IVC_A_CONTROL_IN1RANGE_4_MA_VALUE  2
95 #define SI32_IVC_A_CONTROL_IN1RANGE_4_MA_U32 \
96    (SI32_IVC_A_CONTROL_IN1RANGE_4_MA_VALUE << SI32_IVC_A_CONTROL_IN1RANGE_SHIFT)
97 // Input range is 0-3 mA.
98 #define SI32_IVC_A_CONTROL_IN1RANGE_3_MA_VALUE  3
99 #define SI32_IVC_A_CONTROL_IN1RANGE_3_MA_U32 \
100    (SI32_IVC_A_CONTROL_IN1RANGE_3_MA_VALUE << SI32_IVC_A_CONTROL_IN1RANGE_SHIFT)
101 // Input range is 0-2 mA.
102 #define SI32_IVC_A_CONTROL_IN1RANGE_2_MA_VALUE  4
103 #define SI32_IVC_A_CONTROL_IN1RANGE_2_MA_U32 \
104    (SI32_IVC_A_CONTROL_IN1RANGE_2_MA_VALUE << SI32_IVC_A_CONTROL_IN1RANGE_SHIFT)
105 // Input range is 0-1 mA.
106 #define SI32_IVC_A_CONTROL_IN1RANGE_1_MA_VALUE  5
107 #define SI32_IVC_A_CONTROL_IN1RANGE_1_MA_U32 \
108    (SI32_IVC_A_CONTROL_IN1RANGE_1_MA_VALUE << SI32_IVC_A_CONTROL_IN1RANGE_SHIFT)
109 
110 #define SI32_IVC_A_CONTROL_C0EN_MASK  0x40000000
111 #define SI32_IVC_A_CONTROL_C0EN_SHIFT  30
112 // Disable IVC channel 0.
113 #define SI32_IVC_A_CONTROL_C0EN_DISABLED_VALUE  0
114 #define SI32_IVC_A_CONTROL_C0EN_DISABLED_U32 \
115    (SI32_IVC_A_CONTROL_C0EN_DISABLED_VALUE << SI32_IVC_A_CONTROL_C0EN_SHIFT)
116 // Enable IVC channel 0.
117 #define SI32_IVC_A_CONTROL_C0EN_ENABLED_VALUE  1
118 #define SI32_IVC_A_CONTROL_C0EN_ENABLED_U32 \
119    (SI32_IVC_A_CONTROL_C0EN_ENABLED_VALUE << SI32_IVC_A_CONTROL_C0EN_SHIFT)
120 
121 #define SI32_IVC_A_CONTROL_C1EN_MASK  0x80000000
122 #define SI32_IVC_A_CONTROL_C1EN_SHIFT  31
123 // Disable IVC channel 1.
124 #define SI32_IVC_A_CONTROL_C1EN_DISABLED_VALUE  0U
125 #define SI32_IVC_A_CONTROL_C1EN_DISABLED_U32 \
126    (SI32_IVC_A_CONTROL_C1EN_DISABLED_VALUE << SI32_IVC_A_CONTROL_C1EN_SHIFT)
127 // Enable IVC channel 1.
128 #define SI32_IVC_A_CONTROL_C1EN_ENABLED_VALUE  1U
129 #define SI32_IVC_A_CONTROL_C1EN_ENABLED_U32 \
130    (SI32_IVC_A_CONTROL_C1EN_ENABLED_VALUE << SI32_IVC_A_CONTROL_C1EN_SHIFT)
131 
132 
133 
134 typedef struct SI32_IVC_A_Struct
135 {
136    struct SI32_IVC_A_CONTROL_Struct                CONTROL        ; // Base Address + 0x0
137    volatile uint32_t                               CONTROL_SET;
138    volatile uint32_t                               CONTROL_CLR;
139    uint32_t                                        reserved0;
140    uint32_t                                        reserved1[4];
141 } SI32_IVC_A_Type;
142 
143 #ifdef __cplusplus
144 }
145 #endif
146 
147 #endif // __SI32_IVC_A_REGISTERS_H__
148 
149 //-eof--------------------------------------------------------------------------
150 
151