1 /****************************************************************************** 2 * Filename: hw_i2c_h 3 ****************************************************************************** 4 * Copyright (c) 2021 Texas Instruments Incorporated. All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are met: 8 * 9 * 1) Redistributions of source code must retain the above copyright notice, 10 * this list of conditions and the following disclaimer. 11 * 12 * 2) Redistributions in binary form must reproduce the above copyright notice, 13 * this list of conditions and the following disclaimer in the documentation 14 * and/or other materials provided with the distribution. 15 * 16 * 3) Neither the name of the copyright holder nor the names of its contributors 17 * may be used to endorse or promote products derived from this software 18 * without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30 * POSSIBILITY OF SUCH DAMAGE. 31 ******************************************************************************/ 32 33 #ifndef __HW_I2C_H__ 34 #define __HW_I2C_H__ 35 36 //***************************************************************************** 37 // 38 // This section defines the register offsets of 39 // I2C component 40 // 41 //***************************************************************************** 42 // Target Own Address 43 #define I2C_O_TOAR 0x00000000U 44 45 // Target Control and Status 46 #define I2C_O_TSTA 0x00000004U 47 48 // Target control 49 #define I2C_O_TCTL 0x00000004U 50 51 // Target Data 52 #define I2C_O_TDR 0x00000008U 53 54 // Target Interrupt Mask 55 #define I2C_O_TIMR 0x0000000CU 56 57 // Target Raw Interrupt Status 58 #define I2C_O_TRIS 0x00000010U 59 60 // Target Masked Interrupt Status 61 #define I2C_O_TMIS 0x00000014U 62 63 // Target Interrupt Clear 64 #define I2C_O_TICR 0x00000018U 65 66 // Controller Target Address 67 #define I2C_O_CTA 0x00000800U 68 69 // Controller Control and Status 70 #define I2C_O_CSTA 0x00000804U 71 72 // Controller control 73 #define I2C_O_CCTL 0x00000804U 74 75 // Controller Data 76 #define I2C_O_CDR 0x00000808U 77 78 // Controller Timer Period 79 #define I2C_O_CTPR 0x0000080CU 80 81 // Controller Interrupt Mask 82 #define I2C_O_CIMR 0x00000810U 83 84 // Controller Raw Interrupt Status 85 #define I2C_O_CRIS 0x00000814U 86 87 // Controller Masked Interrupt Status 88 #define I2C_O_CMIS 0x00000818U 89 90 // Controller Interrupt Clear 91 #define I2C_O_CICR 0x0000081CU 92 93 // Controller Configuration 94 #define I2C_O_CCR 0x00000820U 95 96 //***************************************************************************** 97 // 98 // Register: I2C_O_TOAR 99 // 100 //***************************************************************************** 101 // Field: [6:0] OAR 102 // 103 // Target own address. This field specifies bits a6 through a0 of the target 104 // address. 105 #define I2C_TOAR_OAR_W 7U 106 #define I2C_TOAR_OAR_M 0x0000007FU 107 #define I2C_TOAR_OAR_S 0U 108 109 //***************************************************************************** 110 // 111 // Register: I2C_O_TSTA 112 // 113 //***************************************************************************** 114 // Field: [2] FBR 115 // 116 // First byte received. 117 // This bit is only applicable when the TSTA.RREQ bit is set and is 118 // automatically cleared when data has been read from the TDR register. 119 // Note: This bit is not used for target transmit operations. 120 // ENUMs: 121 // SET The first byte following the target's own address 122 // has been received. 123 // CLR The first byte following the target's own address 124 // has not been received 125 #define I2C_TSTA_FBR 0x00000004U 126 #define I2C_TSTA_FBR_M 0x00000004U 127 #define I2C_TSTA_FBR_S 2U 128 #define I2C_TSTA_FBR_SET 0x00000004U 129 #define I2C_TSTA_FBR_CLR 0x00000000U 130 131 // Field: [1] TREQ 132 // 133 // This field reflects the transmit request status 134 // ENUMs: 135 // SET The I2C has been addressed as a target transmitter 136 // and is using clock stretching to delay the 137 // controller until data has been written to the 138 // TDR register 139 // CLR No outstanding transmit request 140 #define I2C_TSTA_TREQ 0x00000002U 141 #define I2C_TSTA_TREQ_M 0x00000002U 142 #define I2C_TSTA_TREQ_S 1U 143 #define I2C_TSTA_TREQ_SET 0x00000002U 144 #define I2C_TSTA_TREQ_CLR 0x00000000U 145 146 // Field: [0] RREQ 147 // 148 // This field reflects the receive request status. 149 // ENUMs: 150 // SET The target has outstanding receive data from the 151 // external controller and is using clock 152 // stretching to delay the controller until data 153 // has been read from the TDR register 154 // CLR No outstanding receive data 155 #define I2C_TSTA_RREQ 0x00000001U 156 #define I2C_TSTA_RREQ_M 0x00000001U 157 #define I2C_TSTA_RREQ_S 0U 158 #define I2C_TSTA_RREQ_SET 0x00000001U 159 #define I2C_TSTA_RREQ_CLR 0x00000000U 160 161 //***************************************************************************** 162 // 163 // Register: I2C_O_TCTL 164 // 165 //***************************************************************************** 166 // Field: [0] DA 167 // 168 // This field sets the device active control 169 // ENUMs: 170 // EN Enable the target operation 171 // DIS Disable the target operation 172 #define I2C_TCTL_DA 0x00000001U 173 #define I2C_TCTL_DA_M 0x00000001U 174 #define I2C_TCTL_DA_S 0U 175 #define I2C_TCTL_DA_EN 0x00000001U 176 #define I2C_TCTL_DA_DIS 0x00000000U 177 178 //***************************************************************************** 179 // 180 // Register: I2C_O_TDR 181 // 182 //***************************************************************************** 183 // Field: [7:0] DATA 184 // 185 // Data for transfer. This field contains the data for transfer during a target 186 // receive or a transmit operation. When written, the register data is used as 187 // transmit data. When read, this register returns the last data received. Data 188 // is stored until next update, either by a system write to the controller for 189 // transmit or by an external controller to the target for receive. 190 #define I2C_TDR_DATA_W 8U 191 #define I2C_TDR_DATA_M 0x000000FFU 192 #define I2C_TDR_DATA_S 0U 193 194 //***************************************************************************** 195 // 196 // Register: I2C_O_TIMR 197 // 198 //***************************************************************************** 199 // Field: [2] STOPIM 200 // 201 // Stop condition interrupt mask 202 // ENUMs: 203 // EN Enable interrupt mask 204 // DIS Disable interrupt mask 205 #define I2C_TIMR_STOPIM 0x00000004U 206 #define I2C_TIMR_STOPIM_M 0x00000004U 207 #define I2C_TIMR_STOPIM_S 2U 208 #define I2C_TIMR_STOPIM_EN 0x00000004U 209 #define I2C_TIMR_STOPIM_DIS 0x00000000U 210 211 // Field: [1] STARTIM 212 // 213 // Start condition interrupt mask 214 // ENUMs: 215 // EN Enable interrupt mask 216 // DIS Disable interrupt mask 217 #define I2C_TIMR_STARTIM 0x00000002U 218 #define I2C_TIMR_STARTIM_M 0x00000002U 219 #define I2C_TIMR_STARTIM_S 1U 220 #define I2C_TIMR_STARTIM_EN 0x00000002U 221 #define I2C_TIMR_STARTIM_DIS 0x00000000U 222 223 // Field: [0] DATAIM 224 // 225 // Data interrupt mask 226 // ENUMs: 227 // EN Enable interrupt mask 228 // DIS Disable interrupt mask 229 #define I2C_TIMR_DATAIM 0x00000001U 230 #define I2C_TIMR_DATAIM_M 0x00000001U 231 #define I2C_TIMR_DATAIM_S 0U 232 #define I2C_TIMR_DATAIM_EN 0x00000001U 233 #define I2C_TIMR_DATAIM_DIS 0x00000000U 234 235 //***************************************************************************** 236 // 237 // Register: I2C_O_TRIS 238 // 239 //***************************************************************************** 240 // Field: [2] STOPRIS 241 // 242 // Stop condition raw interrupt status 243 // This bit is cleared by writing a 1 to TICR.STOPIC. 244 // ENUMs: 245 // SET Interrupt occured 246 // CLR Interrupt did not occur 247 #define I2C_TRIS_STOPRIS 0x00000004U 248 #define I2C_TRIS_STOPRIS_M 0x00000004U 249 #define I2C_TRIS_STOPRIS_S 2U 250 #define I2C_TRIS_STOPRIS_SET 0x00000004U 251 #define I2C_TRIS_STOPRIS_CLR 0x00000000U 252 253 // Field: [1] STARTRIS 254 // 255 // Start condition raw interrupt status 256 // This bit is cleared by writing a 1 to TICR.STARTIC. 257 // ENUMs: 258 // SET Interrupt occured 259 // CLR Interrupt did not occur 260 #define I2C_TRIS_STARTRIS 0x00000002U 261 #define I2C_TRIS_STARTRIS_M 0x00000002U 262 #define I2C_TRIS_STARTRIS_S 1U 263 #define I2C_TRIS_STARTRIS_SET 0x00000002U 264 #define I2C_TRIS_STARTRIS_CLR 0x00000000U 265 266 // Field: [0] DATARIS 267 // 268 // Data raw interrupt status 269 // This bit is cleared by writing a 1 to TICR.DATAIC. 270 // ENUMs: 271 // SET Interrupt occured 272 // CLR Interrupt did not occur 273 #define I2C_TRIS_DATARIS 0x00000001U 274 #define I2C_TRIS_DATARIS_M 0x00000001U 275 #define I2C_TRIS_DATARIS_S 0U 276 #define I2C_TRIS_DATARIS_SET 0x00000001U 277 #define I2C_TRIS_DATARIS_CLR 0x00000000U 278 279 //***************************************************************************** 280 // 281 // Register: I2C_O_TMIS 282 // 283 //***************************************************************************** 284 // Field: [2] STOPMIS 285 // 286 // Stop condition masked interrupt status 287 // This bit is cleared by writing a 1 to TICR.STOPIC. 288 // ENUMs: 289 // SET Masked interrupt occured 290 // CLR Masked interrupt did not occur 291 #define I2C_TMIS_STOPMIS 0x00000004U 292 #define I2C_TMIS_STOPMIS_M 0x00000004U 293 #define I2C_TMIS_STOPMIS_S 2U 294 #define I2C_TMIS_STOPMIS_SET 0x00000004U 295 #define I2C_TMIS_STOPMIS_CLR 0x00000000U 296 297 // Field: [1] STARTMIS 298 // 299 // Start condition masked interrupt status 300 // This bit is cleared by writing a 1 to TICR.STARTIC. 301 // ENUMs: 302 // SET Masked interrput occured 303 // CLR Masked interrupt did not occur 304 #define I2C_TMIS_STARTMIS 0x00000002U 305 #define I2C_TMIS_STARTMIS_M 0x00000002U 306 #define I2C_TMIS_STARTMIS_S 1U 307 #define I2C_TMIS_STARTMIS_SET 0x00000002U 308 #define I2C_TMIS_STARTMIS_CLR 0x00000000U 309 310 // Field: [0] DATAMIS 311 // 312 // Start condition masked interrupt status 313 // This bit is cleared by writing a 1 to TICR.DATAIC. 314 // ENUMs: 315 // SET Masked interrupt occured 316 // CLR Masked interrupt did not occur 317 #define I2C_TMIS_DATAMIS 0x00000001U 318 #define I2C_TMIS_DATAMIS_M 0x00000001U 319 #define I2C_TMIS_DATAMIS_S 0U 320 #define I2C_TMIS_DATAMIS_SET 0x00000001U 321 #define I2C_TMIS_DATAMIS_CLR 0x00000000U 322 323 //***************************************************************************** 324 // 325 // Register: I2C_O_TICR 326 // 327 //***************************************************************************** 328 // Field: [2] STOPIC 329 // 330 // Stop condition interrupt clear 331 // ENUMs: 332 // EN Clear interrupt 333 // Writing 1 to this bit 334 // clears TRIS.STOPRIS and TMIS.STOPMIS 335 // DIS No effect 336 #define I2C_TICR_STOPIC 0x00000004U 337 #define I2C_TICR_STOPIC_M 0x00000004U 338 #define I2C_TICR_STOPIC_S 2U 339 #define I2C_TICR_STOPIC_EN 0x00000004U 340 #define I2C_TICR_STOPIC_DIS 0x00000000U 341 342 // Field: [1] STARTIC 343 // 344 // Start condition interrupt clear 345 // ENUMs: 346 // EN Clear interrupt 347 // Writing 1 to this bit 348 // clears TRIS.STARTRIS and TMIS.STARTMIS 349 // DIS No effect 350 #define I2C_TICR_STARTIC 0x00000002U 351 #define I2C_TICR_STARTIC_M 0x00000002U 352 #define I2C_TICR_STARTIC_S 1U 353 #define I2C_TICR_STARTIC_EN 0x00000002U 354 #define I2C_TICR_STARTIC_DIS 0x00000000U 355 356 // Field: [0] DATAIC 357 // 358 // Data interrupt clear 359 // ENUMs: 360 // EN Clear interrupt 361 // Writing 1 to this bit 362 // clears TRIS.DATARIS and TMIS.DATAMIS 363 // DIS No effect 364 #define I2C_TICR_DATAIC 0x00000001U 365 #define I2C_TICR_DATAIC_M 0x00000001U 366 #define I2C_TICR_DATAIC_S 0U 367 #define I2C_TICR_DATAIC_EN 0x00000001U 368 #define I2C_TICR_DATAIC_DIS 0x00000000U 369 370 //***************************************************************************** 371 // 372 // Register: I2C_O_CTA 373 // 374 //***************************************************************************** 375 // Field: [7:1] SA 376 // 377 // Controller target address 378 // Defines which target is addressed for the transaction in controller mode 379 #define I2C_CTA_SA_W 7U 380 #define I2C_CTA_SA_M 0x000000FEU 381 #define I2C_CTA_SA_S 1U 382 383 // Field: [0] RS 384 // 385 // Receive or Send 386 // This bit-field specifies the next operation with addressed target CTA.SA. 387 // ENUMs: 388 // EN Receive data from target 389 // DIS Transmit/send data to target 390 #define I2C_CTA_RS 0x00000001U 391 #define I2C_CTA_RS_M 0x00000001U 392 #define I2C_CTA_RS_S 0U 393 #define I2C_CTA_RS_EN 0x00000001U 394 #define I2C_CTA_RS_DIS 0x00000000U 395 396 //***************************************************************************** 397 // 398 // Register: I2C_O_CSTA 399 // 400 //***************************************************************************** 401 // Field: [6] BUSBSY 402 // 403 // Bus busy 404 // Note:The bit changes based on the CCTRL.START and CCTRL.STOP conditions. 405 // ENUMs: 406 // SET The bus is busy. 407 // CLR The bus is idle. 408 #define I2C_CSTA_BUSBSY 0x00000040U 409 #define I2C_CSTA_BUSBSY_M 0x00000040U 410 #define I2C_CSTA_BUSBSY_S 6U 411 #define I2C_CSTA_BUSBSY_SET 0x00000040U 412 #define I2C_CSTA_BUSBSY_CLR 0x00000000U 413 414 // Field: [5] IDLE 415 // 416 // This field specifies whether I2C is idle or not 417 // ENUMs: 418 // SET The controller is idle. 419 // CLR The controller is not idle. 420 #define I2C_CSTA_IDLE 0x00000020U 421 #define I2C_CSTA_IDLE_M 0x00000020U 422 #define I2C_CSTA_IDLE_S 5U 423 #define I2C_CSTA_IDLE_SET 0x00000020U 424 #define I2C_CSTA_IDLE_CLR 0x00000000U 425 426 // Field: [4] ARBLST 427 // 428 // The filed specifies the arbitration status 429 // ENUMs: 430 // SET The controller lost arbitration. 431 // CLR The controller won arbitration. 432 #define I2C_CSTA_ARBLST 0x00000010U 433 #define I2C_CSTA_ARBLST_M 0x00000010U 434 #define I2C_CSTA_ARBLST_S 4U 435 #define I2C_CSTA_ARBLST_SET 0x00000010U 436 #define I2C_CSTA_ARBLST_CLR 0x00000000U 437 438 // Field: [3] DATACKN 439 // 440 // This field contains Data acknowledge status 441 // ENUMs: 442 // SET The transmitted data was not acknowledged 443 // CLR The transmitted data was acknowledged 444 #define I2C_CSTA_DATACKN 0x00000008U 445 #define I2C_CSTA_DATACKN_M 0x00000008U 446 #define I2C_CSTA_DATACKN_S 3U 447 #define I2C_CSTA_DATACKN_SET 0x00000008U 448 #define I2C_CSTA_DATACKN_CLR 0x00000000U 449 450 // Field: [2] ADRACKN 451 // 452 // This field reflects the address acknowledge status 453 // ENUMs: 454 // SET The transmitted address was not acknowledged 455 // CLR The transmitted address was acknowledged 456 #define I2C_CSTA_ADRACKN 0x00000004U 457 #define I2C_CSTA_ADRACKN_M 0x00000004U 458 #define I2C_CSTA_ADRACKN_S 2U 459 #define I2C_CSTA_ADRACKN_SET 0x00000004U 460 #define I2C_CSTA_ADRACKN_CLR 0x00000000U 461 462 // Field: [1] ERR 463 // 464 // This field reflects the error status 465 // ENUMs: 466 // SET An error occurred with the last operation 467 // CLR No error was detected on the last operation 468 #define I2C_CSTA_ERR 0x00000002U 469 #define I2C_CSTA_ERR_M 0x00000002U 470 #define I2C_CSTA_ERR_S 1U 471 #define I2C_CSTA_ERR_SET 0x00000002U 472 #define I2C_CSTA_ERR_CLR 0x00000000U 473 474 // Field: [0] BUSY 475 // 476 // This field reflects the I2C busy status 477 // Note: The I2C controller requires four CLKSVT clock cycles to assert the 478 // BUSY status after I2C controller operation has been initiated through a 479 // write into CCTL register. 480 // Hence after programming CCTL register, application is requested to wait for 481 // four CLKSVT clock cycles before issuing a controller status inquiry through 482 // a read from CSTA register. Any prior inquiry would result in wrong status 483 // being reported. 484 // ENUMs: 485 // SET The controller is busy 486 // CLR The controller is idle 487 #define I2C_CSTA_BUSY 0x00000001U 488 #define I2C_CSTA_BUSY_M 0x00000001U 489 #define I2C_CSTA_BUSY_S 0U 490 #define I2C_CSTA_BUSY_SET 0x00000001U 491 #define I2C_CSTA_BUSY_CLR 0x00000000U 492 493 //***************************************************************************** 494 // 495 // Register: I2C_O_CCTL 496 // 497 //***************************************************************************** 498 // Field: [3] ACK 499 // 500 // This field is to enable the data acknowledge. 501 // Note:This bit-field must be cleared when the I2C bus controller requires no 502 // further data to be transmitted from the target transmitter. 503 // ENUMs: 504 // EN The received data byte is acknowledged 505 // automatically by the controller 506 // DIS The received data byte is not acknowledged 507 // automatically by the controller 508 #define I2C_CCTL_ACK 0x00000008U 509 #define I2C_CCTL_ACK_M 0x00000008U 510 #define I2C_CCTL_ACK_S 3U 511 #define I2C_CCTL_ACK_EN 0x00000008U 512 #define I2C_CCTL_ACK_DIS 0x00000000U 513 514 // Field: [2] STOP 515 // 516 // This field is to set stop condition . 517 // Note: This bit-field determines if the cycle stops at the end of the data 518 // cycle or continues on to a repeated start condition. 519 // ENUMs: 520 // EN The controller generates the stop condition 521 // DIS The controller does not generate the stop 522 // condition 523 #define I2C_CCTL_STOP 0x00000004U 524 #define I2C_CCTL_STOP_M 0x00000004U 525 #define I2C_CCTL_STOP_S 2U 526 #define I2C_CCTL_STOP_EN 0x00000004U 527 #define I2C_CCTL_STOP_DIS 0x00000000U 528 529 // Field: [1] START 530 // 531 // This field is to set start or repeated start condition. 532 // ENUMs: 533 // EN The controller generates the start condition. 534 // DIS The controller does not generate the start 535 // condition 536 #define I2C_CCTL_START 0x00000002U 537 #define I2C_CCTL_START_M 0x00000002U 538 #define I2C_CCTL_START_S 1U 539 #define I2C_CCTL_START_EN 0x00000002U 540 #define I2C_CCTL_START_DIS 0x00000000U 541 542 // Field: [0] RUN 543 // 544 // This field is to set the controller enable. 545 // ENUMs: 546 // EN The controller is enabled to transmit or receive 547 // data 548 // DIS The controller is disabled. 549 #define I2C_CCTL_RUN 0x00000001U 550 #define I2C_CCTL_RUN_M 0x00000001U 551 #define I2C_CCTL_RUN_S 0U 552 #define I2C_CCTL_RUN_EN 0x00000001U 553 #define I2C_CCTL_RUN_DIS 0x00000000U 554 555 //***************************************************************************** 556 // 557 // Register: I2C_O_CDR 558 // 559 //***************************************************************************** 560 // Field: [7:0] DATA 561 // 562 // When Read: Last RX Data is returned 563 // When Written: Data is transferred during TX transaction 564 #define I2C_CDR_DATA_W 8U 565 #define I2C_CDR_DATA_M 0x000000FFU 566 #define I2C_CDR_DATA_S 0U 567 568 //***************************************************************************** 569 // 570 // Register: I2C_O_CTPR 571 // 572 //***************************************************************************** 573 // Field: [7] TPR_7 574 // 575 // Must be set to 0 to set CTPR.TPR. If set to 1, a write to CTPR.TPR will be 576 // ignored. 577 #define I2C_CTPR_TPR_7 0x00000080U 578 #define I2C_CTPR_TPR_7_M 0x00000080U 579 #define I2C_CTPR_TPR_7_S 7U 580 581 // Field: [6:0] TPR 582 // 583 // SCL clock period 584 // This field specifies the period of the SCL clock. 585 // SCL_PRD = 2*(1+TPR)*(SCL_LP + SCL_HP)*CLK_PRD, where: 586 // SCL_PRD is the SCL line period (I2C clock). 587 // TPR is the timer period register value (range of 1 to 127) 588 // SCL_LP is the SCL low period (fixed at 6). 589 // SCL_HP is the SCL high period (fixed at 4). 590 // CLK_PRD is the CLKSVT period in ns. 591 #define I2C_CTPR_TPR_W 7U 592 #define I2C_CTPR_TPR_M 0x0000007FU 593 #define I2C_CTPR_TPR_S 0U 594 595 //***************************************************************************** 596 // 597 // Register: I2C_O_CIMR 598 // 599 //***************************************************************************** 600 // Field: [0] IM 601 // 602 // Interrupt mask 603 // ENUMs: 604 // EN Enable interrupt mask 605 // DIS Disable interrupt mask 606 #define I2C_CIMR_IM 0x00000001U 607 #define I2C_CIMR_IM_M 0x00000001U 608 #define I2C_CIMR_IM_S 0U 609 #define I2C_CIMR_IM_EN 0x00000001U 610 #define I2C_CIMR_IM_DIS 0x00000000U 611 612 //***************************************************************************** 613 // 614 // Register: I2C_O_CRIS 615 // 616 //***************************************************************************** 617 // Field: [0] RIS 618 // 619 // Raw interrupt status 620 // This bit is cleared by writing 1 to CICR.IC bit. 621 // ENUMs: 622 // SET Interrupt occured 623 // CLR Interrupt did not occur 624 #define I2C_CRIS_RIS 0x00000001U 625 #define I2C_CRIS_RIS_M 0x00000001U 626 #define I2C_CRIS_RIS_S 0U 627 #define I2C_CRIS_RIS_SET 0x00000001U 628 #define I2C_CRIS_RIS_CLR 0x00000000U 629 630 //***************************************************************************** 631 // 632 // Register: I2C_O_CMIS 633 // 634 //***************************************************************************** 635 // Field: [0] MIS 636 // 637 // Masked interrupt status 638 // This bit is cleared by writing 1 to CICR.IC bit. 639 // ENUMs: 640 // SET Masked interrupt occured 641 // CLR Masked interrupt did not occur 642 #define I2C_CMIS_MIS 0x00000001U 643 #define I2C_CMIS_MIS_M 0x00000001U 644 #define I2C_CMIS_MIS_S 0U 645 #define I2C_CMIS_MIS_SET 0x00000001U 646 #define I2C_CMIS_MIS_CLR 0x00000000U 647 648 //***************************************************************************** 649 // 650 // Register: I2C_O_CICR 651 // 652 //***************************************************************************** 653 // Field: [0] IC 654 // 655 // Interrupt clear 656 // ENUMs: 657 // EN Clear Interrupt 658 // Writing 1 to this bit 659 // clears CRIS.RIS and CMIS.MIS. 660 // DIS No effect 661 #define I2C_CICR_IC 0x00000001U 662 #define I2C_CICR_IC_M 0x00000001U 663 #define I2C_CICR_IC_S 0U 664 #define I2C_CICR_IC_EN 0x00000001U 665 #define I2C_CICR_IC_DIS 0x00000000U 666 667 //***************************************************************************** 668 // 669 // Register: I2C_O_CCR 670 // 671 //***************************************************************************** 672 // Field: [5] TFE 673 // 674 // I2C target function enable 675 // 676 // ENUMs: 677 // EN Target mode enabled 678 // DIS Target mode disabled 679 #define I2C_CCR_TFE 0x00000020U 680 #define I2C_CCR_TFE_M 0x00000020U 681 #define I2C_CCR_TFE_S 5U 682 #define I2C_CCR_TFE_EN 0x00000020U 683 #define I2C_CCR_TFE_DIS 0x00000000U 684 685 // Field: [4] CFE 686 // 687 // I2C controller function enable 688 // ENUMs: 689 // EN Controller mode enabled 690 // DIS Controller mode disabled 691 #define I2C_CCR_CFE 0x00000010U 692 #define I2C_CCR_CFE_M 0x00000010U 693 #define I2C_CCR_CFE_S 4U 694 #define I2C_CCR_CFE_EN 0x00000010U 695 #define I2C_CCR_CFE_DIS 0x00000000U 696 697 // Field: [0] LPBK 698 // 699 // I2C loopback 700 // ENUMs: 701 // EN Test mode (Loopback operation) enabled 702 // DIS Test mode (Loopback operation) disabled 703 #define I2C_CCR_LPBK 0x00000001U 704 #define I2C_CCR_LPBK_M 0x00000001U 705 #define I2C_CCR_LPBK_S 0U 706 #define I2C_CCR_LPBK_EN 0x00000001U 707 #define I2C_CCR_LPBK_DIS 0x00000000U 708 709 710 #endif // __I2C__ 711