| /****************************************************************************** |
| * Filename: hw_i2c_h |
| * Revised: 2016-03-14 09:20:59 +0100 (Mon, 14 Mar 2016) |
| * Revision: 45924 |
| * |
| * Copyright (c) 2015 - 2016, Texas Instruments Incorporated |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are met: |
| * |
| * 1) Redistributions of source code must retain the above copyright notice, |
| * this list of conditions and the following disclaimer. |
| * |
| * 2) Redistributions in binary form must reproduce the above copyright notice, |
| * this list of conditions and the following disclaimer in the documentation |
| * and/or other materials provided with the distribution. |
| * |
| * 3) Neither the name of the ORGANIZATION nor the names of its contributors may |
| * be used to endorse or promote products derived from this software without |
| * specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
| * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| * POSSIBILITY OF SUCH DAMAGE. |
| * |
| ******************************************************************************/ |
| |
| #ifndef __HW_I2C_H__ |
| #define __HW_I2C_H__ |
| |
| //***************************************************************************** |
| // |
| // This section defines the register offsets of |
| // I2C component |
| // |
| //***************************************************************************** |
| // Slave Own Address |
| #define I2C_O_SOAR 0x00000000 |
| |
| // Slave Status |
| #define I2C_O_SSTAT 0x00000004 |
| |
| // Slave Control |
| #define I2C_O_SCTL 0x00000004 |
| |
| // Slave Data |
| #define I2C_O_SDR 0x00000008 |
| |
| // Slave Interrupt Mask |
| #define I2C_O_SIMR 0x0000000C |
| |
| // Slave Raw Interrupt Status |
| #define I2C_O_SRIS 0x00000010 |
| |
| // Slave Masked Interrupt Status |
| #define I2C_O_SMIS 0x00000014 |
| |
| // Slave Interrupt Clear |
| #define I2C_O_SICR 0x00000018 |
| |
| // Master Salve Address |
| #define I2C_O_MSA 0x00000800 |
| |
| // Master Status |
| #define I2C_O_MSTAT 0x00000804 |
| |
| // Master Control |
| #define I2C_O_MCTRL 0x00000804 |
| |
| // Master Data |
| #define I2C_O_MDR 0x00000808 |
| |
| // I2C Master Timer Period |
| #define I2C_O_MTPR 0x0000080C |
| |
| // Master Interrupt Mask |
| #define I2C_O_MIMR 0x00000810 |
| |
| // Master Raw Interrupt Status |
| #define I2C_O_MRIS 0x00000814 |
| |
| // Master Masked Interrupt Status |
| #define I2C_O_MMIS 0x00000818 |
| |
| // Master Interrupt Clear |
| #define I2C_O_MICR 0x0000081C |
| |
| // Master Configuration |
| #define I2C_O_MCR 0x00000820 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_SOAR |
| // |
| //***************************************************************************** |
| // Field: [6:0] OAR |
| // |
| // I2C slave own address |
| // This field specifies bits a6 through a0 of the slave address. |
| #define I2C_SOAR_OAR_W 7 |
| #define I2C_SOAR_OAR_M 0x0000007F |
| #define I2C_SOAR_OAR_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_SSTAT |
| // |
| //***************************************************************************** |
| // Field: [2] FBR |
| // |
| // First byte received |
| // |
| // 0: The first byte has not been received. |
| // 1: The first byte following the slave's own address has been received. |
| // |
| // This bit is only valid when the RREQ bit is set and is automatically cleared |
| // when data has been read from the SDR register. |
| // Note: This bit is not used for slave transmit operations. |
| #define I2C_SSTAT_FBR 0x00000004 |
| #define I2C_SSTAT_FBR_BITN 2 |
| #define I2C_SSTAT_FBR_M 0x00000004 |
| #define I2C_SSTAT_FBR_S 2 |
| |
| // Field: [1] TREQ |
| // |
| // Transmit request |
| // |
| // 0: No outstanding transmit request. |
| // 1: The I2C controller has been addressed as a slave transmitter and is using |
| // clock stretching to delay the master until data has been written to the SDR |
| // register. |
| #define I2C_SSTAT_TREQ 0x00000002 |
| #define I2C_SSTAT_TREQ_BITN 1 |
| #define I2C_SSTAT_TREQ_M 0x00000002 |
| #define I2C_SSTAT_TREQ_S 1 |
| |
| // Field: [0] RREQ |
| // |
| // Receive request |
| // |
| // 0: No outstanding receive data |
| // 1: The I2C controller has outstanding receive data from the I2C master and |
| // is using clock stretching to delay the master until data has been read from |
| // the SDR register. |
| #define I2C_SSTAT_RREQ 0x00000001 |
| #define I2C_SSTAT_RREQ_BITN 0 |
| #define I2C_SSTAT_RREQ_M 0x00000001 |
| #define I2C_SSTAT_RREQ_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_SCTL |
| // |
| //***************************************************************************** |
| // Field: [0] DA |
| // |
| // Device active |
| // |
| // 0: Disables the I2C slave operation |
| // 1: Enables the I2C slave operation |
| #define I2C_SCTL_DA 0x00000001 |
| #define I2C_SCTL_DA_BITN 0 |
| #define I2C_SCTL_DA_M 0x00000001 |
| #define I2C_SCTL_DA_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_SDR |
| // |
| //***************************************************************************** |
| // Field: [7:0] DATA |
| // |
| // Data for transfer |
| // This field contains the data for transfer during a slave receive or transmit |
| // operation. When written the register data is used as transmit data. When |
| // read, this register returns the last data received. |
| // Data is stored until next update, either by a system write for transmit or |
| // by an external master for receive. |
| #define I2C_SDR_DATA_W 8 |
| #define I2C_SDR_DATA_M 0x000000FF |
| #define I2C_SDR_DATA_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_SIMR |
| // |
| //***************************************************************************** |
| // Field: [2] STOPIM |
| // |
| // Stop condition interrupt mask |
| // |
| // 0: The SRIS.STOPRIS interrupt is suppressed and not sent to the interrupt |
| // controller. |
| // 1: The SRIS.STOPRIS interrupt is enabled and sent to the interrupt |
| // controller. |
| // ENUMs: |
| // EN Enable Interrupt |
| // DIS Disable Interrupt |
| #define I2C_SIMR_STOPIM 0x00000004 |
| #define I2C_SIMR_STOPIM_BITN 2 |
| #define I2C_SIMR_STOPIM_M 0x00000004 |
| #define I2C_SIMR_STOPIM_S 2 |
| #define I2C_SIMR_STOPIM_EN 0x00000004 |
| #define I2C_SIMR_STOPIM_DIS 0x00000000 |
| |
| // Field: [1] STARTIM |
| // |
| // Start condition interrupt mask |
| // |
| // 0: The SRIS.STARTRIS interrupt is suppressed and not sent to the interrupt |
| // controller. |
| // 1: The SRIS.STARTRIS interrupt is enabled and sent to the interrupt |
| // controller. |
| // ENUMs: |
| // EN Enable Interrupt |
| // DIS Disable Interrupt |
| #define I2C_SIMR_STARTIM 0x00000002 |
| #define I2C_SIMR_STARTIM_BITN 1 |
| #define I2C_SIMR_STARTIM_M 0x00000002 |
| #define I2C_SIMR_STARTIM_S 1 |
| #define I2C_SIMR_STARTIM_EN 0x00000002 |
| #define I2C_SIMR_STARTIM_DIS 0x00000000 |
| |
| // Field: [0] DATAIM |
| // |
| // Data interrupt mask |
| // |
| // 0: The SRIS.DATARIS interrupt is suppressed and not sent to the interrupt |
| // controller. |
| // 1: The SRIS.DATARIS interrupt is enabled and sent to the interrupt |
| // controller. |
| #define I2C_SIMR_DATAIM 0x00000001 |
| #define I2C_SIMR_DATAIM_BITN 0 |
| #define I2C_SIMR_DATAIM_M 0x00000001 |
| #define I2C_SIMR_DATAIM_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_SRIS |
| // |
| //***************************************************************************** |
| // Field: [2] STOPRIS |
| // |
| // Stop condition raw interrupt status |
| // |
| // 0: No interrupt |
| // 1: A Stop condition interrupt is pending. |
| // |
| // This bit is cleared by writing a 1 to SICR.STOPIC. |
| #define I2C_SRIS_STOPRIS 0x00000004 |
| #define I2C_SRIS_STOPRIS_BITN 2 |
| #define I2C_SRIS_STOPRIS_M 0x00000004 |
| #define I2C_SRIS_STOPRIS_S 2 |
| |
| // Field: [1] STARTRIS |
| // |
| // Start condition raw interrupt status |
| // |
| // 0: No interrupt |
| // 1: A Start condition interrupt is pending. |
| // |
| // This bit is cleared by writing a 1 to SICR.STARTIC. |
| #define I2C_SRIS_STARTRIS 0x00000002 |
| #define I2C_SRIS_STARTRIS_BITN 1 |
| #define I2C_SRIS_STARTRIS_M 0x00000002 |
| #define I2C_SRIS_STARTRIS_S 1 |
| |
| // Field: [0] DATARIS |
| // |
| // Data raw interrupt status |
| // |
| // 0: No interrupt |
| // 1: A data received or data requested interrupt is pending. |
| // |
| // This bit is cleared by writing a 1 to the SICR.DATAIC. |
| #define I2C_SRIS_DATARIS 0x00000001 |
| #define I2C_SRIS_DATARIS_BITN 0 |
| #define I2C_SRIS_DATARIS_M 0x00000001 |
| #define I2C_SRIS_DATARIS_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_SMIS |
| // |
| //***************************************************************************** |
| // Field: [2] STOPMIS |
| // |
| // Stop condition masked interrupt status |
| // |
| // 0: An interrupt has not occurred or is masked/disabled. |
| // 1: An unmasked Stop condition interrupt is pending. |
| // |
| // This bit is cleared by writing a 1 to the SICR.STOPIC. |
| #define I2C_SMIS_STOPMIS 0x00000004 |
| #define I2C_SMIS_STOPMIS_BITN 2 |
| #define I2C_SMIS_STOPMIS_M 0x00000004 |
| #define I2C_SMIS_STOPMIS_S 2 |
| |
| // Field: [1] STARTMIS |
| // |
| // Start condition masked interrupt status |
| // |
| // 0: An interrupt has not occurred or is masked/disabled. |
| // 1: An unmasked Start condition interrupt is pending. |
| // |
| // This bit is cleared by writing a 1 to the SICR.STARTIC. |
| #define I2C_SMIS_STARTMIS 0x00000002 |
| #define I2C_SMIS_STARTMIS_BITN 1 |
| #define I2C_SMIS_STARTMIS_M 0x00000002 |
| #define I2C_SMIS_STARTMIS_S 1 |
| |
| // Field: [0] DATAMIS |
| // |
| // Data masked interrupt status |
| // |
| // 0: An interrupt has not occurred or is masked/disabled. |
| // 1: An unmasked data received or data requested interrupt is pending. |
| // |
| // This bit is cleared by writing a 1 to the SICR.DATAIC. |
| #define I2C_SMIS_DATAMIS 0x00000001 |
| #define I2C_SMIS_DATAMIS_BITN 0 |
| #define I2C_SMIS_DATAMIS_M 0x00000001 |
| #define I2C_SMIS_DATAMIS_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_SICR |
| // |
| //***************************************************************************** |
| // Field: [2] STOPIC |
| // |
| // Stop condition interrupt clear |
| // |
| // Writing 1 to this bit clears SRIS.STOPRIS and SMIS.STOPMIS. |
| #define I2C_SICR_STOPIC 0x00000004 |
| #define I2C_SICR_STOPIC_BITN 2 |
| #define I2C_SICR_STOPIC_M 0x00000004 |
| #define I2C_SICR_STOPIC_S 2 |
| |
| // Field: [1] STARTIC |
| // |
| // Start condition interrupt clear |
| // |
| // Writing 1 to this bit clears SRIS.STARTRIS SMIS.STARTMIS. |
| #define I2C_SICR_STARTIC 0x00000002 |
| #define I2C_SICR_STARTIC_BITN 1 |
| #define I2C_SICR_STARTIC_M 0x00000002 |
| #define I2C_SICR_STARTIC_S 1 |
| |
| // Field: [0] DATAIC |
| // |
| // Data interrupt clear |
| // |
| // Writing 1 to this bit clears SRIS.DATARIS SMIS.DATAMIS. |
| #define I2C_SICR_DATAIC 0x00000001 |
| #define I2C_SICR_DATAIC_BITN 0 |
| #define I2C_SICR_DATAIC_M 0x00000001 |
| #define I2C_SICR_DATAIC_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_MSA |
| // |
| //***************************************************************************** |
| // Field: [7:1] SA |
| // |
| // I2C master slave address |
| // Defines which slave is addressed for the transaction in master mode |
| #define I2C_MSA_SA_W 7 |
| #define I2C_MSA_SA_M 0x000000FE |
| #define I2C_MSA_SA_S 1 |
| |
| // Field: [0] RS |
| // |
| // Receive or Send |
| // This bit-field specifies if the next operation is a receive (high) or a |
| // transmit/send (low) from the addressed slave SA. |
| // ENUMs: |
| // RX Receive data from slave |
| // TX Transmit/send data to slave |
| #define I2C_MSA_RS 0x00000001 |
| #define I2C_MSA_RS_BITN 0 |
| #define I2C_MSA_RS_M 0x00000001 |
| #define I2C_MSA_RS_S 0 |
| #define I2C_MSA_RS_RX 0x00000001 |
| #define I2C_MSA_RS_TX 0x00000000 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_MSTAT |
| // |
| //***************************************************************************** |
| // Field: [6] BUSBSY |
| // |
| // Bus busy |
| // |
| // 0: The I2C bus is idle. |
| // 1: The I2C bus is busy. |
| // |
| // The bit changes based on the MCTRL.START and MCTRL.STOP conditions. |
| #define I2C_MSTAT_BUSBSY 0x00000040 |
| #define I2C_MSTAT_BUSBSY_BITN 6 |
| #define I2C_MSTAT_BUSBSY_M 0x00000040 |
| #define I2C_MSTAT_BUSBSY_S 6 |
| |
| // Field: [5] IDLE |
| // |
| // I2C idle |
| // |
| // 0: The I2C controller is not idle. |
| // 1: The I2C controller is idle. |
| #define I2C_MSTAT_IDLE 0x00000020 |
| #define I2C_MSTAT_IDLE_BITN 5 |
| #define I2C_MSTAT_IDLE_M 0x00000020 |
| #define I2C_MSTAT_IDLE_S 5 |
| |
| // Field: [4] ARBLST |
| // |
| // Arbitration lost |
| // |
| // 0: The I2C controller won arbitration. |
| // 1: The I2C controller lost arbitration. |
| #define I2C_MSTAT_ARBLST 0x00000010 |
| #define I2C_MSTAT_ARBLST_BITN 4 |
| #define I2C_MSTAT_ARBLST_M 0x00000010 |
| #define I2C_MSTAT_ARBLST_S 4 |
| |
| // Field: [3] DATACK_N |
| // |
| // Data Was Not Acknowledge |
| // |
| // 0: The transmitted data was acknowledged. |
| // 1: The transmitted data was not acknowledged. |
| #define I2C_MSTAT_DATACK_N 0x00000008 |
| #define I2C_MSTAT_DATACK_N_BITN 3 |
| #define I2C_MSTAT_DATACK_N_M 0x00000008 |
| #define I2C_MSTAT_DATACK_N_S 3 |
| |
| // Field: [2] ADRACK_N |
| // |
| // Address Was Not Acknowledge |
| // |
| // 0: The transmitted address was acknowledged. |
| // 1: The transmitted address was not acknowledged. |
| #define I2C_MSTAT_ADRACK_N 0x00000004 |
| #define I2C_MSTAT_ADRACK_N_BITN 2 |
| #define I2C_MSTAT_ADRACK_N_M 0x00000004 |
| #define I2C_MSTAT_ADRACK_N_S 2 |
| |
| // Field: [1] ERR |
| // |
| // Error |
| // |
| // 0: No error was detected on the last operation. |
| // 1: An error occurred on the last operation. |
| #define I2C_MSTAT_ERR 0x00000002 |
| #define I2C_MSTAT_ERR_BITN 1 |
| #define I2C_MSTAT_ERR_M 0x00000002 |
| #define I2C_MSTAT_ERR_S 1 |
| |
| // Field: [0] BUSY |
| // |
| // I2C busy |
| // |
| // 0: The controller is idle. |
| // 1: The controller is busy. |
| // |
| // When this bit-field is set, the other status bits are not valid. |
| // |
| // Note: The I2C controller requires four SYSBUS clock cycles to assert the |
| // BUSY status after I2C master operation has been initiated through MCTRL |
| // register. |
| // Hence after programming MCTRL register, application is requested to wait for |
| // four SYSBUS clock cycles before issuing a controller status inquiry through |
| // MSTAT register. |
| // Any prior inquiry would result in wrong status being reported. |
| #define I2C_MSTAT_BUSY 0x00000001 |
| #define I2C_MSTAT_BUSY_BITN 0 |
| #define I2C_MSTAT_BUSY_M 0x00000001 |
| #define I2C_MSTAT_BUSY_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_MCTRL |
| // |
| //***************************************************************************** |
| // Field: [3] ACK |
| // |
| // Data acknowledge enable |
| // |
| // 0: The received data byte is not acknowledged automatically by the master. |
| // 1: The received data byte is acknowledged automatically by the master. |
| // |
| // This bit-field must be cleared when the I2C bus controller requires no |
| // further data to be transmitted from the slave transmitter. |
| // ENUMs: |
| // EN Enable acknowledge |
| // DIS Disable acknowledge |
| #define I2C_MCTRL_ACK 0x00000008 |
| #define I2C_MCTRL_ACK_BITN 3 |
| #define I2C_MCTRL_ACK_M 0x00000008 |
| #define I2C_MCTRL_ACK_S 3 |
| #define I2C_MCTRL_ACK_EN 0x00000008 |
| #define I2C_MCTRL_ACK_DIS 0x00000000 |
| |
| // Field: [2] STOP |
| // |
| // This bit-field determines if the cycle stops at the end of the data cycle or |
| // continues on to a repeated START condition. |
| // |
| // 0: The controller does not generate the Stop condition. |
| // 1: The controller generates the Stop condition. |
| // ENUMs: |
| // EN Enable STOP |
| // DIS Disable STOP |
| #define I2C_MCTRL_STOP 0x00000004 |
| #define I2C_MCTRL_STOP_BITN 2 |
| #define I2C_MCTRL_STOP_M 0x00000004 |
| #define I2C_MCTRL_STOP_S 2 |
| #define I2C_MCTRL_STOP_EN 0x00000004 |
| #define I2C_MCTRL_STOP_DIS 0x00000000 |
| |
| // Field: [1] START |
| // |
| // This bit-field generates the Start or Repeated Start condition. |
| // |
| // 0: The controller does not generate the Start condition. |
| // 1: The controller generates the Start condition. |
| // ENUMs: |
| // EN Enable START |
| // DIS Disable START |
| #define I2C_MCTRL_START 0x00000002 |
| #define I2C_MCTRL_START_BITN 1 |
| #define I2C_MCTRL_START_M 0x00000002 |
| #define I2C_MCTRL_START_S 1 |
| #define I2C_MCTRL_START_EN 0x00000002 |
| #define I2C_MCTRL_START_DIS 0x00000000 |
| |
| // Field: [0] RUN |
| // |
| // I2C master enable |
| // |
| // 0: The master is disabled. |
| // 1: The master is enabled to transmit or receive data. |
| // ENUMs: |
| // EN Enable Master |
| // DIS Disable Master |
| #define I2C_MCTRL_RUN 0x00000001 |
| #define I2C_MCTRL_RUN_BITN 0 |
| #define I2C_MCTRL_RUN_M 0x00000001 |
| #define I2C_MCTRL_RUN_S 0 |
| #define I2C_MCTRL_RUN_EN 0x00000001 |
| #define I2C_MCTRL_RUN_DIS 0x00000000 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_MDR |
| // |
| //***************************************************************************** |
| // Field: [7:0] DATA |
| // |
| // When Read: Last RX Data is returned |
| // When Written: Data is transferred during TX transaction |
| #define I2C_MDR_DATA_W 8 |
| #define I2C_MDR_DATA_M 0x000000FF |
| #define I2C_MDR_DATA_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_MTPR |
| // |
| //***************************************************************************** |
| // Field: [7] TPR_7 |
| // |
| // Must be set to 0 to set TPR. If set to 1, a write to TPR will be ignored. |
| #define I2C_MTPR_TPR_7 0x00000080 |
| #define I2C_MTPR_TPR_7_BITN 7 |
| #define I2C_MTPR_TPR_7_M 0x00000080 |
| #define I2C_MTPR_TPR_7_S 7 |
| |
| // Field: [6:0] TPR |
| // |
| // SCL clock period |
| // This field specifies the period of the SCL clock. |
| // SCL_PRD = 2*(1+TPR)*(SCL_LP + SCL_HP)*CLK_PRD |
| // where: |
| // SCL_PRD is the SCL line period (I2C clock). |
| // TPR is the timer period register value (range of 1 to 127) |
| // SCL_LP is the SCL low period (fixed at 6). |
| // SCL_HP is the SCL high period (fixed at 4). |
| // CLK_PRD is the system clock period in ns. |
| #define I2C_MTPR_TPR_W 7 |
| #define I2C_MTPR_TPR_M 0x0000007F |
| #define I2C_MTPR_TPR_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_MIMR |
| // |
| //***************************************************************************** |
| // Field: [0] IM |
| // |
| // Interrupt mask |
| // |
| // 0: The MRIS.RIS interrupt is suppressed and not sent to the interrupt |
| // controller. |
| // 1: The master interrupt is sent to the interrupt controller when the |
| // MRIS.RIS is set. |
| // ENUMs: |
| // EN Enable Interrupt |
| // DIS Disable Interrupt |
| #define I2C_MIMR_IM 0x00000001 |
| #define I2C_MIMR_IM_BITN 0 |
| #define I2C_MIMR_IM_M 0x00000001 |
| #define I2C_MIMR_IM_S 0 |
| #define I2C_MIMR_IM_EN 0x00000001 |
| #define I2C_MIMR_IM_DIS 0x00000000 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_MRIS |
| // |
| //***************************************************************************** |
| // Field: [0] RIS |
| // |
| // Raw interrupt status |
| // |
| // 0: No interrupt |
| // 1: A master interrupt is pending. |
| // |
| // This bit is cleared by writing 1 to the MICR.IC bit . |
| #define I2C_MRIS_RIS 0x00000001 |
| #define I2C_MRIS_RIS_BITN 0 |
| #define I2C_MRIS_RIS_M 0x00000001 |
| #define I2C_MRIS_RIS_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_MMIS |
| // |
| //***************************************************************************** |
| // Field: [0] MIS |
| // |
| // Masked interrupt status |
| // |
| // 0: An interrupt has not occurred or is masked. |
| // 1: A master interrupt is pending. |
| // |
| // This bit is cleared by writing 1 to the MICR.IC bit . |
| #define I2C_MMIS_MIS 0x00000001 |
| #define I2C_MMIS_MIS_BITN 0 |
| #define I2C_MMIS_MIS_M 0x00000001 |
| #define I2C_MMIS_MIS_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_MICR |
| // |
| //***************************************************************************** |
| // Field: [0] IC |
| // |
| // Interrupt clear |
| // Writing 1 to this bit clears MRIS.RIS and MMIS.MIS . |
| // |
| // Reading this register returns no meaningful data. |
| #define I2C_MICR_IC 0x00000001 |
| #define I2C_MICR_IC_BITN 0 |
| #define I2C_MICR_IC_M 0x00000001 |
| #define I2C_MICR_IC_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: I2C_O_MCR |
| // |
| //***************************************************************************** |
| // Field: [5] SFE |
| // |
| // I2C slave function enable |
| // ENUMs: |
| // EN Slave mode is enabled. |
| // DIS Slave mode is disabled. |
| #define I2C_MCR_SFE 0x00000020 |
| #define I2C_MCR_SFE_BITN 5 |
| #define I2C_MCR_SFE_M 0x00000020 |
| #define I2C_MCR_SFE_S 5 |
| #define I2C_MCR_SFE_EN 0x00000020 |
| #define I2C_MCR_SFE_DIS 0x00000000 |
| |
| // Field: [4] MFE |
| // |
| // I2C master function enable |
| // ENUMs: |
| // EN Master mode is enabled. |
| // DIS Master mode is disabled. |
| #define I2C_MCR_MFE 0x00000010 |
| #define I2C_MCR_MFE_BITN 4 |
| #define I2C_MCR_MFE_M 0x00000010 |
| #define I2C_MCR_MFE_S 4 |
| #define I2C_MCR_MFE_EN 0x00000010 |
| #define I2C_MCR_MFE_DIS 0x00000000 |
| |
| // Field: [0] LPBK |
| // |
| // I2C loopback |
| // |
| // 0: Normal operation |
| // 1: Loopback operation (test mode) |
| // ENUMs: |
| // EN Enable Test Mode |
| // DIS Disable Test Mode |
| #define I2C_MCR_LPBK 0x00000001 |
| #define I2C_MCR_LPBK_BITN 0 |
| #define I2C_MCR_LPBK_M 0x00000001 |
| #define I2C_MCR_LPBK_S 0 |
| #define I2C_MCR_LPBK_EN 0x00000001 |
| #define I2C_MCR_LPBK_DIS 0x00000000 |
| |
| |
| #endif // __I2C__ |