]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC/Nuvoton_Code/Device/Nuvoton/M2351/Include/ui2c_reg.h
Add Cortex M23 GCC and IAR ports. Add demo projects for Nuvoton NuMaker-PFM-2351.
[freertos] / FreeRTOS / Demo / CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC / Nuvoton_Code / Device / Nuvoton / M2351 / Include / ui2c_reg.h
1 /**************************************************************************//**\r
2  * @file     ui2c_reg.h\r
3  * @version  V1.00\r
4  * @brief    UI2C register definition header file\r
5  *\r
6  * @copyright (C) 2017 Nuvoton Technology Corp. All rights reserved.\r
7  *****************************************************************************/\r
8 #ifndef __UI2C_REG_H__\r
9 #define __UI2C_REG_H__\r
10 \r
11 /** @addtogroup REGISTER Control Register\r
12 \r
13   @{\r
14 \r
15 */\r
16 \r
17 /*---------------------- I2C Mode of USCI Controller -------------------------*/\r
18 /**\r
19     @addtogroup UI2C I2C Mode of USCI Controller(UI2C)\r
20     Memory Mapped Structure for UI2C Controller\r
21 @{ */\r
22 \r
23 typedef struct\r
24 {\r
25 \r
26 \r
27     /**\r
28      * @var UI2C_T::CTL\r
29      * Offset: 0x00  USCI Control Register\r
30      * ---------------------------------------------------------------------------------------------------\r
31      * |Bits    |Field     |Descriptions\r
32      * | :----: | :----:   | :---- |\r
33      * |[2:0]   |FUNMODE   |Function Mode\r
34      * |        |          |This bit field selects the protocol for this USCI controller\r
35      * |        |          |Selecting a protocol that is not available or a reserved combination disables the USCI\r
36      * |        |          |When switching between two protocols, the USCI has to be disabled before selecting a new protocol\r
37      * |        |          |Simultaneously, the USCI will be reset when user write 000 to FUNMODE.\r
38      * |        |          |000 = The USCI is disabled. All protocol related state machines are set to idle state.\r
39      * |        |          |001 = The SPI protocol is selected.\r
40      * |        |          |010 = The UART protocol is selected.\r
41      * |        |          |100 = The I2C protocol is selected.\r
42      * |        |          |Note: Other bit combinations are reserved.\r
43      * @var UI2C_T::BRGEN\r
44      * Offset: 0x08  USCI Baud Rate Generator Register\r
45      * ---------------------------------------------------------------------------------------------------\r
46      * |Bits    |Field     |Descriptions\r
47      * | :----: | :----:   | :---- |\r
48      * |[0]     |RCLKSEL   |Reference Clock Source Selection\r
49      * |        |          |This bit selects the source signal of reference clock (fREF_CLK).\r
50      * |        |          |0 = Peripheral device clock fPCLK.\r
51      * |        |          |1 = Reserved.\r
52      * |[1]     |PTCLKSEL  |Protocol Clock Source Selection\r
53      * |        |          |This bit selects the source signal of protocol clock (fPROT_CLK).\r
54      * |        |          |0 = Reference clock fREF_CLK.\r
55      * |        |          |1 = fREF_CLK2 (its frequency is half of fREF_CLK).\r
56      * |[3:2]   |SPCLKSEL  |Sample Clock Source Selection\r
57      * |        |          |This bit field used for the clock source selection of a sample clock (fSAMP_CLK) for the protocol processor.\r
58      * |        |          |00 = fSAMP_CLK = fDIV_CLK.\r
59      * |        |          |01 = fSAMP_CLK = fPROT_CLK.\r
60      * |        |          |10 = fSAMP_CLK = fSCLK.\r
61      * |        |          |11 = fSAMP_CLK = fREF_CLK.\r
62      * |[4]     |TMCNTEN   |Time Measurement Counter Enable Bit\r
63      * |        |          |This bit enables the 10-bit timing measurement counter.\r
64      * |        |          |0 = Time measurement counter is Disabled.\r
65      * |        |          |1 = Time measurement counter is Enabled.\r
66      * |[5]     |TMCNTSRC  |Time Measurement Counter Clock Source Selection\r
67      * |        |          |0 = Time measurement counter with fPROT_CLK.\r
68      * |        |          |1 = Time measurement counter with fDIV_CLK.\r
69      * |[9:8]   |PDSCNT    |Pre-divider for Sample Counter\r
70      * |        |          |This bit field defines the divide ratio of the clock division from sample clock fSAMP_CLK\r
71      * |        |          |The divided frequency fPDS_CNT = fSAMP_CLK / (PDSCNT+1).\r
72      * |[14:10] |DSCNT     |Denominator for Sample Counter\r
73      * |        |          |This bit field defines the divide ratio of the sample clock fSAMP_CLK.\r
74      * |        |          |The divided frequency fDS_CNT = fPDS_CNT / (DSCNT+1).\r
75      * |        |          |Note: The maximum value of DSCNT is 0xF on UART mode and suggest to set over 4 to confirm the receiver data is sampled in right value\r
76      * |[25:16] |CLKDIV    |Clock Divider\r
77      * |        |          |This bit field defines the ratio between the protocol clock frequency fPROT_CLK and the clock divider frequency fDIV_CLK (fDIV_CLK = fPROT_CLK / (CLKDIV+1) ).\r
78      * |        |          |Note: In UART function, it can be updated by hardware in the 4th falling edge of the input data 0x55 when the auto baud rate function (ABREN(UI2C_PROTCTL[6])) is enabled\r
79      * |        |          |The revised value is the average bit time between bit 5 and bit 6\r
80      * |        |          |The user can use revised CLKDIV and new BRDETITV (UI2C_PROTCTL[24:16]) to calculate the precise baud rate.\r
81      * @var UI2C_T::LINECTL\r
82      * Offset: 0x2C  USCI Line Control Register\r
83      * ---------------------------------------------------------------------------------------------------\r
84      * |Bits    |Field     |Descriptions\r
85      * | :----: | :----:   | :---- |\r
86      * |[0]     |LSB       |LSB First Transmission Selection\r
87      * |        |          |0 = The MSB, which bit of transmit/receive data buffer depends on the setting of DWIDTH, is transmitted/received first.\r
88      * |        |          |1 = The LSB, the bit 0 of data buffer, will be transmitted/received first.\r
89      * |[11:8]  |DWIDTH    |Word Length of Transmission\r
90      * |        |          |This bit field defines the data word length (amount of bits) for reception and transmission\r
91      * |        |          |The data word is always right-aligned in the data buffer\r
92      * |        |          |USCI support word length from 4 to 16 bits.\r
93      * |        |          |0x0: The data word contains 16 bits located at bit positions [15:0].\r
94      * |        |          |0x1: Reserved.\r
95      * |        |          |0x2: Reserved.\r
96      * |        |          |0x3: Reserved.\r
97      * |        |          |0x4: The data word contains 4 bits located at bit positions [3:0].\r
98      * |        |          |0x5: The data word contains 5 bits located at bit positions [4:0].\r
99      * |        |          |...\r
100      * |        |          |0xF: The data word contains 15 bits located at bit positions [14:0].\r
101      * |        |          |Note: In UART protocol, the length can be configured as 6~13 bits.\r
102      * @var UI2C_T::TXDAT\r
103      * Offset: 0x30  USCI Transmit Data Register\r
104      * ---------------------------------------------------------------------------------------------------\r
105      * |Bits    |Field     |Descriptions\r
106      * | :----: | :----:   | :---- |\r
107      * |[15:0]  |TXDAT     |Transmit Data\r
108      * |        |          |Software can use this bit field to write 16-bit transmit data for transmission.\r
109      * @var UI2C_T::RXDAT\r
110      * Offset: 0x34  USCI Receive Data Register\r
111      * ---------------------------------------------------------------------------------------------------\r
112      * |Bits    |Field     |Descriptions\r
113      * | :----: | :----:   | :---- |\r
114      * |[15:0]  |RXDAT     |Received Data\r
115      * |        |          |This bit field monitors the received data which stored in receive data buffer.\r
116      * |        |          |Note 1: In I2C protocol, RXDAT[12:8] indicate the different transmission conditions which defined in I2C.\r
117      * |        |          |Note 2: In UART protocol, RXDAT[15:13] indicate the same frame status of BREAK, FRMERR and PARITYERR (UI2C_PROTSTS[7:5]).\r
118      * @var UI2C_T::DEVADDR0\r
119      * Offset: 0x44  USCI Device Address Register 0\r
120      * ---------------------------------------------------------------------------------------------------\r
121      * |Bits    |Field     |Descriptions\r
122      * | :----: | :----:   | :---- |\r
123      * |[9:0]   |DEVADDR   |Device   Address\r
124      * |        |          |In I2C   protocol, this bit field contains the programmed slave address\r
125      * |        |          |If the first   received address byte are 1111 0AAXB, the AA bits are compared to   the bits DEVADDR[9:8] to check for address match, where the X is R/W bit\r
126      * |        |          |Then   the second address byte is also compared to DEVADDR[7:0].\r
127      * |        |          |Note: The DEVADDR [9:7] must be set 3'b000 when I2C operating in   7-bit address mode.\r
128      * @var UI2C_T::DEVADDR1\r
129      * Offset: 0x48  USCI Device Address Register 1\r
130      * ---------------------------------------------------------------------------------------------------\r
131      * |Bits    |Field     |Descriptions\r
132      * | :----: | :----:   | :---- |\r
133      * |[9:0]   |DEVADDR   |Device   Address\r
134      * |        |          |In I2C   protocol, this bit field contains the programmed slave address\r
135      * |        |          |If the first   received address byte are 1111 0AAXB, the AA bits are compared to   the bits DEVADDR[9:8] to check for address match, where the X is R/W bit\r
136      * |        |          |Then   the second address byte is also compared to DEVADDR[7:0].\r
137      * |        |          |Note: The DEVADDR [9:7] must be set 3'b000 when I2C operating in   7-bit address mode.\r
138      * @var UI2C_T::ADDRMSK0\r
139      * Offset: 0x4C  USCI Device Address Mask Register 0\r
140      * ---------------------------------------------------------------------------------------------------\r
141      * |Bits    |Field     |Descriptions\r
142      * | :----: | :----:   | :---- |\r
143      * |[9:0]   |ADDRMSK   |USCI Device Address Mask\r
144      * |        |          |0 = Mask Disabled (the received corresponding register bit should be exact the same as address register.).\r
145      * |        |          |1 = Mask Enabled (the received corresponding address bit is don't care.).\r
146      * |        |          |USCI support multiple address recognition with two address mask register\r
147      * |        |          |When the bit in the address mask register is set to one, it means the received corresponding address bit is don't-care\r
148      * |        |          |If the bit is set to zero, that means the received corresponding register bit should be exact the same as address register.\r
149      * |        |          |Note: The wake-up function can not set address mask.\r
150      * @var UI2C_T::ADDRMSK1\r
151      * Offset: 0x50  USCI Device Address Mask Register 1\r
152      * ---------------------------------------------------------------------------------------------------\r
153      * |Bits    |Field     |Descriptions\r
154      * | :----: | :----:   | :---- |\r
155      * |[9:0]   |ADDRMSK   |USCI Device Address Mask\r
156      * |        |          |0 = Mask Disabled (the received corresponding register bit should be exact the same as address register.).\r
157      * |        |          |1 = Mask Enabled (the received corresponding address bit is don't care.).\r
158      * |        |          |USCI support multiple address recognition with two address mask register\r
159      * |        |          |When the bit in the address mask register is set to one, it means the received corresponding address bit is don't-care\r
160      * |        |          |If the bit is set to zero, that means the received corresponding register bit should be exact the same as address register.\r
161      * |        |          |Note: The wake-up function can not set address mask.\r
162      * @var UI2C_T::WKCTL\r
163      * Offset: 0x54  USCI Wake-up Control Register\r
164      * ---------------------------------------------------------------------------------------------------\r
165      * |Bits    |Field     |Descriptions\r
166      * | :----: | :----:   | :---- |\r
167      * |[0]     |WKEN      |Wake-up Enable Bit\r
168      * |        |          |0 = Wake-up function Disabled.\r
169      * |        |          |1 = Wake-up function Enabled.\r
170      * |[1]     |WKADDREN  |Wake-up Address Match Enable Bit\r
171      * |        |          |0 = The chip is woken up according data toggle.\r
172      * |        |          |1 = The chip is woken up according address match.\r
173      * @var UI2C_T::WKSTS\r
174      * Offset: 0x58  USCI Wake-up Status Register\r
175      * ---------------------------------------------------------------------------------------------------\r
176      * |Bits    |Field     |Descriptions\r
177      * | :----: | :----:   | :---- |\r
178      * |[0]     |WKF       |Wake-up Flag\r
179      * |        |          |When chip is woken up from Power-down mode, this bit is set to 1\r
180      * |        |          |Software can write 1 to clear this bit.\r
181      * @var UI2C_T::PROTCTL\r
182      * Offset: 0x5C  USCI Protocol Control Register\r
183      * ---------------------------------------------------------------------------------------------------\r
184      * |Bits    |Field     |Descriptions\r
185      * | :----: | :----:   | :---- |\r
186      * |[0]     |GCFUNC    |General Call Function\r
187      * |        |          |0 = General Call Function Disabled.\r
188      * |        |          |1 = General Call Function Enabled.\r
189      * |[1]     |AA        |Assert Acknowledge Control\r
190      * |        |          |When AA =1 prior to address or data received, an acknowledged (low level to SDA) will be returned during the acknowledge clock pulse on the SCL line when 1.) A slave is acknowledging the address sent from master, 2.) The receiver devices are acknowledging the data sent by transmitter\r
191      * |        |          |When AA=0 prior to address or data received, a Not acknowledged (high level to SDA) will be returned during the acknowledge clock pulse on the SCL line.\r
192      * |[2]     |STO       |I2C STOP Control\r
193      * |        |          |In Master mode, setting STO to transmit a STOP condition to bus then I2C hardware will check the bus condition if a STOP condition is detected this bit will be cleared by hardware automatically\r
194      * |        |          |In a slave mode, setting STO resets I2C hardware to the defined not addressed slave mode when bus error (UI2C_PROTSTS.ERRIF = 1).\r
195      * |[3]     |STA       |I2C START Control\r
196      * |        |          |Setting STA to logic 1 to enter Master mode, the I2C hardware sends a START or repeat START condition to bus when the bus is free.\r
197      * |[4]     |ADDR10EN  |Address 10-bit Function Enable Bit\r
198      * |        |          |0 = Address match 10 bit function is disabled.\r
199      * |        |          |1 = Address match 10 bit function is enabled.\r
200      * |[5]     |PTRG      |I2C Protocol Trigger (Write Only)\r
201      * |        |          |When a new state is present in the UI2C_PROTSTS register, if the related interrupt enable bits are set, the I2C interrupt is requested\r
202      * |        |          |It must write one by software to this bit after the related interrupt flags are set to 1 and the I2C protocol function will go ahead until the STOP is active or the PROTEN is disabled.\r
203      * |        |          |0 = I2C's stretch disabled and the I2C protocol function will go ahead.\r
204      * |        |          |1 = I2C's stretch active.\r
205      * |[8]     |SCLOUTEN  |SCL Output Enable Bit\r
206      * |        |          |This bit enables monitor pulling SCL to low\r
207      * |        |          |This monitor will pull SCL to low until it has had time to respond to an I2C interrupt.\r
208      * |        |          |0 = SCL output will be forced high due to open drain mechanism.\r
209      * |        |          |1 = I2C module may act as a slave peripheral just like in normal operation, the I2C holds the clock line low until it has had time to clear I2C interrupt.\r
210      * |[9]     |MONEN     |Monitor Mode Enable Bit\r
211      * |        |          |This bit enables monitor mode\r
212      * |        |          |In monitor mode the SDA output will be put in high impedance mode\r
213      * |        |          |This prevents the I2C module from outputting data of any kind (including ACK) onto the I2C data bus.\r
214      * |        |          |0 = The monitor mode is disabled.\r
215      * |        |          |1 = The monitor mode is enabled.\r
216      * |        |          |Note: Depending on the state of the SCLOUTEN bit, the SCL output may be also forced high, preventing the module from having control over the I2C clock line.\r
217      * |[25:16] |TOCNT     |Time-out Clock Cycle\r
218      * |        |          |This bit field indicates how many clock cycle selected by TMCNTSRC (UI2C_BRGEN [5]) when each interrupt flags are clear\r
219      * |        |          |The time-out is enable when TOCNT bigger than 0.\r
220      * |        |          |Note: The TMCNTSRC (UI2C_BRGEN [5]) must be set zero on I2C mode.\r
221      * |[31]    |PROTEN    |I2C Protocol Enable Bit\r
222      * |        |          |0 = I2C Protocol disable.\r
223      * |        |          |1 = I2C Protocol enable.\r
224      * @var UI2C_T::PROTIEN\r
225      * Offset: 0x60  USCI Protocol Interrupt Enable Register\r
226      * ---------------------------------------------------------------------------------------------------\r
227      * |Bits    |Field     |Descriptions\r
228      * | :----: | :----:   | :---- |\r
229      * |[0]     |TOIEN     |Time-out Interrupt Enable Control\r
230      * |        |          |In I2C protocol, this bit enables the interrupt generation in case of a time-out event.\r
231      * |        |          |0 = The time-out interrupt is disabled.\r
232      * |        |          |1 = The time-out interrupt is enabled.\r
233      * |[1]     |STARIEN   |Start Condition Received Interrupt Enable Control\r
234      * |        |          |This bit enables the generation of a protocol interrupt if a start condition is detected.\r
235      * |        |          |0 = The start condition interrupt is disabled.\r
236      * |        |          |1 = The start condition interrupt is enabled.\r
237      * |[2]     |STORIEN   |Stop Condition Received Interrupt Enable Control\r
238      * |        |          |This bit enables the generation of a protocol interrupt if a stop condition is detected.\r
239      * |        |          |0 = The stop condition interrupt is disabled.\r
240      * |        |          |1 = The stop condition interrupt is enabled.\r
241      * |[3]     |NACKIEN   |Non - Acknowledge Interrupt Enable Control\r
242      * |        |          |This bit enables the generation of a protocol interrupt if a non - acknowledge is detected by a master.\r
243      * |        |          |0 = The non - acknowledge interrupt is disabled.\r
244      * |        |          |1 = The non - acknowledge interrupt is enabled.\r
245      * |[4]     |ARBLOIEN  |Arbitration Lost Interrupt Enable Control\r
246      * |        |          |This bit enables the generation of a protocol interrupt if an arbitration lost event is detected.\r
247      * |        |          |0 = The arbitration lost interrupt is disabled.\r
248      * |        |          |1 = The arbitration lost interrupt is enabled.\r
249      * |[5]     |ERRIEN    |Error Interrupt Enable Control\r
250      * |        |          |This bit enables the generation of a protocol interrupt if an I2C error condition is detected (indicated by ERR (UI2C_PROTSTS [16])).\r
251      * |        |          |0 = The error interrupt is disabled.\r
252      * |        |          |1 = The error interrupt is enabled.\r
253      * |[6]     |ACKIEN    |Acknowledge Interrupt Enable Control\r
254      * |        |          |This bit enables the generation of a protocol interrupt if an acknowledge is detected by a master.\r
255      * |        |          |0 = The acknowledge interrupt is disabled.\r
256      * |        |          |1 = The acknowledge interrupt is enabled.\r
257      * @var UI2C_T::PROTSTS\r
258      * Offset: 0x64  USCI Protocol Status Register\r
259      * ---------------------------------------------------------------------------------------------------\r
260      * |Bits    |Field     |Descriptions\r
261      * | :----: | :----:   | :---- |\r
262      * |[5]     |TOIF      |Time-out Interrupt Flag\r
263      * |        |          |0 = A time-out interrupt status has not occurred.\r
264      * |        |          |1 = A time-out interrupt status has occurred.\r
265      * |        |          |Note: It is cleared by software writing one into this bit\r
266      * |[6]     |ONBUSY    |On Bus Busy\r
267      * |        |          |Indicates that a communication is in progress on the bus\r
268      * |        |          |It is set by hardware when a START condition is detected\r
269      * |        |          |It is cleared by hardware when a STOP condition is detected\r
270      * |        |          |0 = The bus is IDLE (both SCLK and SDA High).\r
271      * |        |          |1 = The bus is busy.\r
272      * |[8]     |STARIF    |Start Condition Received Interrupt Flag\r
273      * |        |          |This bit indicates that a start condition or repeated start condition has been detected on master mode\r
274      * |        |          |However, this bit also indicates that a repeated start condition has been detected on slave mode.\r
275      * |        |          |A protocol interrupt can be generated if UI2C_PROTCTL.STARIEN = 1.\r
276      * |        |          |0 = A start condition has not yet been detected.\r
277      * |        |          |1 = A start condition has been detected.\r
278      * |        |          |It is cleared by software writing one into this bit\r
279      * |[9]     |STORIF    |Stop Condition Received Interrupt Flag\r
280      * |        |          |This bit indicates that a stop condition has been detected on the I2C bus lines\r
281      * |        |          |A protocol interrupt can be generated if UI2C_PROTCTL.STORIEN = 1.\r
282      * |        |          |0 = A stop condition has not yet been detected.\r
283      * |        |          |1 = A stop condition has been detected.\r
284      * |        |          |It is cleared by software writing one into this bit\r
285      * |        |          |Note: This bit is set when slave RX mode.\r
286      * |[10]    |NACKIF    |Non - Acknowledge Received Interrupt Flag\r
287      * |        |          |This bit indicates that a non - acknowledge has been received in master mode\r
288      * |        |          |A protocol interrupt can be generated if UI2C_PROTCTL.NACKIEN = 1.\r
289      * |        |          |0 = A non - acknowledge has not been received.\r
290      * |        |          |1 = A non - acknowledge has been received.\r
291      * |        |          |It is cleared by software writing one into this bit\r
292      * |[11]    |ARBLOIF   |Arbitration Lost Interrupt Flag\r
293      * |        |          |This bit indicates that an arbitration has been lost\r
294      * |        |          |A protocol interrupt can be generated if UI2C_PROTCTL.ARBLOIEN = 1.\r
295      * |        |          |0 = An arbitration has not been lost.\r
296      * |        |          |1 = An arbitration has been lost.\r
297      * |        |          |It is cleared by software writing one into this bit\r
298      * |[12]    |ERRIF     |Error Interrupt Flag\r
299      * |        |          |This bit indicates that a Bus Error occurs when a START or STOP condition is present at an illegal position in the formation frame\r
300      * |        |          |Example of illegal position are during the serial transfer of an address byte, a data byte or an acknowledge bit\r
301      * |        |          |A protocol interrupt can be generated if UI2C_PROTCTL.ERRIEN = 1.\r
302      * |        |          |0 = An I2C error has not been detected.\r
303      * |        |          |1 = An I2C error has been detected.\r
304      * |        |          |It is cleared by software writing one into this bit\r
305      * |        |          |Note: This bit is set when slave mode, user must write one into STO register to the defined not addressed slave mode.\r
306      * |[13]    |ACKIF     |Acknowledge Received Interrupt Flag\r
307      * |        |          |This bit indicates that an acknowledge has been received in master mode\r
308      * |        |          |A protocol interrupt can be generated if UI2C_PROTCTL.ACKIEN = 1.\r
309      * |        |          |0 = An acknowledge has not been received.\r
310      * |        |          |1 = An acknowledge has been received.\r
311      * |        |          |It is cleared by software writing one into this bit\r
312      * |[14]    |SLASEL    |Slave Select Status\r
313      * |        |          |This bit indicates that this device has been selected as slave.\r
314      * |        |          |0 = The device is not selected as slave.\r
315      * |        |          |1 = The device is selected as slave.\r
316      * |        |          |Note: This bit has no interrupt signal, and it will be cleared automatically by hardware.\r
317      * |[15]    |SLAREAD   |Slave Read Request Status\r
318      * |        |          |This bit indicates that a slave read request has been detected.\r
319      * |        |          |0 = A slave R/W bit is 1 has not been detected.\r
320      * |        |          |1 = A slave R/W bit is 1 has been detected.\r
321      * |        |          |Note: This bit has no interrupt signal, and it will be cleared automatically by hardware.\r
322      * |[16]    |WKAKDONE  |Wakeup Address Frame Acknowledge Bit Done\r
323      * |        |          |0 = The ACK bit cycle of address match frame isn't done.\r
324      * |        |          |1 = The ACK bit cycle of address match frame is done in power-down.\r
325      * |        |          |Note: This bit can't release when WKUPIF is set.\r
326      * |[17]    |WRSTSWK   |Read/Write Status Bit in Address Wakeup Frame\r
327      * |        |          |0 = Write command be record on the address match wakeup frame.\r
328      * |        |          |1 = Read command be record on the address match wakeup frame.\r
329      * |[18]    |BUSHANG   |Bus Hang-up\r
330      * |        |          |This bit indicates bus hang-up status\r
331      * |        |          |There is 4-bit counter count when SCL hold high and refer fSAMP_CLK\r
332      * |        |          |The hang-up counter will count to overflow and set this bit when SDA is low\r
333      * |        |          |The counter will be reset by falling edge of SCL signal.\r
334      * |        |          |0 = The bus is normal status for transmission.\r
335      * |        |          |1 = The bus is hang-up status for transmission.\r
336      * |        |          |Note: This bit has no interrupt signal, and it will be cleared automatically by hardware when a START condition is present.\r
337      * |[19]    |ERRARBLO  |Error Arbitration Lost\r
338      * |        |          |This bit indicates bus arbitration lost due to bigger noise which is can't be filtered by input processor\r
339      * |        |          |The I2C can send start condition when ERRARBLO is set\r
340      * |        |          |Thus this bit doesn't be cared on slave mode.\r
341      * |        |          |0 = The bus is normal status for transmission.\r
342      * |        |          |1 = The bus is error arbitration lost status for transmission.\r
343      * |        |          |Note: This bit has no interrupt signal, and it will be cleared automatically by hardware when a START condition is present.\r
344      * @var UI2C_T::ADMAT\r
345      * Offset: 0x88  I2C Slave Match Address Register\r
346      * ---------------------------------------------------------------------------------------------------\r
347      * |Bits    |Field     |Descriptions\r
348      * | :----: | :----:   | :---- |\r
349      * |[0]     |ADMAT0    |USCI Address 0 Match Status Register\r
350      * |        |          |When address 0 is matched, hardware will inform which address used\r
351      * |        |          |This bit will set to 1, and software can write 1 to clear this bit.\r
352      * |[1]     |ADMAT1    |USCI Address 1 Match Status Register\r
353      * |        |          |When address 1 is matched, hardware will inform which address used\r
354      * |        |          |This bit will set to 1, and software can write 1 to clear this bit.\r
355      * @var UI2C_T::TMCTL\r
356      * Offset: 0x8C  I2C Timing Configure Control Register\r
357      * ---------------------------------------------------------------------------------------------------\r
358      * |Bits    |Field     |Descriptions\r
359      * | :----: | :----:   | :---- |\r
360      * |[8:0]   |STCTL     |Setup Time Configure Control Register\r
361      * |        |          |This field is used to generate a delay timing between SDA edge and SCL rising edge in transmission mode..\r
362      * |        |          |The delay setup time is numbers of peripheral clock = STCTL x fPCLK.\r
363      * |[24:16] |HTCTL     |Hold Time Configure Control Register\r
364      * |        |          |This field is used to generate the delay timing between SCL falling edge SDA edge in\r
365      * |        |          |transmission mode.\r
366      * |        |          |The delay hold time is numbers of peripheral clock = HTCTL x fPCLK.\r
367      */\r
368     __IO uint32_t CTL;                   /*!< [0x0000] USCI Control Register                                            */\r
369     __I  uint32_t RESERVE0[1];\r
370     __IO uint32_t BRGEN;                 /*!< [0x0008] USCI Baud Rate Generator Register                                */\r
371     __I  uint32_t RESERVE1[8];\r
372     __IO uint32_t LINECTL;               /*!< [0x002c] USCI Line Control Register                                       */\r
373     __O  uint32_t TXDAT;                 /*!< [0x0030] USCI Transmit Data Register                                      */\r
374     __I  uint32_t RXDAT;                 /*!< [0x0034] USCI Receive Data Register                                       */\r
375     __I  uint32_t RESERVE2[3];\r
376     __IO uint32_t DEVADDR0;              /*!< [0x0044] USCI Device Address Register 0                                   */\r
377     __IO uint32_t DEVADDR1;              /*!< [0x0048] USCI Device Address Register 1                                   */\r
378     __IO uint32_t ADDRMSK0;              /*!< [0x004c] USCI Device Address Mask Register 0                              */\r
379     __IO uint32_t ADDRMSK1;              /*!< [0x0050] USCI Device Address Mask Register 1                              */\r
380     __IO uint32_t WKCTL;                 /*!< [0x0054] USCI Wake-up Control Register                                    */\r
381     __IO uint32_t WKSTS;                 /*!< [0x0058] USCI Wake-up Status Register                                     */\r
382     __IO uint32_t PROTCTL;               /*!< [0x005c] USCI Protocol Control Register                                   */\r
383     __IO uint32_t PROTIEN;               /*!< [0x0060] USCI Protocol Interrupt Enable Register                          */\r
384     __IO uint32_t PROTSTS;               /*!< [0x0064] USCI Protocol Status Register                                    */\r
385     __I  uint32_t RESERVE3[8];\r
386     __IO uint32_t ADMAT;                 /*!< [0x0088] I2C Slave Match Address Register                                 */\r
387     __IO uint32_t TMCTL;                 /*!< [0x008c] I2C Timing Configure Control Register                            */\r
388 \r
389 } UI2C_T;\r
390 \r
391 /**\r
392     @addtogroup UI2C_CONST UI2C Bit Field Definition\r
393     Constant Definitions for UI2C Controller\r
394 @{ */\r
395 \r
396 #define UI2C_CTL_FUNMODE_Pos             (0)                                               /*!< UI2C_T::CTL: FUNMODE Position          */\r
397 #define UI2C_CTL_FUNMODE_Msk             (0x7ul << UI2C_CTL_FUNMODE_Pos)                   /*!< UI2C_T::CTL: FUNMODE Mask              */\r
398 \r
399 #define UI2C_BRGEN_RCLKSEL_Pos           (0)                                               /*!< UI2C_T::BRGEN: RCLKSEL Position        */\r
400 #define UI2C_BRGEN_RCLKSEL_Msk           (0x1ul << UI2C_BRGEN_RCLKSEL_Pos)                 /*!< UI2C_T::BRGEN: RCLKSEL Mask            */\r
401 \r
402 #define UI2C_BRGEN_PTCLKSEL_Pos          (1)                                               /*!< UI2C_T::BRGEN: PTCLKSEL Position       */\r
403 #define UI2C_BRGEN_PTCLKSEL_Msk          (0x1ul << UI2C_BRGEN_PTCLKSEL_Pos)                /*!< UI2C_T::BRGEN: PTCLKSEL Mask           */\r
404 \r
405 #define UI2C_BRGEN_SPCLKSEL_Pos          (2)                                               /*!< UI2C_T::BRGEN: SPCLKSEL Position       */\r
406 #define UI2C_BRGEN_SPCLKSEL_Msk          (0x3ul << UI2C_BRGEN_SPCLKSEL_Pos)                /*!< UI2C_T::BRGEN: SPCLKSEL Mask           */\r
407 \r
408 #define UI2C_BRGEN_TMCNTEN_Pos           (4)                                               /*!< UI2C_T::BRGEN: TMCNTEN Position        */\r
409 #define UI2C_BRGEN_TMCNTEN_Msk           (0x1ul << UI2C_BRGEN_TMCNTEN_Pos)                 /*!< UI2C_T::BRGEN: TMCNTEN Mask            */\r
410 \r
411 #define UI2C_BRGEN_TMCNTSRC_Pos          (5)                                               /*!< UI2C_T::BRGEN: TMCNTSRC Position       */\r
412 #define UI2C_BRGEN_TMCNTSRC_Msk          (0x1ul << UI2C_BRGEN_TMCNTSRC_Pos)                /*!< UI2C_T::BRGEN: TMCNTSRC Mask           */\r
413 \r
414 #define UI2C_BRGEN_PDSCNT_Pos            (8)                                               /*!< UI2C_T::BRGEN: PDSCNT Position         */\r
415 #define UI2C_BRGEN_PDSCNT_Msk            (0x3ul << UI2C_BRGEN_PDSCNT_Pos)                  /*!< UI2C_T::BRGEN: PDSCNT Mask             */\r
416 \r
417 #define UI2C_BRGEN_DSCNT_Pos             (10)                                              /*!< UI2C_T::BRGEN: DSCNT Position          */\r
418 #define UI2C_BRGEN_DSCNT_Msk             (0x1ful << UI2C_BRGEN_DSCNT_Pos)                  /*!< UI2C_T::BRGEN: DSCNT Mask              */\r
419 \r
420 #define UI2C_BRGEN_CLKDIV_Pos            (16)                                              /*!< UI2C_T::BRGEN: CLKDIV Position         */\r
421 #define UI2C_BRGEN_CLKDIV_Msk            (0x3fful << UI2C_BRGEN_CLKDIV_Pos)                /*!< UI2C_T::BRGEN: CLKDIV Mask             */\r
422 \r
423 #define UI2C_LINECTL_LSB_Pos             (0)                                               /*!< UI2C_T::LINECTL: LSB Position          */\r
424 #define UI2C_LINECTL_LSB_Msk             (0x1ul << UI2C_LINECTL_LSB_Pos)                   /*!< UI2C_T::LINECTL: LSB Mask              */\r
425 \r
426 #define UI2C_LINECTL_DWIDTH_Pos          (8)                                               /*!< UI2C_T::LINECTL: DWIDTH Position       */\r
427 #define UI2C_LINECTL_DWIDTH_Msk          (0xful << UI2C_LINECTL_DWIDTH_Pos)                /*!< UI2C_T::LINECTL: DWIDTH Mask           */\r
428 \r
429 #define UI2C_TXDAT_TXDAT_Pos             (0)                                               /*!< UI2C_T::TXDAT: TXDAT Position          */\r
430 #define UI2C_TXDAT_TXDAT_Msk             (0xfffful << UI2C_TXDAT_TXDAT_Pos)                /*!< UI2C_T::TXDAT: TXDAT Mask              */\r
431 \r
432 #define UI2C_RXDAT_RXDAT_Pos             (0)                                               /*!< UI2C_T::RXDAT: RXDAT Position          */\r
433 #define UI2C_RXDAT_RXDAT_Msk             (0xfffful << UI2C_RXDAT_RXDAT_Pos)                /*!< UI2C_T::RXDAT: RXDAT Mask              */\r
434 \r
435 #define UI2C_DEVADDR0_DEVADDR_Pos        (0)                                               /*!< UI2C_T::DEVADDR0: DEVADDR Position     */\r
436 #define UI2C_DEVADDR0_DEVADDR_Msk        (0x3fful << UI2C_DEVADDR0_DEVADDR_Pos)            /*!< UI2C_T::DEVADDR0: DEVADDR Mask         */\r
437 \r
438 #define UI2C_DEVADDR1_DEVADDR_Pos        (0)                                               /*!< UI2C_T::DEVADDR1: DEVADDR Position     */\r
439 #define UI2C_DEVADDR1_DEVADDR_Msk        (0x3fful << UI2C_DEVADDR1_DEVADDR_Pos)            /*!< UI2C_T::DEVADDR1: DEVADDR Mask         */\r
440 \r
441 #define UI2C_ADDRMSK0_ADDRMSK_Pos        (0)                                               /*!< UI2C_T::ADDRMSK0: ADDRMSK Position     */\r
442 #define UI2C_ADDRMSK0_ADDRMSK_Msk        (0x3fful << UI2C_ADDRMSK0_ADDRMSK_Pos)            /*!< UI2C_T::ADDRMSK0: ADDRMSK Mask         */\r
443 \r
444 #define UI2C_ADDRMSK1_ADDRMSK_Pos        (0)                                               /*!< UI2C_T::ADDRMSK1: ADDRMSK Position     */\r
445 #define UI2C_ADDRMSK1_ADDRMSK_Msk        (0x3fful << UI2C_ADDRMSK1_ADDRMSK_Pos)            /*!< UI2C_T::ADDRMSK1: ADDRMSK Mask         */\r
446 \r
447 #define UI2C_WKCTL_WKEN_Pos              (0)                                               /*!< UI2C_T::WKCTL: WKEN Position           */\r
448 #define UI2C_WKCTL_WKEN_Msk              (0x1ul << UI2C_WKCTL_WKEN_Pos)                    /*!< UI2C_T::WKCTL: WKEN Mask               */\r
449 \r
450 #define UI2C_WKCTL_WKADDREN_Pos          (1)                                               /*!< UI2C_T::WKCTL: WKADDREN Position       */\r
451 #define UI2C_WKCTL_WKADDREN_Msk          (0x1ul << UI2C_WKCTL_WKADDREN_Pos)                /*!< UI2C_T::WKCTL: WKADDREN Mask           */\r
452 \r
453 #define UI2C_WKSTS_WKF_Pos               (0)                                               /*!< UI2C_T::WKSTS: WKF Position            */\r
454 #define UI2C_WKSTS_WKF_Msk               (0x1ul << UI2C_WKSTS_WKF_Pos)                     /*!< UI2C_T::WKSTS: WKF Mask                */\r
455 \r
456 #define UI2C_PROTCTL_GCFUNC_Pos          (0)                                               /*!< UI2C_T::PROTCTL: GCFUNC Position       */\r
457 #define UI2C_PROTCTL_GCFUNC_Msk          (0x1ul << UI2C_PROTCTL_GCFUNC_Pos)                /*!< UI2C_T::PROTCTL: GCFUNC Mask           */\r
458 \r
459 #define UI2C_PROTCTL_AA_Pos              (1)                                               /*!< UI2C_T::PROTCTL: AA Position           */\r
460 #define UI2C_PROTCTL_AA_Msk              (0x1ul << UI2C_PROTCTL_AA_Pos)                    /*!< UI2C_T::PROTCTL: AA Mask               */\r
461 \r
462 #define UI2C_PROTCTL_STO_Pos             (2)                                               /*!< UI2C_T::PROTCTL: STO Position          */\r
463 #define UI2C_PROTCTL_STO_Msk             (0x1ul << UI2C_PROTCTL_STO_Pos)                   /*!< UI2C_T::PROTCTL: STO Mask              */\r
464 \r
465 #define UI2C_PROTCTL_STA_Pos             (3)                                               /*!< UI2C_T::PROTCTL: STA Position          */\r
466 #define UI2C_PROTCTL_STA_Msk             (0x1ul << UI2C_PROTCTL_STA_Pos)                   /*!< UI2C_T::PROTCTL: STA Mask              */\r
467 \r
468 #define UI2C_PROTCTL_ADDR10EN_Pos        (4)                                               /*!< UI2C_T::PROTCTL: ADDR10EN Position     */\r
469 #define UI2C_PROTCTL_ADDR10EN_Msk        (0x1ul << UI2C_PROTCTL_ADDR10EN_Pos)              /*!< UI2C_T::PROTCTL: ADDR10EN Mask         */\r
470 \r
471 #define UI2C_PROTCTL_PTRG_Pos            (5)                                               /*!< UI2C_T::PROTCTL: PTRG Position         */\r
472 #define UI2C_PROTCTL_PTRG_Msk            (0x1ul << UI2C_PROTCTL_PTRG_Pos)                  /*!< UI2C_T::PROTCTL: PTRG Mask             */\r
473 \r
474 #define UI2C_PROTCTL_SCLOUTEN_Pos        (8)                                               /*!< UI2C_T::PROTCTL: SCLOUTEN Position     */\r
475 #define UI2C_PROTCTL_SCLOUTEN_Msk        (0x1ul << UI2C_PROTCTL_SCLOUTEN_Pos)              /*!< UI2C_T::PROTCTL: SCLOUTEN Mask         */\r
476 \r
477 #define UI2C_PROTCTL_MONEN_Pos           (9)                                               /*!< UI2C_T::PROTCTL: MONEN Position        */\r
478 #define UI2C_PROTCTL_MONEN_Msk           (0x1ul << UI2C_PROTCTL_MONEN_Pos)                 /*!< UI2C_T::PROTCTL: MONEN Mask            */\r
479 \r
480 #define UI2C_PROTCTL_TOCNT_Pos           (16)                                              /*!< UI2C_T::PROTCTL: TOCNT Position        */\r
481 #define UI2C_PROTCTL_TOCNT_Msk           (0x3fful << UI2C_PROTCTL_TOCNT_Pos)               /*!< UI2C_T::PROTCTL: TOCNT Mask            */\r
482 \r
483 #define UI2C_PROTCTL_PROTEN_Pos          (31)                                              /*!< UI2C_T::PROTCTL: PROTEN Position       */\r
484 #define UI2C_PROTCTL_PROTEN_Msk          (0x1ul << UI2C_PROTCTL_PROTEN_Pos)                /*!< UI2C_T::PROTCTL: PROTEN Mask           */\r
485 \r
486 #define UI2C_PROTIEN_TOIEN_Pos           (0)                                               /*!< UI2C_T::PROTIEN: TOIEN Position        */\r
487 #define UI2C_PROTIEN_TOIEN_Msk           (0x1ul << UI2C_PROTIEN_TOIEN_Pos)                 /*!< UI2C_T::PROTIEN: TOIEN Mask            */\r
488 \r
489 #define UI2C_PROTIEN_STARIEN_Pos         (1)                                               /*!< UI2C_T::PROTIEN: STARIEN Position      */\r
490 #define UI2C_PROTIEN_STARIEN_Msk         (0x1ul << UI2C_PROTIEN_STARIEN_Pos)               /*!< UI2C_T::PROTIEN: STARIEN Mask          */\r
491 \r
492 #define UI2C_PROTIEN_STORIEN_Pos         (2)                                               /*!< UI2C_T::PROTIEN: STORIEN Position      */\r
493 #define UI2C_PROTIEN_STORIEN_Msk         (0x1ul << UI2C_PROTIEN_STORIEN_Pos)               /*!< UI2C_T::PROTIEN: STORIEN Mask          */\r
494 \r
495 #define UI2C_PROTIEN_NACKIEN_Pos         (3)                                               /*!< UI2C_T::PROTIEN: NACKIEN Position      */\r
496 #define UI2C_PROTIEN_NACKIEN_Msk         (0x1ul << UI2C_PROTIEN_NACKIEN_Pos)               /*!< UI2C_T::PROTIEN: NACKIEN Mask          */\r
497 \r
498 #define UI2C_PROTIEN_ARBLOIEN_Pos        (4)                                               /*!< UI2C_T::PROTIEN: ARBLOIEN Position     */\r
499 #define UI2C_PROTIEN_ARBLOIEN_Msk        (0x1ul << UI2C_PROTIEN_ARBLOIEN_Pos)              /*!< UI2C_T::PROTIEN: ARBLOIEN Mask         */\r
500 \r
501 #define UI2C_PROTIEN_ERRIEN_Pos          (5)                                               /*!< UI2C_T::PROTIEN: ERRIEN Position       */\r
502 #define UI2C_PROTIEN_ERRIEN_Msk          (0x1ul << UI2C_PROTIEN_ERRIEN_Pos)                /*!< UI2C_T::PROTIEN: ERRIEN Mask           */\r
503 \r
504 #define UI2C_PROTIEN_ACKIEN_Pos          (6)                                               /*!< UI2C_T::PROTIEN: ACKIEN Position       */\r
505 #define UI2C_PROTIEN_ACKIEN_Msk          (0x1ul << UI2C_PROTIEN_ACKIEN_Pos)                /*!< UI2C_T::PROTIEN: ACKIEN Mask           */\r
506 \r
507 #define UI2C_PROTSTS_TOIF_Pos            (5)                                               /*!< UI2C_T::PROTSTS: TOIF Position         */\r
508 #define UI2C_PROTSTS_TOIF_Msk            (0x1ul << UI2C_PROTSTS_TOIF_Pos)                  /*!< UI2C_T::PROTSTS: TOIF Mask             */\r
509 \r
510 #define UI2C_PROTSTS_ONBUSY_Pos          (6)                                               /*!< UI2C_T::PROTSTS: ONBUSY Position       */\r
511 #define UI2C_PROTSTS_ONBUSY_Msk          (0x1ul << UI2C_PROTSTS_ONBUSY_Pos)                /*!< UI2C_T::PROTSTS: ONBUSY Mask           */\r
512 \r
513 #define UI2C_PROTSTS_STARIF_Pos          (8)                                               /*!< UI2C_T::PROTSTS: STARIF Position       */\r
514 #define UI2C_PROTSTS_STARIF_Msk          (0x1ul << UI2C_PROTSTS_STARIF_Pos)                /*!< UI2C_T::PROTSTS: STARIF Mask           */\r
515 \r
516 #define UI2C_PROTSTS_STORIF_Pos          (9)                                               /*!< UI2C_T::PROTSTS: STORIF Position       */\r
517 #define UI2C_PROTSTS_STORIF_Msk          (0x1ul << UI2C_PROTSTS_STORIF_Pos)                /*!< UI2C_T::PROTSTS: STORIF Mask           */\r
518 \r
519 #define UI2C_PROTSTS_NACKIF_Pos          (10)                                              /*!< UI2C_T::PROTSTS: NACKIF Position       */\r
520 #define UI2C_PROTSTS_NACKIF_Msk          (0x1ul << UI2C_PROTSTS_NACKIF_Pos)                /*!< UI2C_T::PROTSTS: NACKIF Mask           */\r
521 \r
522 #define UI2C_PROTSTS_ARBLOIF_Pos         (11)                                              /*!< UI2C_T::PROTSTS: ARBLOIF Position      */\r
523 #define UI2C_PROTSTS_ARBLOIF_Msk         (0x1ul << UI2C_PROTSTS_ARBLOIF_Pos)               /*!< UI2C_T::PROTSTS: ARBLOIF Mask          */\r
524 \r
525 #define UI2C_PROTSTS_ERRIF_Pos           (12)                                              /*!< UI2C_T::PROTSTS: ERRIF Position        */\r
526 #define UI2C_PROTSTS_ERRIF_Msk           (0x1ul << UI2C_PROTSTS_ERRIF_Pos)                 /*!< UI2C_T::PROTSTS: ERRIF Mask            */\r
527 \r
528 #define UI2C_PROTSTS_ACKIF_Pos           (13)                                              /*!< UI2C_T::PROTSTS: ACKIF Position        */\r
529 #define UI2C_PROTSTS_ACKIF_Msk           (0x1ul << UI2C_PROTSTS_ACKIF_Pos)                 /*!< UI2C_T::PROTSTS: ACKIF Mask            */\r
530 \r
531 #define UI2C_PROTSTS_SLASEL_Pos          (14)                                              /*!< UI2C_T::PROTSTS: SLASEL Position       */\r
532 #define UI2C_PROTSTS_SLASEL_Msk          (0x1ul << UI2C_PROTSTS_SLASEL_Pos)                /*!< UI2C_T::PROTSTS: SLASEL Mask           */\r
533 \r
534 #define UI2C_PROTSTS_SLAREAD_Pos         (15)                                              /*!< UI2C_T::PROTSTS: SLAREAD Position      */\r
535 #define UI2C_PROTSTS_SLAREAD_Msk         (0x1ul << UI2C_PROTSTS_SLAREAD_Pos)               /*!< UI2C_T::PROTSTS: SLAREAD Mask          */\r
536 \r
537 #define UI2C_PROTSTS_WKAKDONE_Pos        (16)                                              /*!< UI2C_T::PROTSTS: WKAKDONE Position     */\r
538 #define UI2C_PROTSTS_WKAKDONE_Msk        (0x1ul << UI2C_PROTSTS_WKAKDONE_Pos)              /*!< UI2C_T::PROTSTS: WKAKDONE Mask         */\r
539 \r
540 #define UI2C_PROTSTS_WRSTSWK_Pos         (17)                                              /*!< UI2C_T::PROTSTS: WRSTSWK Position      */\r
541 #define UI2C_PROTSTS_WRSTSWK_Msk         (0x1ul << UI2C_PROTSTS_WRSTSWK_Pos)               /*!< UI2C_T::PROTSTS: WRSTSWK Mask          */\r
542 \r
543 #define UI2C_PROTSTS_BUSHANG_Pos         (18)                                              /*!< UI2C_T::PROTSTS: BUSHANG Position      */\r
544 #define UI2C_PROTSTS_BUSHANG_Msk         (0x1ul << UI2C_PROTSTS_BUSHANG_Pos)               /*!< UI2C_T::PROTSTS: BUSHANG Mask          */\r
545 \r
546 #define UI2C_PROTSTS_ERRARBLO_Pos        (19)                                              /*!< UI2C_T::PROTSTS: ERRARBLO Position     */\r
547 #define UI2C_PROTSTS_ERRARBLO_Msk        (0x1ul << UI2C_PROTSTS_ERRARBLO_Pos)              /*!< UI2C_T::PROTSTS: ERRARBLO Mask         */\r
548 \r
549 #define UI2C_ADMAT_ADMAT0_Pos            (0)                                               /*!< UI2C_T::ADMAT: ADMAT0 Position         */\r
550 #define UI2C_ADMAT_ADMAT0_Msk            (0x1ul << UI2C_ADMAT_ADMAT0_Pos)                  /*!< UI2C_T::ADMAT: ADMAT0 Mask             */\r
551 \r
552 #define UI2C_ADMAT_ADMAT1_Pos            (1)                                               /*!< UI2C_T::ADMAT: ADMAT1 Position         */\r
553 #define UI2C_ADMAT_ADMAT1_Msk            (0x1ul << UI2C_ADMAT_ADMAT1_Pos)                  /*!< UI2C_T::ADMAT: ADMAT1 Mask             */\r
554 \r
555 #define UI2C_TMCTL_STCTL_Pos             (0)                                               /*!< UI2C_T::TMCTL: STCTL Position          */\r
556 #define UI2C_TMCTL_STCTL_Msk             (0x1fful << UI2C_TMCTL_STCTL_Pos)                 /*!< UI2C_T::TMCTL: STCTL Mask              */\r
557 \r
558 #define UI2C_TMCTL_HTCTL_Pos             (16)                                              /*!< UI2C_T::TMCTL: HTCTL Position          */\r
559 #define UI2C_TMCTL_HTCTL_Msk             (0x1fful << UI2C_TMCTL_HTCTL_Pos)                 /*!< UI2C_T::TMCTL: HTCTL Mask              */\r
560 \r
561 /**@}*/ /* UI2C_CONST */\r
562 /**@}*/ /* end of UI2C register group */\r
563 /**@}*/ /* end of REGISTER group */\r
564 \r
565 #endif /* __UI2C_REG_H__ */\r