summaryrefslogtreecommitdiffstats
path: root/bsps/arm/altera-cyclone-v/include/bsp/socal/alt_i2c.h
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2017-12-23 18:18:56 +1100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-01-25 08:45:26 +0100
commit2afb22b7e1ebcbe40373ff7e0efae7d207c655a9 (patch)
tree44759efe9374f13200a97e96d91bd9a2b7e5ce2a /bsps/arm/altera-cyclone-v/include/bsp/socal/alt_i2c.h
parentMAINTAINERS: Add myself to Write After Approval. (diff)
downloadrtems-2afb22b7e1ebcbe40373ff7e0efae7d207c655a9.tar.bz2
Remove make preinstall
A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
Diffstat (limited to 'bsps/arm/altera-cyclone-v/include/bsp/socal/alt_i2c.h')
-rw-r--r--bsps/arm/altera-cyclone-v/include/bsp/socal/alt_i2c.h5940
1 files changed, 5940 insertions, 0 deletions
diff --git a/bsps/arm/altera-cyclone-v/include/bsp/socal/alt_i2c.h b/bsps/arm/altera-cyclone-v/include/bsp/socal/alt_i2c.h
new file mode 100644
index 0000000000..b50543a884
--- /dev/null
+++ b/bsps/arm/altera-cyclone-v/include/bsp/socal/alt_i2c.h
@@ -0,0 +1,5940 @@
+/*******************************************************************************
+* *
+* Copyright 2013 Altera Corporation. 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. The name of the author may not be used to endorse or promote products *
+* derived from this software without specific prior written permission. *
+* *
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "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 AUTHOR 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. *
+* *
+*******************************************************************************/
+
+/* Altera - ALT_I2C */
+
+#ifndef __ALTERA_ALT_I2C_H__
+#define __ALTERA_ALT_I2C_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/*
+ * Component : I2C Module - ALT_I2C
+ * I2C Module
+ *
+ * Registers in the I2C module
+ *
+ */
+/*
+ * Register : Control Register - ic_con
+ *
+ * This register can be written only when the I2C is disabled, which corresponds to
+ * the Bit [0] of the Enable Register being set to 0. Writes at other times have no
+ * effect.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:---------------------
+ * [0] | RW | 0x1 | Master Enable
+ * [2:1] | RW | 0x2 | Master Speed Control
+ * [3] | RW | 0x1 | Slave Address Size
+ * [4] | RW | 0x1 | Master Address Size
+ * [5] | RW | 0x1 | Restart Enable
+ * [6] | RW | 0x1 | Slave Disable
+ * [31:7] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Master Enable - master_mode
+ *
+ * This bit controls whether the i2c master is enabled.
+ *
+ * NOTE: Software should ensure that if this bit is written with '1', then bit 6
+ * should also be written with a '1'.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :--------------------------|:------|:----------------
+ * ALT_I2C_CON_MST_MOD_E_DIS | 0x0 | master disabled
+ * ALT_I2C_CON_MST_MOD_E_EN | 0x1 | master enabled
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_CON_MST_MOD
+ *
+ * master disabled
+ */
+#define ALT_I2C_CON_MST_MOD_E_DIS 0x0
+/*
+ * Enumerated value for register field ALT_I2C_CON_MST_MOD
+ *
+ * master enabled
+ */
+#define ALT_I2C_CON_MST_MOD_E_EN 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CON_MST_MOD register field. */
+#define ALT_I2C_CON_MST_MOD_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CON_MST_MOD register field. */
+#define ALT_I2C_CON_MST_MOD_MSB 0
+/* The width in bits of the ALT_I2C_CON_MST_MOD register field. */
+#define ALT_I2C_CON_MST_MOD_WIDTH 1
+/* The mask used to set the ALT_I2C_CON_MST_MOD register field value. */
+#define ALT_I2C_CON_MST_MOD_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_CON_MST_MOD register field value. */
+#define ALT_I2C_CON_MST_MOD_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_CON_MST_MOD register field. */
+#define ALT_I2C_CON_MST_MOD_RESET 0x1
+/* Extracts the ALT_I2C_CON_MST_MOD field value from a register. */
+#define ALT_I2C_CON_MST_MOD_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_CON_MST_MOD register field value suitable for setting the register. */
+#define ALT_I2C_CON_MST_MOD_SET(value) (((value) << 0) & 0x00000001)
+
+/*
+ * Field : Master Speed Control - speed
+ *
+ * These bits control at which speed the I2C operates, its setting is relevant only
+ * if one is operating the I2C in master mode. Hardware protects against illegal
+ * values being programmed by software. This field should be programmed only with
+ * standard or fast speed.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :-----------------------------|:------|:---------------------------
+ * ALT_I2C_CON_SPEED_E_STANDARD | 0x1 | standard mode (100 kbit/s)
+ * ALT_I2C_CON_SPEED_E_FAST | 0x2 | fast mode (400 kbit/s)
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_CON_SPEED
+ *
+ * standard mode (100 kbit/s)
+ */
+#define ALT_I2C_CON_SPEED_E_STANDARD 0x1
+/*
+ * Enumerated value for register field ALT_I2C_CON_SPEED
+ *
+ * fast mode (400 kbit/s)
+ */
+#define ALT_I2C_CON_SPEED_E_FAST 0x2
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CON_SPEED register field. */
+#define ALT_I2C_CON_SPEED_LSB 1
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CON_SPEED register field. */
+#define ALT_I2C_CON_SPEED_MSB 2
+/* The width in bits of the ALT_I2C_CON_SPEED register field. */
+#define ALT_I2C_CON_SPEED_WIDTH 2
+/* The mask used to set the ALT_I2C_CON_SPEED register field value. */
+#define ALT_I2C_CON_SPEED_SET_MSK 0x00000006
+/* The mask used to clear the ALT_I2C_CON_SPEED register field value. */
+#define ALT_I2C_CON_SPEED_CLR_MSK 0xfffffff9
+/* The reset value of the ALT_I2C_CON_SPEED register field. */
+#define ALT_I2C_CON_SPEED_RESET 0x2
+/* Extracts the ALT_I2C_CON_SPEED field value from a register. */
+#define ALT_I2C_CON_SPEED_GET(value) (((value) & 0x00000006) >> 1)
+/* Produces a ALT_I2C_CON_SPEED register field value suitable for setting the register. */
+#define ALT_I2C_CON_SPEED_SET(value) (((value) << 1) & 0x00000006)
+
+/*
+ * Field : Slave Address Size - ic_10bitaddr_slave
+ *
+ * When acting as a slave, this bit controls whether the I2C responds to 7- or
+ * 10-bit addresses. In 7-bit addressing, only the lower 7 bits of the Slave
+ * Address Register are compared. The I2C responds will only respond to 10-bit
+ * addressing transfers that match the full 10 bits of the Slave Address register.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :--------------------------------------------|:------|:------------------
+ * ALT_I2C_CON_IC_10BITADDR_SLV_E_SLVADDR7BIT | 0x0 | 7-bit addressing
+ * ALT_I2C_CON_IC_10BITADDR_SLV_E_SLVADDR10BIT | 0x1 | 10-bit addressing
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_CON_IC_10BITADDR_SLV
+ *
+ * 7-bit addressing
+ */
+#define ALT_I2C_CON_IC_10BITADDR_SLV_E_SLVADDR7BIT 0x0
+/*
+ * Enumerated value for register field ALT_I2C_CON_IC_10BITADDR_SLV
+ *
+ * 10-bit addressing
+ */
+#define ALT_I2C_CON_IC_10BITADDR_SLV_E_SLVADDR10BIT 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CON_IC_10BITADDR_SLV register field. */
+#define ALT_I2C_CON_IC_10BITADDR_SLV_LSB 3
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CON_IC_10BITADDR_SLV register field. */
+#define ALT_I2C_CON_IC_10BITADDR_SLV_MSB 3
+/* The width in bits of the ALT_I2C_CON_IC_10BITADDR_SLV register field. */
+#define ALT_I2C_CON_IC_10BITADDR_SLV_WIDTH 1
+/* The mask used to set the ALT_I2C_CON_IC_10BITADDR_SLV register field value. */
+#define ALT_I2C_CON_IC_10BITADDR_SLV_SET_MSK 0x00000008
+/* The mask used to clear the ALT_I2C_CON_IC_10BITADDR_SLV register field value. */
+#define ALT_I2C_CON_IC_10BITADDR_SLV_CLR_MSK 0xfffffff7
+/* The reset value of the ALT_I2C_CON_IC_10BITADDR_SLV register field. */
+#define ALT_I2C_CON_IC_10BITADDR_SLV_RESET 0x1
+/* Extracts the ALT_I2C_CON_IC_10BITADDR_SLV field value from a register. */
+#define ALT_I2C_CON_IC_10BITADDR_SLV_GET(value) (((value) & 0x00000008) >> 3)
+/* Produces a ALT_I2C_CON_IC_10BITADDR_SLV register field value suitable for setting the register. */
+#define ALT_I2C_CON_IC_10BITADDR_SLV_SET(value) (((value) << 3) & 0x00000008)
+
+/*
+ * Field : Master Address Size - ic_10bitaddr_master
+ *
+ * This bit controls whether the I2C starts its transfers in 7-or 10-bit addressing
+ * mode when acting as a master.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :--------------------------------------------|:------|:------------------
+ * ALT_I2C_CON_IC_10BITADDR_MST_E_MSTADDR7BIT | 0x0 | 7-bit addressing
+ * ALT_I2C_CON_IC_10BITADDR_MST_E_MSTADDR10BIT | 0x1 | 10-bit addressing
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_CON_IC_10BITADDR_MST
+ *
+ * 7-bit addressing
+ */
+#define ALT_I2C_CON_IC_10BITADDR_MST_E_MSTADDR7BIT 0x0
+/*
+ * Enumerated value for register field ALT_I2C_CON_IC_10BITADDR_MST
+ *
+ * 10-bit addressing
+ */
+#define ALT_I2C_CON_IC_10BITADDR_MST_E_MSTADDR10BIT 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CON_IC_10BITADDR_MST register field. */
+#define ALT_I2C_CON_IC_10BITADDR_MST_LSB 4
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CON_IC_10BITADDR_MST register field. */
+#define ALT_I2C_CON_IC_10BITADDR_MST_MSB 4
+/* The width in bits of the ALT_I2C_CON_IC_10BITADDR_MST register field. */
+#define ALT_I2C_CON_IC_10BITADDR_MST_WIDTH 1
+/* The mask used to set the ALT_I2C_CON_IC_10BITADDR_MST register field value. */
+#define ALT_I2C_CON_IC_10BITADDR_MST_SET_MSK 0x00000010
+/* The mask used to clear the ALT_I2C_CON_IC_10BITADDR_MST register field value. */
+#define ALT_I2C_CON_IC_10BITADDR_MST_CLR_MSK 0xffffffef
+/* The reset value of the ALT_I2C_CON_IC_10BITADDR_MST register field. */
+#define ALT_I2C_CON_IC_10BITADDR_MST_RESET 0x1
+/* Extracts the ALT_I2C_CON_IC_10BITADDR_MST field value from a register. */
+#define ALT_I2C_CON_IC_10BITADDR_MST_GET(value) (((value) & 0x00000010) >> 4)
+/* Produces a ALT_I2C_CON_IC_10BITADDR_MST register field value suitable for setting the register. */
+#define ALT_I2C_CON_IC_10BITADDR_MST_SET(value) (((value) << 4) & 0x00000010)
+
+/*
+ * Field : Restart Enable - ic_restart_en
+ *
+ * Determines whether RESTART conditions may be sent when acting as a master. Some
+ * older slaves do not support handling RESTART conditions; however, RESTART
+ * conditions are used in several I2C operations. When RESTART is disabled, the
+ * master is prohibited from performing the following functions
+ *
+ * * Changing direction within a transfer (split),
+ *
+ * * Sending a START BYTE,
+ *
+ * * High-speed mode operation,
+ *
+ * * Combined format transfers in 7-bit addressing modes,
+ *
+ * * Read operation with a 10-bit address,
+ *
+ * * Sending multiple bytes per transfer,
+ *
+ * By replacing RESTART condition followed by a STOP and a subsequent START
+ * condition, split operations are broken down into multiple I2C transfers. If the
+ * above operations are performed, it will result in setting bit [6](tx_abort) of
+ * the Raw Interrupt Status Register.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :--------------------------------|:------|:-----------------------
+ * ALT_I2C_CON_IC_RESTART_EN_E_DIS | 0x0 | restart master disable
+ * ALT_I2C_CON_IC_RESTART_EN_E_EN | 0x1 | restart master enable
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_CON_IC_RESTART_EN
+ *
+ * restart master disable
+ */
+#define ALT_I2C_CON_IC_RESTART_EN_E_DIS 0x0
+/*
+ * Enumerated value for register field ALT_I2C_CON_IC_RESTART_EN
+ *
+ * restart master enable
+ */
+#define ALT_I2C_CON_IC_RESTART_EN_E_EN 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CON_IC_RESTART_EN register field. */
+#define ALT_I2C_CON_IC_RESTART_EN_LSB 5
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CON_IC_RESTART_EN register field. */
+#define ALT_I2C_CON_IC_RESTART_EN_MSB 5
+/* The width in bits of the ALT_I2C_CON_IC_RESTART_EN register field. */
+#define ALT_I2C_CON_IC_RESTART_EN_WIDTH 1
+/* The mask used to set the ALT_I2C_CON_IC_RESTART_EN register field value. */
+#define ALT_I2C_CON_IC_RESTART_EN_SET_MSK 0x00000020
+/* The mask used to clear the ALT_I2C_CON_IC_RESTART_EN register field value. */
+#define ALT_I2C_CON_IC_RESTART_EN_CLR_MSK 0xffffffdf
+/* The reset value of the ALT_I2C_CON_IC_RESTART_EN register field. */
+#define ALT_I2C_CON_IC_RESTART_EN_RESET 0x1
+/* Extracts the ALT_I2C_CON_IC_RESTART_EN field value from a register. */
+#define ALT_I2C_CON_IC_RESTART_EN_GET(value) (((value) & 0x00000020) >> 5)
+/* Produces a ALT_I2C_CON_IC_RESTART_EN register field value suitable for setting the register. */
+#define ALT_I2C_CON_IC_RESTART_EN_SET(value) (((value) << 5) & 0x00000020)
+
+/*
+ * Field : Slave Disable - ic_slave_disable
+ *
+ * This bit controls whether I2C has its slave disabled. The slave will be
+ * disabled, after reset.
+ *
+ * NOTE: Software should ensure that if this bit is written with 0, then bit [0] of
+ * this register should also be written with a 0.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :-----------------------------|:------|:--------------
+ * ALT_I2C_CON_IC_SLV_DIS_E_DIS | 0x1 | slave disable
+ * ALT_I2C_CON_IC_SLV_DIS_E_EN | 0x0 | slave enable
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_CON_IC_SLV_DIS
+ *
+ * slave disable
+ */
+#define ALT_I2C_CON_IC_SLV_DIS_E_DIS 0x1
+/*
+ * Enumerated value for register field ALT_I2C_CON_IC_SLV_DIS
+ *
+ * slave enable
+ */
+#define ALT_I2C_CON_IC_SLV_DIS_E_EN 0x0
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CON_IC_SLV_DIS register field. */
+#define ALT_I2C_CON_IC_SLV_DIS_LSB 6
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CON_IC_SLV_DIS register field. */
+#define ALT_I2C_CON_IC_SLV_DIS_MSB 6
+/* The width in bits of the ALT_I2C_CON_IC_SLV_DIS register field. */
+#define ALT_I2C_CON_IC_SLV_DIS_WIDTH 1
+/* The mask used to set the ALT_I2C_CON_IC_SLV_DIS register field value. */
+#define ALT_I2C_CON_IC_SLV_DIS_SET_MSK 0x00000040
+/* The mask used to clear the ALT_I2C_CON_IC_SLV_DIS register field value. */
+#define ALT_I2C_CON_IC_SLV_DIS_CLR_MSK 0xffffffbf
+/* The reset value of the ALT_I2C_CON_IC_SLV_DIS register field. */
+#define ALT_I2C_CON_IC_SLV_DIS_RESET 0x1
+/* Extracts the ALT_I2C_CON_IC_SLV_DIS field value from a register. */
+#define ALT_I2C_CON_IC_SLV_DIS_GET(value) (((value) & 0x00000040) >> 6)
+/* Produces a ALT_I2C_CON_IC_SLV_DIS register field value suitable for setting the register. */
+#define ALT_I2C_CON_IC_SLV_DIS_SET(value) (((value) << 6) & 0x00000040)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_CON.
+ */
+struct ALT_I2C_CON_s
+{
+ uint32_t master_mode : 1; /* Master Enable */
+ uint32_t speed : 2; /* Master Speed Control */
+ uint32_t ic_10bitaddr_slave : 1; /* Slave Address Size */
+ uint32_t ic_10bitaddr_master : 1; /* Master Address Size */
+ uint32_t ic_restart_en : 1; /* Restart Enable */
+ uint32_t ic_slave_disable : 1; /* Slave Disable */
+ uint32_t : 25; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_CON. */
+typedef volatile struct ALT_I2C_CON_s ALT_I2C_CON_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_CON register from the beginning of the component. */
+#define ALT_I2C_CON_OFST 0x0
+/* The address of the ALT_I2C_CON register. */
+#define ALT_I2C_CON_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_CON_OFST))
+
+/*
+ * Register : Target Address Register - ic_tar
+ *
+ * This register can be written to only when the ic_enable register is set to 0.
+ * This register is 13 bits wide. All bits can be dynamically updated as long as
+ * any set of the following conditions are true,
+ *
+ * (Enable Register bit 0 is set to 0) or (Enable Register bit 0 is set to 1 AND
+ * (I2C is NOT engaged in any Master [tx, rx] operation [ic_status register
+ * mst_activity bit 5 is set to 0]) AND (I2C is enabled to operate in Master
+ * mode[ic_con bit[0] is set to one]) AND (there are NO entries in the TX FIFO
+ * Register [IC_STATUS bit [2] is set to 1])
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :--------|:-------|:------|:------------------------------
+ * [9:0] | RW | 0x55 | Master Target Address
+ * [10] | RW | 0x0 | General Call OR Start
+ * [11] | RW | 0x0 | Special
+ * [12] | RW | 0x1 | Master Addressing Bit Control
+ * [31:13] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Master Target Address - ic_tar
+ *
+ * This is the target address for any master transaction. When transmitting a
+ * General Call, these bits are ignored. To generate a START BYTE, the CPU needs to
+ * write only once into these bits. If the ic_tar and ic_sar are the same, loopback
+ * exists but the FIFOs are shared between master and slave, so full loopback is
+ * not feasible. Only one direction loopback mode is supported (simplex), not
+ * duplex. A master cannot transmit to itself; it can transmit to only a slave.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TAR_IC_TAR register field. */
+#define ALT_I2C_TAR_IC_TAR_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TAR_IC_TAR register field. */
+#define ALT_I2C_TAR_IC_TAR_MSB 9
+/* The width in bits of the ALT_I2C_TAR_IC_TAR register field. */
+#define ALT_I2C_TAR_IC_TAR_WIDTH 10
+/* The mask used to set the ALT_I2C_TAR_IC_TAR register field value. */
+#define ALT_I2C_TAR_IC_TAR_SET_MSK 0x000003ff
+/* The mask used to clear the ALT_I2C_TAR_IC_TAR register field value. */
+#define ALT_I2C_TAR_IC_TAR_CLR_MSK 0xfffffc00
+/* The reset value of the ALT_I2C_TAR_IC_TAR register field. */
+#define ALT_I2C_TAR_IC_TAR_RESET 0x55
+/* Extracts the ALT_I2C_TAR_IC_TAR field value from a register. */
+#define ALT_I2C_TAR_IC_TAR_GET(value) (((value) & 0x000003ff) >> 0)
+/* Produces a ALT_I2C_TAR_IC_TAR register field value suitable for setting the register. */
+#define ALT_I2C_TAR_IC_TAR_SET(value) (((value) << 0) & 0x000003ff)
+
+/*
+ * Field : General Call OR Start - gc_or_start
+ *
+ * If bit 11 (SPECIAL) of this Register is set to 1, then this bit indicates
+ * whether a General Call or START byte command is to be performed by the I2C or
+ * General Call Address after issuing a General Call, only writes may be performed.
+ * Attempting to issue a read command results in setting bit 6 (TX_ABRT) of the Raw
+ * Interrupt_Status register. The I2C remains in General Call mode until the
+ * special bit value (bit 11) is cleared.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :------------------------------------|:------|:-------------
+ * ALT_I2C_TAR_GC_OR_START_E_GENCALL | 0x0 | General Call
+ * ALT_I2C_TAR_GC_OR_START_E_STARTBYTE | 0x1 | START Byte
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_TAR_GC_OR_START
+ *
+ * General Call
+ */
+#define ALT_I2C_TAR_GC_OR_START_E_GENCALL 0x0
+/*
+ * Enumerated value for register field ALT_I2C_TAR_GC_OR_START
+ *
+ * START Byte
+ */
+#define ALT_I2C_TAR_GC_OR_START_E_STARTBYTE 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TAR_GC_OR_START register field. */
+#define ALT_I2C_TAR_GC_OR_START_LSB 10
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TAR_GC_OR_START register field. */
+#define ALT_I2C_TAR_GC_OR_START_MSB 10
+/* The width in bits of the ALT_I2C_TAR_GC_OR_START register field. */
+#define ALT_I2C_TAR_GC_OR_START_WIDTH 1
+/* The mask used to set the ALT_I2C_TAR_GC_OR_START register field value. */
+#define ALT_I2C_TAR_GC_OR_START_SET_MSK 0x00000400
+/* The mask used to clear the ALT_I2C_TAR_GC_OR_START register field value. */
+#define ALT_I2C_TAR_GC_OR_START_CLR_MSK 0xfffffbff
+/* The reset value of the ALT_I2C_TAR_GC_OR_START register field. */
+#define ALT_I2C_TAR_GC_OR_START_RESET 0x0
+/* Extracts the ALT_I2C_TAR_GC_OR_START field value from a register. */
+#define ALT_I2C_TAR_GC_OR_START_GET(value) (((value) & 0x00000400) >> 10)
+/* Produces a ALT_I2C_TAR_GC_OR_START register field value suitable for setting the register. */
+#define ALT_I2C_TAR_GC_OR_START_SET(value) (((value) << 10) & 0x00000400)
+
+/*
+ * Field : Special - special
+ *
+ * This bit indicates whether software performs a General Call or START BYTE
+ * command.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :--------------------------------|:------|:--------------------------------------------
+ * ALT_I2C_TAR_SPECIAL_E_GENCALL | 0x0 | Ignore bit 10 gc_or_start and use ic_tar
+ * : | | normally
+ * ALT_I2C_TAR_SPECIAL_E_STARTBYTE | 0x1 | Perform special I2C command as specified in
+ * : | | gc_or_start
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_TAR_SPECIAL
+ *
+ * Ignore bit 10 gc_or_start and use ic_tar normally
+ */
+#define ALT_I2C_TAR_SPECIAL_E_GENCALL 0x0
+/*
+ * Enumerated value for register field ALT_I2C_TAR_SPECIAL
+ *
+ * Perform special I2C command as specified in gc_or_start
+ */
+#define ALT_I2C_TAR_SPECIAL_E_STARTBYTE 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TAR_SPECIAL register field. */
+#define ALT_I2C_TAR_SPECIAL_LSB 11
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TAR_SPECIAL register field. */
+#define ALT_I2C_TAR_SPECIAL_MSB 11
+/* The width in bits of the ALT_I2C_TAR_SPECIAL register field. */
+#define ALT_I2C_TAR_SPECIAL_WIDTH 1
+/* The mask used to set the ALT_I2C_TAR_SPECIAL register field value. */
+#define ALT_I2C_TAR_SPECIAL_SET_MSK 0x00000800
+/* The mask used to clear the ALT_I2C_TAR_SPECIAL register field value. */
+#define ALT_I2C_TAR_SPECIAL_CLR_MSK 0xfffff7ff
+/* The reset value of the ALT_I2C_TAR_SPECIAL register field. */
+#define ALT_I2C_TAR_SPECIAL_RESET 0x0
+/* Extracts the ALT_I2C_TAR_SPECIAL field value from a register. */
+#define ALT_I2C_TAR_SPECIAL_GET(value) (((value) & 0x00000800) >> 11)
+/* Produces a ALT_I2C_TAR_SPECIAL register field value suitable for setting the register. */
+#define ALT_I2C_TAR_SPECIAL_SET(value) (((value) << 11) & 0x00000800)
+
+/*
+ * Field : Master Addressing Bit Control - ic_10bitaddr_master
+ *
+ * This bit controls whether the i2c starts its transfers in 7-bit or 10-bit
+ * addressing mode when acting as a master.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :---------------------------------------|:------|:----------------------
+ * ALT_I2C_TAR_IC_10BITADDR_MST_E_START7 | 0x0 | Master Address, 7bit
+ * ALT_I2C_TAR_IC_10BITADDR_MST_E_START10 | 0x1 | Master Address, 10bit
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_TAR_IC_10BITADDR_MST
+ *
+ * Master Address, 7bit
+ */
+#define ALT_I2C_TAR_IC_10BITADDR_MST_E_START7 0x0
+/*
+ * Enumerated value for register field ALT_I2C_TAR_IC_10BITADDR_MST
+ *
+ * Master Address, 10bit
+ */
+#define ALT_I2C_TAR_IC_10BITADDR_MST_E_START10 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TAR_IC_10BITADDR_MST register field. */
+#define ALT_I2C_TAR_IC_10BITADDR_MST_LSB 12
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TAR_IC_10BITADDR_MST register field. */
+#define ALT_I2C_TAR_IC_10BITADDR_MST_MSB 12
+/* The width in bits of the ALT_I2C_TAR_IC_10BITADDR_MST register field. */
+#define ALT_I2C_TAR_IC_10BITADDR_MST_WIDTH 1
+/* The mask used to set the ALT_I2C_TAR_IC_10BITADDR_MST register field value. */
+#define ALT_I2C_TAR_IC_10BITADDR_MST_SET_MSK 0x00001000
+/* The mask used to clear the ALT_I2C_TAR_IC_10BITADDR_MST register field value. */
+#define ALT_I2C_TAR_IC_10BITADDR_MST_CLR_MSK 0xffffefff
+/* The reset value of the ALT_I2C_TAR_IC_10BITADDR_MST register field. */
+#define ALT_I2C_TAR_IC_10BITADDR_MST_RESET 0x1
+/* Extracts the ALT_I2C_TAR_IC_10BITADDR_MST field value from a register. */
+#define ALT_I2C_TAR_IC_10BITADDR_MST_GET(value) (((value) & 0x00001000) >> 12)
+/* Produces a ALT_I2C_TAR_IC_10BITADDR_MST register field value suitable for setting the register. */
+#define ALT_I2C_TAR_IC_10BITADDR_MST_SET(value) (((value) << 12) & 0x00001000)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_TAR.
+ */
+struct ALT_I2C_TAR_s
+{
+ uint32_t ic_tar : 10; /* Master Target Address */
+ uint32_t gc_or_start : 1; /* General Call OR Start */
+ uint32_t special : 1; /* Special */
+ uint32_t ic_10bitaddr_master : 1; /* Master Addressing Bit Control */
+ uint32_t : 19; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_TAR. */
+typedef volatile struct ALT_I2C_TAR_s ALT_I2C_TAR_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_TAR register from the beginning of the component. */
+#define ALT_I2C_TAR_OFST 0x4
+/* The address of the ALT_I2C_TAR register. */
+#define ALT_I2C_TAR_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_TAR_OFST))
+
+/*
+ * Register : Slave Address Register - ic_sar
+ *
+ * Holds Address of Slave
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :--------|:-------|:------|:--------------
+ * [9:0] | RW | 0x55 | Slave Address
+ * [31:10] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Slave Address - ic_sar
+ *
+ * The Slave Address register holds the slave address when the I2C is operating as
+ * a slave. For 7-bit addressing, only Field Bits [6:0] of the Slave Address
+ * Register are used. This register can be written only when the I2C interface is
+ * disabled, which corresponds to field bit 0 of the Enable Register being set to
+ * 0. Writes at other times have no effect.
+ *
+ * Note, the default values cannot be any of the reserved address locations: that
+ * is,
+ *
+ * 0x00 to 0x07, or 0x78 to 0x7f. The correct operation of the device is not
+ * guaranteed if you program the Slave Address Register or Target Address Register
+ * to a reserved value.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_SAR_IC_SAR register field. */
+#define ALT_I2C_SAR_IC_SAR_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_SAR_IC_SAR register field. */
+#define ALT_I2C_SAR_IC_SAR_MSB 9
+/* The width in bits of the ALT_I2C_SAR_IC_SAR register field. */
+#define ALT_I2C_SAR_IC_SAR_WIDTH 10
+/* The mask used to set the ALT_I2C_SAR_IC_SAR register field value. */
+#define ALT_I2C_SAR_IC_SAR_SET_MSK 0x000003ff
+/* The mask used to clear the ALT_I2C_SAR_IC_SAR register field value. */
+#define ALT_I2C_SAR_IC_SAR_CLR_MSK 0xfffffc00
+/* The reset value of the ALT_I2C_SAR_IC_SAR register field. */
+#define ALT_I2C_SAR_IC_SAR_RESET 0x55
+/* Extracts the ALT_I2C_SAR_IC_SAR field value from a register. */
+#define ALT_I2C_SAR_IC_SAR_GET(value) (((value) & 0x000003ff) >> 0)
+/* Produces a ALT_I2C_SAR_IC_SAR register field value suitable for setting the register. */
+#define ALT_I2C_SAR_IC_SAR_SET(value) (((value) << 0) & 0x000003ff)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_SAR.
+ */
+struct ALT_I2C_SAR_s
+{
+ uint32_t ic_sar : 10; /* Slave Address */
+ uint32_t : 22; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_SAR. */
+typedef volatile struct ALT_I2C_SAR_s ALT_I2C_SAR_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_SAR register from the beginning of the component. */
+#define ALT_I2C_SAR_OFST 0x8
+/* The address of the ALT_I2C_SAR register. */
+#define ALT_I2C_SAR_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_SAR_OFST))
+
+/*
+ * Register : Tx Rx Data and Command Register - ic_data_cmd
+ *
+ * This is the register the CPU writes to when filling the TX FIFO. Reading from
+ * this register returns bytes from RX FIFO.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :--------|:-------|:------|:--------------------------
+ * [7:0] | RW | 0x0 | Tx Rx Data
+ * [8] | W | 0x0 | Master Read Write Control
+ * [9] | W | 0x0 | Generate Stop
+ * [10] | W | 0x0 | Generate Restart
+ * [31:11] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Tx Rx Data - dat
+ *
+ * This Field contains the data to be transmitted or received on the I2C bus. If
+ * you are writing to these bits and want to perform a read, bits 7:0 (dat) are
+ * ignored by the I2C. However, when you read from this register, these bits return
+ * the value of data received on the I2C interface.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_DATA_CMD_DAT register field. */
+#define ALT_I2C_DATA_CMD_DAT_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_DATA_CMD_DAT register field. */
+#define ALT_I2C_DATA_CMD_DAT_MSB 7
+/* The width in bits of the ALT_I2C_DATA_CMD_DAT register field. */
+#define ALT_I2C_DATA_CMD_DAT_WIDTH 8
+/* The mask used to set the ALT_I2C_DATA_CMD_DAT register field value. */
+#define ALT_I2C_DATA_CMD_DAT_SET_MSK 0x000000ff
+/* The mask used to clear the ALT_I2C_DATA_CMD_DAT register field value. */
+#define ALT_I2C_DATA_CMD_DAT_CLR_MSK 0xffffff00
+/* The reset value of the ALT_I2C_DATA_CMD_DAT register field. */
+#define ALT_I2C_DATA_CMD_DAT_RESET 0x0
+/* Extracts the ALT_I2C_DATA_CMD_DAT field value from a register. */
+#define ALT_I2C_DATA_CMD_DAT_GET(value) (((value) & 0x000000ff) >> 0)
+/* Produces a ALT_I2C_DATA_CMD_DAT register field value suitable for setting the register. */
+#define ALT_I2C_DATA_CMD_DAT_SET(value) (((value) << 0) & 0x000000ff)
+
+/*
+ * Field : Master Read Write Control - cmd
+ *
+ * This bit controls whether a read or a write is performed. This bit does not
+ * control the direction when the I2C acts as a slave. It controls only the
+ * direction when it acts as a master. When a command is entered in the TX FIFO,
+ * this bit distinguishes the write and read commands. In slave-receiver mode, this
+ * bit is a 'don't care' because writes to this register are not required. In
+ * slave-transmitter mode, a '0' indicates that the CPU data is to be transmitted.
+ * When programming this bit, you should remember the following: attempting to
+ * perform a read operation after a General Call command has been sent results in a
+ * tx_abrt interrupt (bit 6 of the Raw Intr Status Register), unless bit 11 special
+ * in the Target Address Register has been cleared. If a '1' is written to this bit
+ * after receiving a RD_REQ interrupt, then a tx_abrt interrupt occurs.
+ *
+ * NOTE: It is possible that while attempting a master I2C read transfer on I2C, a
+ * RD_REQ interrupt may have occurred simultaneously due to a remote I2C master
+ * addressing I2C. In this type of scenario, I2C ignores the Data Cmd write,
+ * generates a tx_abrt interrupt, and waits to service the RD_REQ interrupt.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :--------------------------|:------|:-------------
+ * ALT_I2C_DATA_CMD_CMD_E_RD | 0x1 | Master Read
+ * ALT_I2C_DATA_CMD_CMD_E_WR | 0x0 | Master Write
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_DATA_CMD_CMD
+ *
+ * Master Read
+ */
+#define ALT_I2C_DATA_CMD_CMD_E_RD 0x1
+/*
+ * Enumerated value for register field ALT_I2C_DATA_CMD_CMD
+ *
+ * Master Write
+ */
+#define ALT_I2C_DATA_CMD_CMD_E_WR 0x0
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_DATA_CMD_CMD register field. */
+#define ALT_I2C_DATA_CMD_CMD_LSB 8
+/* The Most Significant Bit (MSB) position of the ALT_I2C_DATA_CMD_CMD register field. */
+#define ALT_I2C_DATA_CMD_CMD_MSB 8
+/* The width in bits of the ALT_I2C_DATA_CMD_CMD register field. */
+#define ALT_I2C_DATA_CMD_CMD_WIDTH 1
+/* The mask used to set the ALT_I2C_DATA_CMD_CMD register field value. */
+#define ALT_I2C_DATA_CMD_CMD_SET_MSK 0x00000100
+/* The mask used to clear the ALT_I2C_DATA_CMD_CMD register field value. */
+#define ALT_I2C_DATA_CMD_CMD_CLR_MSK 0xfffffeff
+/* The reset value of the ALT_I2C_DATA_CMD_CMD register field. */
+#define ALT_I2C_DATA_CMD_CMD_RESET 0x0
+/* Extracts the ALT_I2C_DATA_CMD_CMD field value from a register. */
+#define ALT_I2C_DATA_CMD_CMD_GET(value) (((value) & 0x00000100) >> 8)
+/* Produces a ALT_I2C_DATA_CMD_CMD register field value suitable for setting the register. */
+#define ALT_I2C_DATA_CMD_CMD_SET(value) (((value) << 8) & 0x00000100)
+
+/*
+ * Field : Generate Stop - stop
+ *
+ * This bit controls whether a STOP is issued after the byte is sent or received.
+ *
+ * 1 = STOP is issued after this byte, regardless of whether or not the Tx FIFO is
+ * empty. If the Tx FIFO is not empty, the master immediately tries to start a new
+ * transfer by issuing a START and arbitrating for the bus.
+ *
+ * 0 = STOP is not issued after this byte, regardless of whether or not the Tx FIFO
+ * is empty. If the Tx FIFO is not empty, the master continues the current transfer
+ * by sending/receiving data bytes according to the value of the CMD bit. If the Tx
+ * FIFO is empty, the master holds the SCL line low and stalls the bus until a new
+ * command is available in the Tx FIFO.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :--------------------------------|:------|:------------------
+ * ALT_I2C_DATA_CMD_STOP_E_STOP | 0x1 | Issue Stop
+ * ALT_I2C_DATA_CMD_STOP_E_NO_STOP | 0x0 | Do Not Issue Stop
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_DATA_CMD_STOP
+ *
+ * Issue Stop
+ */
+#define ALT_I2C_DATA_CMD_STOP_E_STOP 0x1
+/*
+ * Enumerated value for register field ALT_I2C_DATA_CMD_STOP
+ *
+ * Do Not Issue Stop
+ */
+#define ALT_I2C_DATA_CMD_STOP_E_NO_STOP 0x0
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_DATA_CMD_STOP register field. */
+#define ALT_I2C_DATA_CMD_STOP_LSB 9
+/* The Most Significant Bit (MSB) position of the ALT_I2C_DATA_CMD_STOP register field. */
+#define ALT_I2C_DATA_CMD_STOP_MSB 9
+/* The width in bits of the ALT_I2C_DATA_CMD_STOP register field. */
+#define ALT_I2C_DATA_CMD_STOP_WIDTH 1
+/* The mask used to set the ALT_I2C_DATA_CMD_STOP register field value. */
+#define ALT_I2C_DATA_CMD_STOP_SET_MSK 0x00000200
+/* The mask used to clear the ALT_I2C_DATA_CMD_STOP register field value. */
+#define ALT_I2C_DATA_CMD_STOP_CLR_MSK 0xfffffdff
+/* The reset value of the ALT_I2C_DATA_CMD_STOP register field. */
+#define ALT_I2C_DATA_CMD_STOP_RESET 0x0
+/* Extracts the ALT_I2C_DATA_CMD_STOP field value from a register. */
+#define ALT_I2C_DATA_CMD_STOP_GET(value) (((value) & 0x00000200) >> 9)
+/* Produces a ALT_I2C_DATA_CMD_STOP register field value suitable for setting the register. */
+#define ALT_I2C_DATA_CMD_STOP_SET(value) (((value) << 9) & 0x00000200)
+
+/*
+ * Field : Generate Restart - restart
+ *
+ * This bit controls whether a RESTART is issued before the byte is sent or
+ * received.
+ *
+ * 1 = A RESTART is issued before the data is sent/received (according to the value
+ * of CMD), regardless of whether or not the transfer direction is changing from
+ * the previous command.
+ *
+ * 0 = A RESTART is issued only if the transfer direction is changing from the
+ * previous command.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :-------------------------------------------------|:------|:----------------------------------
+ * ALT_I2C_DATA_CMD_RESTART_E_RESTART | 0x1 | Issue Restart
+ * ALT_I2C_DATA_CMD_RESTART_E_RESTART_ON_DIR_CHANGE | 0x0 | Issue Restart On Direction Change
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_DATA_CMD_RESTART
+ *
+ * Issue Restart
+ */
+#define ALT_I2C_DATA_CMD_RESTART_E_RESTART 0x1
+/*
+ * Enumerated value for register field ALT_I2C_DATA_CMD_RESTART
+ *
+ * Issue Restart On Direction Change
+ */
+#define ALT_I2C_DATA_CMD_RESTART_E_RESTART_ON_DIR_CHANGE 0x0
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_DATA_CMD_RESTART register field. */
+#define ALT_I2C_DATA_CMD_RESTART_LSB 10
+/* The Most Significant Bit (MSB) position of the ALT_I2C_DATA_CMD_RESTART register field. */
+#define ALT_I2C_DATA_CMD_RESTART_MSB 10
+/* The width in bits of the ALT_I2C_DATA_CMD_RESTART register field. */
+#define ALT_I2C_DATA_CMD_RESTART_WIDTH 1
+/* The mask used to set the ALT_I2C_DATA_CMD_RESTART register field value. */
+#define ALT_I2C_DATA_CMD_RESTART_SET_MSK 0x00000400
+/* The mask used to clear the ALT_I2C_DATA_CMD_RESTART register field value. */
+#define ALT_I2C_DATA_CMD_RESTART_CLR_MSK 0xfffffbff
+/* The reset value of the ALT_I2C_DATA_CMD_RESTART register field. */
+#define ALT_I2C_DATA_CMD_RESTART_RESET 0x0
+/* Extracts the ALT_I2C_DATA_CMD_RESTART field value from a register. */
+#define ALT_I2C_DATA_CMD_RESTART_GET(value) (((value) & 0x00000400) >> 10)
+/* Produces a ALT_I2C_DATA_CMD_RESTART register field value suitable for setting the register. */
+#define ALT_I2C_DATA_CMD_RESTART_SET(value) (((value) << 10) & 0x00000400)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_DATA_CMD.
+ */
+struct ALT_I2C_DATA_CMD_s
+{
+ uint32_t dat : 8; /* Tx Rx Data */
+ uint32_t cmd : 1; /* Master Read Write Control */
+ uint32_t stop : 1; /* Generate Stop */
+ uint32_t restart : 1; /* Generate Restart */
+ uint32_t : 21; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_DATA_CMD. */
+typedef volatile struct ALT_I2C_DATA_CMD_s ALT_I2C_DATA_CMD_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_DATA_CMD register from the beginning of the component. */
+#define ALT_I2C_DATA_CMD_OFST 0x10
+/* The address of the ALT_I2C_DATA_CMD register. */
+#define ALT_I2C_DATA_CMD_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_DATA_CMD_OFST))
+
+/*
+ * Register : Std Spd Clock SCL HCNT Register - ic_ss_scl_hcnt
+ *
+ * This register sets the SCL clock high-period count for standard speed.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :--------|:-------|:------|:------------------------
+ * [15:0] | RW | 0x190 | Std Spd SCL High Period
+ * [31:16] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Std Spd SCL High Period - ic_ss_scl_hcnt
+ *
+ * This register must be set before any I2C bus transaction can take place to
+ * ensure proper I/O timing. This field sets the SCL clock high-period count for
+ * standard speed. This register can be written only when the I2C interface is
+ * disabled which corresponds to the Enable Register being set to 0. Writes at
+ * other times have no effect. The minimum valid value is 6; hardware prevents
+ * values less than this being written, and if attempted results in 6 being set. It
+ * is readable and writeable.
+ *
+ * NOTE: This register must not be programmed to a value higher than 65525, because
+ * I2C uses a 16-bit counter to flag an I2C bus idle condition when this counter
+ * reaches a value of IC_SS_SCL_HCNT + 10.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT register field. */
+#define ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT register field. */
+#define ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT_MSB 15
+/* The width in bits of the ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT register field. */
+#define ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT_WIDTH 16
+/* The mask used to set the ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT register field value. */
+#define ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT_SET_MSK 0x0000ffff
+/* The mask used to clear the ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT register field value. */
+#define ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT_CLR_MSK 0xffff0000
+/* The reset value of the ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT register field. */
+#define ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT_RESET 0x190
+/* Extracts the ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT field value from a register. */
+#define ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT_GET(value) (((value) & 0x0000ffff) >> 0)
+/* Produces a ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT register field value suitable for setting the register. */
+#define ALT_I2C_SS_SCL_HCNT_IC_SS_SCL_HCNT_SET(value) (((value) << 0) & 0x0000ffff)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_SS_SCL_HCNT.
+ */
+struct ALT_I2C_SS_SCL_HCNT_s
+{
+ uint32_t ic_ss_scl_hcnt : 16; /* Std Spd SCL High Period */
+ uint32_t : 16; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_SS_SCL_HCNT. */
+typedef volatile struct ALT_I2C_SS_SCL_HCNT_s ALT_I2C_SS_SCL_HCNT_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_SS_SCL_HCNT register from the beginning of the component. */
+#define ALT_I2C_SS_SCL_HCNT_OFST 0x14
+/* The address of the ALT_I2C_SS_SCL_HCNT register. */
+#define ALT_I2C_SS_SCL_HCNT_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_SS_SCL_HCNT_OFST))
+
+/*
+ * Register : Std Spd Clock SCL LCNT Register - ic_ss_scl_lcnt
+ *
+ * This register sets the SCL clock low-period count for standard speed
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :--------|:-------|:------|:-----------------------
+ * [15:0] | RW | 0x1d6 | Std Spd SCL Low Period
+ * [31:16] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Std Spd SCL Low Period - ic_ss_scl_lcnt
+ *
+ * This register must be set before any I2C bus transaction can take place to
+ * ensure proper I/O timing. This field sets the SCL clock low period count for
+ * standard speed. This register can be written only when the I2C interface is
+ * disabled which corresponds to the Enable Register register being set to 0.
+ * Writes at other times have no effect. The minimum valid value is 8; hardware
+ * prevents values less than this from being written, and if attempted, results in
+ * 8 being set.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT register field. */
+#define ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT register field. */
+#define ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT_MSB 15
+/* The width in bits of the ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT register field. */
+#define ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT_WIDTH 16
+/* The mask used to set the ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT register field value. */
+#define ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT_SET_MSK 0x0000ffff
+/* The mask used to clear the ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT register field value. */
+#define ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT_CLR_MSK 0xffff0000
+/* The reset value of the ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT register field. */
+#define ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT_RESET 0x1d6
+/* Extracts the ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT field value from a register. */
+#define ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT_GET(value) (((value) & 0x0000ffff) >> 0)
+/* Produces a ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT register field value suitable for setting the register. */
+#define ALT_I2C_SS_SCL_LCNT_IC_SS_SCL_LCNT_SET(value) (((value) << 0) & 0x0000ffff)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_SS_SCL_LCNT.
+ */
+struct ALT_I2C_SS_SCL_LCNT_s
+{
+ uint32_t ic_ss_scl_lcnt : 16; /* Std Spd SCL Low Period */
+ uint32_t : 16; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_SS_SCL_LCNT. */
+typedef volatile struct ALT_I2C_SS_SCL_LCNT_s ALT_I2C_SS_SCL_LCNT_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_SS_SCL_LCNT register from the beginning of the component. */
+#define ALT_I2C_SS_SCL_LCNT_OFST 0x18
+/* The address of the ALT_I2C_SS_SCL_LCNT register. */
+#define ALT_I2C_SS_SCL_LCNT_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_SS_SCL_LCNT_OFST))
+
+/*
+ * Register : Fast Spd Clock SCL HCNT Register - ic_fs_scl_hcnt
+ *
+ * This register sets the SCL clock high-period count for fast speed
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :--------|:-------|:------|:-------------------------
+ * [15:0] | RW | 0x3c | Fast Spd SCL High Period
+ * [31:16] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Fast Spd SCL High Period - ic_fs_scl_hcnt
+ *
+ * This register must be set before any I2C bus transaction can take place to
+ * ensure proper I/O timing. This register sets the SCL clock high-period count for
+ * fast speed. It is used in high-speed mode to send the Master Code and START BYTE
+ * or General CALL. This register goes away and becomes read-only returning 0s if
+ * in Standard Speed Mode. This register can be written only when the I2C interface
+ * is disabled, which corresponds to the Enable Register being set to 0. Writes at
+ * other times have no effect. The minimum valid value is 6; hardware prevents
+ * values less than this from being written, and if attempted results in 6 being
+ * set.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT register field. */
+#define ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT register field. */
+#define ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT_MSB 15
+/* The width in bits of the ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT register field. */
+#define ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT_WIDTH 16
+/* The mask used to set the ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT register field value. */
+#define ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT_SET_MSK 0x0000ffff
+/* The mask used to clear the ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT register field value. */
+#define ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT_CLR_MSK 0xffff0000
+/* The reset value of the ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT register field. */
+#define ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT_RESET 0x3c
+/* Extracts the ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT field value from a register. */
+#define ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT_GET(value) (((value) & 0x0000ffff) >> 0)
+/* Produces a ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT register field value suitable for setting the register. */
+#define ALT_I2C_FS_SCL_HCNT_IC_FS_SCL_HCNT_SET(value) (((value) << 0) & 0x0000ffff)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_FS_SCL_HCNT.
+ */
+struct ALT_I2C_FS_SCL_HCNT_s
+{
+ uint32_t ic_fs_scl_hcnt : 16; /* Fast Spd SCL High Period */
+ uint32_t : 16; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_FS_SCL_HCNT. */
+typedef volatile struct ALT_I2C_FS_SCL_HCNT_s ALT_I2C_FS_SCL_HCNT_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_FS_SCL_HCNT register from the beginning of the component. */
+#define ALT_I2C_FS_SCL_HCNT_OFST 0x1c
+/* The address of the ALT_I2C_FS_SCL_HCNT register. */
+#define ALT_I2C_FS_SCL_HCNT_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_FS_SCL_HCNT_OFST))
+
+/*
+ * Register : Fast Spd Clock SCL LCNT Register - ic_fs_scl_lcnt
+ *
+ * This register sets the SCL clock low period count
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :--------|:-------|:------|:------------------------
+ * [15:0] | RW | 0x82 | Fast Spd SCL Low Period
+ * [31:16] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Fast Spd SCL Low Period - ic_fs_scl_lcnt
+ *
+ * This register must be set before any I2C bus transaction can take place to
+ * ensure proper I/O timing. This field sets the SCL clock low period count for
+ * fast speed. It is used in high-speed mode to send the Master Code and START BYTE
+ * or General CALL. This register can be written only when the I2C interface is
+ * disabled, which corresponds to the Enable Register being set to 0. Writes at
+ * other times have no effect.The minimum valid value is 8; hardware prevents
+ * values less than this being written, and if attempted results in 8 being set.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT register field. */
+#define ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT register field. */
+#define ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT_MSB 15
+/* The width in bits of the ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT register field. */
+#define ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT_WIDTH 16
+/* The mask used to set the ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT register field value. */
+#define ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT_SET_MSK 0x0000ffff
+/* The mask used to clear the ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT register field value. */
+#define ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT_CLR_MSK 0xffff0000
+/* The reset value of the ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT register field. */
+#define ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT_RESET 0x82
+/* Extracts the ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT field value from a register. */
+#define ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT_GET(value) (((value) & 0x0000ffff) >> 0)
+/* Produces a ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT register field value suitable for setting the register. */
+#define ALT_I2C_FS_SCL_LCNT_IC_FS_SCL_LCNT_SET(value) (((value) << 0) & 0x0000ffff)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_FS_SCL_LCNT.
+ */
+struct ALT_I2C_FS_SCL_LCNT_s
+{
+ uint32_t ic_fs_scl_lcnt : 16; /* Fast Spd SCL Low Period */
+ uint32_t : 16; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_FS_SCL_LCNT. */
+typedef volatile struct ALT_I2C_FS_SCL_LCNT_s ALT_I2C_FS_SCL_LCNT_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_FS_SCL_LCNT register from the beginning of the component. */
+#define ALT_I2C_FS_SCL_LCNT_OFST 0x20
+/* The address of the ALT_I2C_FS_SCL_LCNT register. */
+#define ALT_I2C_FS_SCL_LCNT_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_FS_SCL_LCNT_OFST))
+
+/*
+ * Register : Interrupt Status Register - ic_intr_stat
+ *
+ * Each bit in this register has a corresponding mask bit in the Interrupt Mask
+ * Register. These bits are cleared by reading the matching Interrupt Clear
+ * Register. The unmasked raw versions of these bits are available in the Raw
+ * Interrupt Status Register.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :--------|:-------|:------|:-------------------------
+ * [0] | R | 0x0 | Receiver Under
+ * [1] | R | 0x0 | Receiver Over
+ * [2] | R | 0x0 | Receive Full
+ * [3] | R | 0x0 | Interrupt Transmit Over
+ * [4] | R | 0x0 | Interrupt Transmit Empty
+ * [5] | R | 0x0 | Interrupt Read Request
+ * [6] | R | 0x0 | Interrupt TX Abort
+ * [7] | R | 0x0 | Interrupt RX Done
+ * [8] | R | 0x0 | Interrupt R_activity
+ * [9] | R | 0x0 | Interrupt Stop Detect
+ * [10] | R | 0x0 | Interrupt Start Detect
+ * [11] | R | 0x0 | Interrupt General Call
+ * [31:12] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Receiver Under - r_rx_under
+ *
+ * Set if the processor attempts to read the receive buffer when it is empty by
+ * reading from the Tx Rx Data and Command Register. If the module is disabled,
+ * Enable Register is set to 0, this bit keeps its level until the master or slave
+ * state machines go into idle, then this interrupt is cleared.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_STAT_R_RX_UNDER register field. */
+#define ALT_I2C_INTR_STAT_R_RX_UNDER_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_STAT_R_RX_UNDER register field. */
+#define ALT_I2C_INTR_STAT_R_RX_UNDER_MSB 0
+/* The width in bits of the ALT_I2C_INTR_STAT_R_RX_UNDER register field. */
+#define ALT_I2C_INTR_STAT_R_RX_UNDER_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_STAT_R_RX_UNDER register field value. */
+#define ALT_I2C_INTR_STAT_R_RX_UNDER_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_INTR_STAT_R_RX_UNDER register field value. */
+#define ALT_I2C_INTR_STAT_R_RX_UNDER_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_INTR_STAT_R_RX_UNDER register field. */
+#define ALT_I2C_INTR_STAT_R_RX_UNDER_RESET 0x0
+/* Extracts the ALT_I2C_INTR_STAT_R_RX_UNDER field value from a register. */
+#define ALT_I2C_INTR_STAT_R_RX_UNDER_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_INTR_STAT_R_RX_UNDER register field value suitable for setting the register. */
+#define ALT_I2C_INTR_STAT_R_RX_UNDER_SET(value) (((value) << 0) & 0x00000001)
+
+/*
+ * Field : Receiver Over - r_rx_over
+ *
+ * Set if the receive buffer is completely filled to 64 and an additional byte is
+ * received from an external I2C device. The I2C acknowledges this, but any data
+ * bytes received after the FIFO is full are lost. If the module is disabled,
+ * Enable Register bit[0] is set to 0 this bit keeps its level until the master or
+ * slave state machines go into idle, then this interrupt is cleared.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_STAT_R_RX_OVER register field. */
+#define ALT_I2C_INTR_STAT_R_RX_OVER_LSB 1
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_STAT_R_RX_OVER register field. */
+#define ALT_I2C_INTR_STAT_R_RX_OVER_MSB 1
+/* The width in bits of the ALT_I2C_INTR_STAT_R_RX_OVER register field. */
+#define ALT_I2C_INTR_STAT_R_RX_OVER_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_STAT_R_RX_OVER register field value. */
+#define ALT_I2C_INTR_STAT_R_RX_OVER_SET_MSK 0x00000002
+/* The mask used to clear the ALT_I2C_INTR_STAT_R_RX_OVER register field value. */
+#define ALT_I2C_INTR_STAT_R_RX_OVER_CLR_MSK 0xfffffffd
+/* The reset value of the ALT_I2C_INTR_STAT_R_RX_OVER register field. */
+#define ALT_I2C_INTR_STAT_R_RX_OVER_RESET 0x0
+/* Extracts the ALT_I2C_INTR_STAT_R_RX_OVER field value from a register. */
+#define ALT_I2C_INTR_STAT_R_RX_OVER_GET(value) (((value) & 0x00000002) >> 1)
+/* Produces a ALT_I2C_INTR_STAT_R_RX_OVER register field value suitable for setting the register. */
+#define ALT_I2C_INTR_STAT_R_RX_OVER_SET(value) (((value) << 1) & 0x00000002)
+
+/*
+ * Field : Receive Full - r_rx_full
+ *
+ * Set when the receive buffer reaches or goes above the Receive FIFO Threshold
+ * Value(rx_tl). It is automatically cleared by hardware when buffer level goes
+ * below the threshold. If the module is disabled, Bit [0] of the Enable Register
+ * set to 0, the RX FIFO is flushed and held in reset; therefore the RX FIFO is not
+ * full. So this bit is cleared once the Enable Register Bit 0 is programmed with a
+ * 0, regardless of the activity that continues.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_STAT_R_RX_FULL register field. */
+#define ALT_I2C_INTR_STAT_R_RX_FULL_LSB 2
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_STAT_R_RX_FULL register field. */
+#define ALT_I2C_INTR_STAT_R_RX_FULL_MSB 2
+/* The width in bits of the ALT_I2C_INTR_STAT_R_RX_FULL register field. */
+#define ALT_I2C_INTR_STAT_R_RX_FULL_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_STAT_R_RX_FULL register field value. */
+#define ALT_I2C_INTR_STAT_R_RX_FULL_SET_MSK 0x00000004
+/* The mask used to clear the ALT_I2C_INTR_STAT_R_RX_FULL register field value. */
+#define ALT_I2C_INTR_STAT_R_RX_FULL_CLR_MSK 0xfffffffb
+/* The reset value of the ALT_I2C_INTR_STAT_R_RX_FULL register field. */
+#define ALT_I2C_INTR_STAT_R_RX_FULL_RESET 0x0
+/* Extracts the ALT_I2C_INTR_STAT_R_RX_FULL field value from a register. */
+#define ALT_I2C_INTR_STAT_R_RX_FULL_GET(value) (((value) & 0x00000004) >> 2)
+/* Produces a ALT_I2C_INTR_STAT_R_RX_FULL register field value suitable for setting the register. */
+#define ALT_I2C_INTR_STAT_R_RX_FULL_SET(value) (((value) << 2) & 0x00000004)
+
+/*
+ * Field : Interrupt Transmit Over - r_tx_over
+ *
+ * Set during transmit if the transmit buffer is filled to 64 and the processor
+ * attempts to issue another I2C command by writing to the Data and Command
+ * Register. When the module is disabled, this bit keeps its level until the master
+ * or slave state machines goes into idle, then interrupt is cleared.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_STAT_R_TX_OVER register field. */
+#define ALT_I2C_INTR_STAT_R_TX_OVER_LSB 3
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_STAT_R_TX_OVER register field. */
+#define ALT_I2C_INTR_STAT_R_TX_OVER_MSB 3
+/* The width in bits of the ALT_I2C_INTR_STAT_R_TX_OVER register field. */
+#define ALT_I2C_INTR_STAT_R_TX_OVER_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_STAT_R_TX_OVER register field value. */
+#define ALT_I2C_INTR_STAT_R_TX_OVER_SET_MSK 0x00000008
+/* The mask used to clear the ALT_I2C_INTR_STAT_R_TX_OVER register field value. */
+#define ALT_I2C_INTR_STAT_R_TX_OVER_CLR_MSK 0xfffffff7
+/* The reset value of the ALT_I2C_INTR_STAT_R_TX_OVER register field. */
+#define ALT_I2C_INTR_STAT_R_TX_OVER_RESET 0x0
+/* Extracts the ALT_I2C_INTR_STAT_R_TX_OVER field value from a register. */
+#define ALT_I2C_INTR_STAT_R_TX_OVER_GET(value) (((value) & 0x00000008) >> 3)
+/* Produces a ALT_I2C_INTR_STAT_R_TX_OVER register field value suitable for setting the register. */
+#define ALT_I2C_INTR_STAT_R_TX_OVER_SET(value) (((value) << 3) & 0x00000008)
+
+/*
+ * Field : Interrupt Transmit Empty - r_tx_empty
+ *
+ * This bit is set to 1 when the transmit buffer is at or below the threshold value
+ * set in the ic_tx_tl register. It is automatically cleared by hardware when the
+ * buffer level goes above the threshold. When the ic_enable bit 0 is 0, the TX
+ * FIFO is flushed and held in reset. There the TX FIFO looks like it has no data
+ * within it, so this bit is set to 1, provided there is activity in the master or
+ * slave state machines. When there is no longer activity, this bit is set to 0.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_STAT_R_TX_EMPTY register field. */
+#define ALT_I2C_INTR_STAT_R_TX_EMPTY_LSB 4
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_STAT_R_TX_EMPTY register field. */
+#define ALT_I2C_INTR_STAT_R_TX_EMPTY_MSB 4
+/* The width in bits of the ALT_I2C_INTR_STAT_R_TX_EMPTY register field. */
+#define ALT_I2C_INTR_STAT_R_TX_EMPTY_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_STAT_R_TX_EMPTY register field value. */
+#define ALT_I2C_INTR_STAT_R_TX_EMPTY_SET_MSK 0x00000010
+/* The mask used to clear the ALT_I2C_INTR_STAT_R_TX_EMPTY register field value. */
+#define ALT_I2C_INTR_STAT_R_TX_EMPTY_CLR_MSK 0xffffffef
+/* The reset value of the ALT_I2C_INTR_STAT_R_TX_EMPTY register field. */
+#define ALT_I2C_INTR_STAT_R_TX_EMPTY_RESET 0x0
+/* Extracts the ALT_I2C_INTR_STAT_R_TX_EMPTY field value from a register. */
+#define ALT_I2C_INTR_STAT_R_TX_EMPTY_GET(value) (((value) & 0x00000010) >> 4)
+/* Produces a ALT_I2C_INTR_STAT_R_TX_EMPTY register field value suitable for setting the register. */
+#define ALT_I2C_INTR_STAT_R_TX_EMPTY_SET(value) (((value) << 4) & 0x00000010)
+
+/*
+ * Field : Interrupt Read Request - r_rd_req
+ *
+ * This bit is set to 1 when i2c is acting as a slave and another I2C master is
+ * attempting to read data from I2C. The I2C holds the I2C bus in a wait state
+ * (SCL=0) until this interrupt is serviced, which means that the slave has been
+ * addressed by a remote master that is asking for data to be transferred. The
+ * processor must respond to this interrupt and then write the requested data to
+ * the IC_DATA_CMD register. This bit is set to 0 just after the processor reads
+ * the ic_clr_rd_req register.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_STAT_R_RD_REQ register field. */
+#define ALT_I2C_INTR_STAT_R_RD_REQ_LSB 5
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_STAT_R_RD_REQ register field. */
+#define ALT_I2C_INTR_STAT_R_RD_REQ_MSB 5
+/* The width in bits of the ALT_I2C_INTR_STAT_R_RD_REQ register field. */
+#define ALT_I2C_INTR_STAT_R_RD_REQ_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_STAT_R_RD_REQ register field value. */
+#define ALT_I2C_INTR_STAT_R_RD_REQ_SET_MSK 0x00000020
+/* The mask used to clear the ALT_I2C_INTR_STAT_R_RD_REQ register field value. */
+#define ALT_I2C_INTR_STAT_R_RD_REQ_CLR_MSK 0xffffffdf
+/* The reset value of the ALT_I2C_INTR_STAT_R_RD_REQ register field. */
+#define ALT_I2C_INTR_STAT_R_RD_REQ_RESET 0x0
+/* Extracts the ALT_I2C_INTR_STAT_R_RD_REQ field value from a register. */
+#define ALT_I2C_INTR_STAT_R_RD_REQ_GET(value) (((value) & 0x00000020) >> 5)
+/* Produces a ALT_I2C_INTR_STAT_R_RD_REQ register field value suitable for setting the register. */
+#define ALT_I2C_INTR_STAT_R_RD_REQ_SET(value) (((value) << 5) & 0x00000020)
+
+/*
+ * Field : Interrupt TX Abort - r_tx_abrt
+ *
+ * This bit indicates if I2C, as an I2C transmitter, is unable to complete the
+ * intended actions on the contents of the transmit FIFO. This situation can occur
+ * both as an I2C master or an I2C slave, and is referred to as a 'transmit
+ * abort'.When this bit is set to 1, the ic_tx_abrt_source register indicates the
+ * reason why the transmit abort takes places.
+ *
+ * NOTE: The I2C flushes/resets/empties the TX FIFO whenever this bit is set. The
+ * TX FIFO remains in this flushed state until the register ic_clr_tx_abrt is read.
+ * Once this read is performed, the TX FIFO is then ready to accept more data bytes
+ * from the APB interface.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_STAT_R_TX_ABRT register field. */
+#define ALT_I2C_INTR_STAT_R_TX_ABRT_LSB 6
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_STAT_R_TX_ABRT register field. */
+#define ALT_I2C_INTR_STAT_R_TX_ABRT_MSB 6
+/* The width in bits of the ALT_I2C_INTR_STAT_R_TX_ABRT register field. */
+#define ALT_I2C_INTR_STAT_R_TX_ABRT_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_STAT_R_TX_ABRT register field value. */
+#define ALT_I2C_INTR_STAT_R_TX_ABRT_SET_MSK 0x00000040
+/* The mask used to clear the ALT_I2C_INTR_STAT_R_TX_ABRT register field value. */
+#define ALT_I2C_INTR_STAT_R_TX_ABRT_CLR_MSK 0xffffffbf
+/* The reset value of the ALT_I2C_INTR_STAT_R_TX_ABRT register field. */
+#define ALT_I2C_INTR_STAT_R_TX_ABRT_RESET 0x0
+/* Extracts the ALT_I2C_INTR_STAT_R_TX_ABRT field value from a register. */
+#define ALT_I2C_INTR_STAT_R_TX_ABRT_GET(value) (((value) & 0x00000040) >> 6)
+/* Produces a ALT_I2C_INTR_STAT_R_TX_ABRT register field value suitable for setting the register. */
+#define ALT_I2C_INTR_STAT_R_TX_ABRT_SET(value) (((value) << 6) & 0x00000040)
+
+/*
+ * Field : Interrupt RX Done - r_rx_done
+ *
+ * When the I2C is acting as a slave-transmitter, this bit is set to 1, if the
+ * master does not acknowledge a transmitted byte. This occurs on the last byte of
+ * the transmission, indicating that the transmission is done.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_STAT_R_RX_DONE register field. */
+#define ALT_I2C_INTR_STAT_R_RX_DONE_LSB 7
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_STAT_R_RX_DONE register field. */
+#define ALT_I2C_INTR_STAT_R_RX_DONE_MSB 7
+/* The width in bits of the ALT_I2C_INTR_STAT_R_RX_DONE register field. */
+#define ALT_I2C_INTR_STAT_R_RX_DONE_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_STAT_R_RX_DONE register field value. */
+#define ALT_I2C_INTR_STAT_R_RX_DONE_SET_MSK 0x00000080
+/* The mask used to clear the ALT_I2C_INTR_STAT_R_RX_DONE register field value. */
+#define ALT_I2C_INTR_STAT_R_RX_DONE_CLR_MSK 0xffffff7f
+/* The reset value of the ALT_I2C_INTR_STAT_R_RX_DONE register field. */
+#define ALT_I2C_INTR_STAT_R_RX_DONE_RESET 0x0
+/* Extracts the ALT_I2C_INTR_STAT_R_RX_DONE field value from a register. */
+#define ALT_I2C_INTR_STAT_R_RX_DONE_GET(value) (((value) & 0x00000080) >> 7)
+/* Produces a ALT_I2C_INTR_STAT_R_RX_DONE register field value suitable for setting the register. */
+#define ALT_I2C_INTR_STAT_R_RX_DONE_SET(value) (((value) << 7) & 0x00000080)
+
+/*
+ * Field : Interrupt R_activity - r_activity
+ *
+ * This bit captures I2C activity and stays set until it is cleared. There are four
+ * ways to clear it:
+ *
+ * * Disabling the I2C
+ *
+ * * Reading the ic_clr_activity register
+ *
+ * * Reading the ic_clr_intr register
+ *
+ * * I2C reset
+ *
+ * Once this bit is set, it stays set unless one of the four methods is used to
+ * clear it. Even if the I2C module is idle, this bit remains set until cleared,
+ * indicating that there was activity on the bus.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_STAT_R_ACTIVITY register field. */
+#define ALT_I2C_INTR_STAT_R_ACTIVITY_LSB 8
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_STAT_R_ACTIVITY register field. */
+#define ALT_I2C_INTR_STAT_R_ACTIVITY_MSB 8
+/* The width in bits of the ALT_I2C_INTR_STAT_R_ACTIVITY register field. */
+#define ALT_I2C_INTR_STAT_R_ACTIVITY_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_STAT_R_ACTIVITY register field value. */
+#define ALT_I2C_INTR_STAT_R_ACTIVITY_SET_MSK 0x00000100
+/* The mask used to clear the ALT_I2C_INTR_STAT_R_ACTIVITY register field value. */
+#define ALT_I2C_INTR_STAT_R_ACTIVITY_CLR_MSK 0xfffffeff
+/* The reset value of the ALT_I2C_INTR_STAT_R_ACTIVITY register field. */
+#define ALT_I2C_INTR_STAT_R_ACTIVITY_RESET 0x0
+/* Extracts the ALT_I2C_INTR_STAT_R_ACTIVITY field value from a register. */
+#define ALT_I2C_INTR_STAT_R_ACTIVITY_GET(value) (((value) & 0x00000100) >> 8)
+/* Produces a ALT_I2C_INTR_STAT_R_ACTIVITY register field value suitable for setting the register. */
+#define ALT_I2C_INTR_STAT_R_ACTIVITY_SET(value) (((value) << 8) & 0x00000100)
+
+/*
+ * Field : Interrupt Stop Detect - r_stop_det
+ *
+ * Indicates whether a STOP condition has occurred on the I2C interface regardless
+ * of whether I2C is operating in slave or master mode.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_STAT_R_STOP_DET register field. */
+#define ALT_I2C_INTR_STAT_R_STOP_DET_LSB 9
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_STAT_R_STOP_DET register field. */
+#define ALT_I2C_INTR_STAT_R_STOP_DET_MSB 9
+/* The width in bits of the ALT_I2C_INTR_STAT_R_STOP_DET register field. */
+#define ALT_I2C_INTR_STAT_R_STOP_DET_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_STAT_R_STOP_DET register field value. */
+#define ALT_I2C_INTR_STAT_R_STOP_DET_SET_MSK 0x00000200
+/* The mask used to clear the ALT_I2C_INTR_STAT_R_STOP_DET register field value. */
+#define ALT_I2C_INTR_STAT_R_STOP_DET_CLR_MSK 0xfffffdff
+/* The reset value of the ALT_I2C_INTR_STAT_R_STOP_DET register field. */
+#define ALT_I2C_INTR_STAT_R_STOP_DET_RESET 0x0
+/* Extracts the ALT_I2C_INTR_STAT_R_STOP_DET field value from a register. */
+#define ALT_I2C_INTR_STAT_R_STOP_DET_GET(value) (((value) & 0x00000200) >> 9)
+/* Produces a ALT_I2C_INTR_STAT_R_STOP_DET register field value suitable for setting the register. */
+#define ALT_I2C_INTR_STAT_R_STOP_DET_SET(value) (((value) << 9) & 0x00000200)
+
+/*
+ * Field : Interrupt Start Detect - r_start_det
+ *
+ * Indicates whether a START or RESTART condition has occurred on the I2C interface
+ * regardless of whether I2C is operating in slave or master mode.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_STAT_R_START_DET register field. */
+#define ALT_I2C_INTR_STAT_R_START_DET_LSB 10
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_STAT_R_START_DET register field. */
+#define ALT_I2C_INTR_STAT_R_START_DET_MSB 10
+/* The width in bits of the ALT_I2C_INTR_STAT_R_START_DET register field. */
+#define ALT_I2C_INTR_STAT_R_START_DET_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_STAT_R_START_DET register field value. */
+#define ALT_I2C_INTR_STAT_R_START_DET_SET_MSK 0x00000400
+/* The mask used to clear the ALT_I2C_INTR_STAT_R_START_DET register field value. */
+#define ALT_I2C_INTR_STAT_R_START_DET_CLR_MSK 0xfffffbff
+/* The reset value of the ALT_I2C_INTR_STAT_R_START_DET register field. */
+#define ALT_I2C_INTR_STAT_R_START_DET_RESET 0x0
+/* Extracts the ALT_I2C_INTR_STAT_R_START_DET field value from a register. */
+#define ALT_I2C_INTR_STAT_R_START_DET_GET(value) (((value) & 0x00000400) >> 10)
+/* Produces a ALT_I2C_INTR_STAT_R_START_DET register field value suitable for setting the register. */
+#define ALT_I2C_INTR_STAT_R_START_DET_SET(value) (((value) << 10) & 0x00000400)
+
+/*
+ * Field : Interrupt General Call - r_gen_call
+ *
+ * Set only when a General Call address is received and it is acknowledged. It
+ * stays set until it is cleared either by disabling I2C or when the CPU reads bit
+ * 0 of the ic_clr_gen_call register. I2C stores the received data in the Rx
+ * buffer.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_STAT_R_GEN_CALL register field. */
+#define ALT_I2C_INTR_STAT_R_GEN_CALL_LSB 11
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_STAT_R_GEN_CALL register field. */
+#define ALT_I2C_INTR_STAT_R_GEN_CALL_MSB 11
+/* The width in bits of the ALT_I2C_INTR_STAT_R_GEN_CALL register field. */
+#define ALT_I2C_INTR_STAT_R_GEN_CALL_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_STAT_R_GEN_CALL register field value. */
+#define ALT_I2C_INTR_STAT_R_GEN_CALL_SET_MSK 0x00000800
+/* The mask used to clear the ALT_I2C_INTR_STAT_R_GEN_CALL register field value. */
+#define ALT_I2C_INTR_STAT_R_GEN_CALL_CLR_MSK 0xfffff7ff
+/* The reset value of the ALT_I2C_INTR_STAT_R_GEN_CALL register field. */
+#define ALT_I2C_INTR_STAT_R_GEN_CALL_RESET 0x0
+/* Extracts the ALT_I2C_INTR_STAT_R_GEN_CALL field value from a register. */
+#define ALT_I2C_INTR_STAT_R_GEN_CALL_GET(value) (((value) & 0x00000800) >> 11)
+/* Produces a ALT_I2C_INTR_STAT_R_GEN_CALL register field value suitable for setting the register. */
+#define ALT_I2C_INTR_STAT_R_GEN_CALL_SET(value) (((value) << 11) & 0x00000800)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_INTR_STAT.
+ */
+struct ALT_I2C_INTR_STAT_s
+{
+ const uint32_t r_rx_under : 1; /* Receiver Under */
+ const uint32_t r_rx_over : 1; /* Receiver Over */
+ const uint32_t r_rx_full : 1; /* Receive Full */
+ const uint32_t r_tx_over : 1; /* Interrupt Transmit Over */
+ const uint32_t r_tx_empty : 1; /* Interrupt Transmit Empty */
+ const uint32_t r_rd_req : 1; /* Interrupt Read Request */
+ const uint32_t r_tx_abrt : 1; /* Interrupt TX Abort */
+ const uint32_t r_rx_done : 1; /* Interrupt RX Done */
+ const uint32_t r_activity : 1; /* Interrupt R_activity */
+ const uint32_t r_stop_det : 1; /* Interrupt Stop Detect */
+ const uint32_t r_start_det : 1; /* Interrupt Start Detect */
+ const uint32_t r_gen_call : 1; /* Interrupt General Call */
+ uint32_t : 20; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_INTR_STAT. */
+typedef volatile struct ALT_I2C_INTR_STAT_s ALT_I2C_INTR_STAT_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_INTR_STAT register from the beginning of the component. */
+#define ALT_I2C_INTR_STAT_OFST 0x2c
+/* The address of the ALT_I2C_INTR_STAT register. */
+#define ALT_I2C_INTR_STAT_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_INTR_STAT_OFST))
+
+/*
+ * Register : Interrupt Mask Register - ic_intr_mask
+ *
+ * These bits mask their corresponding interrupt status bits.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :--------|:-------|:------|:----------------
+ * [0] | RW | 0x1 | Mask RX Under
+ * [1] | RW | 0x1 | RX Buffer Over
+ * [2] | RW | 0x1 | RX Buffer Full
+ * [3] | RW | 0x1 | TX Buffer Over
+ * [4] | RW | 0x1 | TX Buffer Empty
+ * [5] | RW | 0x1 | Read Request
+ * [6] | RW | 0x1 | TX Abort
+ * [7] | RW | 0x1 | RX Done
+ * [8] | RW | 0x0 | Activity Bit
+ * [9] | RW | 0x0 | Stop Detect
+ * [10] | RW | 0x0 | Start Detect
+ * [11] | RW | 0x1 | General Call
+ * [31:12] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Mask RX Under - m_rx_under
+ *
+ * Set if the processor attempts to read the receive buffer when it is empty by
+ * reading from the ic_data_cmd register. If the module is disabled ic_enable[0]=0,
+ * this bit keeps its level until the master or slave state machines go into idle,
+ * and then this interrupt is cleared.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_MSK_M_RX_UNDER register field. */
+#define ALT_I2C_INTR_MSK_M_RX_UNDER_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_MSK_M_RX_UNDER register field. */
+#define ALT_I2C_INTR_MSK_M_RX_UNDER_MSB 0
+/* The width in bits of the ALT_I2C_INTR_MSK_M_RX_UNDER register field. */
+#define ALT_I2C_INTR_MSK_M_RX_UNDER_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_MSK_M_RX_UNDER register field value. */
+#define ALT_I2C_INTR_MSK_M_RX_UNDER_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_INTR_MSK_M_RX_UNDER register field value. */
+#define ALT_I2C_INTR_MSK_M_RX_UNDER_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_INTR_MSK_M_RX_UNDER register field. */
+#define ALT_I2C_INTR_MSK_M_RX_UNDER_RESET 0x1
+/* Extracts the ALT_I2C_INTR_MSK_M_RX_UNDER field value from a register. */
+#define ALT_I2C_INTR_MSK_M_RX_UNDER_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_INTR_MSK_M_RX_UNDER register field value suitable for setting the register. */
+#define ALT_I2C_INTR_MSK_M_RX_UNDER_SET(value) (((value) << 0) & 0x00000001)
+
+/*
+ * Field : RX Buffer Over - m_rx_over
+ *
+ * Set if the receive buffer is completely filled to 64 and an additional byte is
+ * received from an external I2C device. The I2C acknowledges this, but any data
+ * bytes received after the FIFO is full are lost. If the module is disabled
+ * ic_enable[0]=0, this bit keeps its level until the master or slave state
+ * machines go into idle, then this interrupt is cleared.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_MSK_M_RX_OVER register field. */
+#define ALT_I2C_INTR_MSK_M_RX_OVER_LSB 1
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_MSK_M_RX_OVER register field. */
+#define ALT_I2C_INTR_MSK_M_RX_OVER_MSB 1
+/* The width in bits of the ALT_I2C_INTR_MSK_M_RX_OVER register field. */
+#define ALT_I2C_INTR_MSK_M_RX_OVER_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_MSK_M_RX_OVER register field value. */
+#define ALT_I2C_INTR_MSK_M_RX_OVER_SET_MSK 0x00000002
+/* The mask used to clear the ALT_I2C_INTR_MSK_M_RX_OVER register field value. */
+#define ALT_I2C_INTR_MSK_M_RX_OVER_CLR_MSK 0xfffffffd
+/* The reset value of the ALT_I2C_INTR_MSK_M_RX_OVER register field. */
+#define ALT_I2C_INTR_MSK_M_RX_OVER_RESET 0x1
+/* Extracts the ALT_I2C_INTR_MSK_M_RX_OVER field value from a register. */
+#define ALT_I2C_INTR_MSK_M_RX_OVER_GET(value) (((value) & 0x00000002) >> 1)
+/* Produces a ALT_I2C_INTR_MSK_M_RX_OVER register field value suitable for setting the register. */
+#define ALT_I2C_INTR_MSK_M_RX_OVER_SET(value) (((value) << 1) & 0x00000002)
+
+/*
+ * Field : RX Buffer Full - m_rx_full
+ *
+ * Set when the receive buffer reaches or goes above the RX_TL threshold in the
+ * ic_rx_tl register. It is automatically cleared by hardware when buffer level
+ * goes below the threshold. If the module is disabled ic_enable[0]=0, the RX FIFO
+ * is flushed and held in reset; therefore the RX FIFO is not full. So this bit is
+ * cleared once the ic_enable bit 0 is programmed with a 0, regardless of the
+ * activity that continues.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_MSK_M_RX_FULL register field. */
+#define ALT_I2C_INTR_MSK_M_RX_FULL_LSB 2
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_MSK_M_RX_FULL register field. */
+#define ALT_I2C_INTR_MSK_M_RX_FULL_MSB 2
+/* The width in bits of the ALT_I2C_INTR_MSK_M_RX_FULL register field. */
+#define ALT_I2C_INTR_MSK_M_RX_FULL_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_MSK_M_RX_FULL register field value. */
+#define ALT_I2C_INTR_MSK_M_RX_FULL_SET_MSK 0x00000004
+/* The mask used to clear the ALT_I2C_INTR_MSK_M_RX_FULL register field value. */
+#define ALT_I2C_INTR_MSK_M_RX_FULL_CLR_MSK 0xfffffffb
+/* The reset value of the ALT_I2C_INTR_MSK_M_RX_FULL register field. */
+#define ALT_I2C_INTR_MSK_M_RX_FULL_RESET 0x1
+/* Extracts the ALT_I2C_INTR_MSK_M_RX_FULL field value from a register. */
+#define ALT_I2C_INTR_MSK_M_RX_FULL_GET(value) (((value) & 0x00000004) >> 2)
+/* Produces a ALT_I2C_INTR_MSK_M_RX_FULL register field value suitable for setting the register. */
+#define ALT_I2C_INTR_MSK_M_RX_FULL_SET(value) (((value) << 2) & 0x00000004)
+
+/*
+ * Field : TX Buffer Over - m_tx_over
+ *
+ * Set during transmit if the transmit buffer is filled to 64 and the processor
+ * attempts to issue another I2C command by writing to the ic_data_cmd register.
+ * When the module is disabled, this bit keeps its level until the master or slave
+ * state machines go into idle, then this interrupt is cleared.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_MSK_M_TX_OVER register field. */
+#define ALT_I2C_INTR_MSK_M_TX_OVER_LSB 3
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_MSK_M_TX_OVER register field. */
+#define ALT_I2C_INTR_MSK_M_TX_OVER_MSB 3
+/* The width in bits of the ALT_I2C_INTR_MSK_M_TX_OVER register field. */
+#define ALT_I2C_INTR_MSK_M_TX_OVER_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_MSK_M_TX_OVER register field value. */
+#define ALT_I2C_INTR_MSK_M_TX_OVER_SET_MSK 0x00000008
+/* The mask used to clear the ALT_I2C_INTR_MSK_M_TX_OVER register field value. */
+#define ALT_I2C_INTR_MSK_M_TX_OVER_CLR_MSK 0xfffffff7
+/* The reset value of the ALT_I2C_INTR_MSK_M_TX_OVER register field. */
+#define ALT_I2C_INTR_MSK_M_TX_OVER_RESET 0x1
+/* Extracts the ALT_I2C_INTR_MSK_M_TX_OVER field value from a register. */
+#define ALT_I2C_INTR_MSK_M_TX_OVER_GET(value) (((value) & 0x00000008) >> 3)
+/* Produces a ALT_I2C_INTR_MSK_M_TX_OVER register field value suitable for setting the register. */
+#define ALT_I2C_INTR_MSK_M_TX_OVER_SET(value) (((value) << 3) & 0x00000008)
+
+/*
+ * Field : TX Buffer Empty - m_tx_empty
+ *
+ * This bit is set to 1 when the transmit buffer is at or below the threshold value
+ * set in the ic_tx_tl register. It is automatically cleared by hardware when the
+ * buffer level goes above the threshold. When the ic_enable bit 0 is 0, the TX
+ * FIFO is flushed and held in reset. There the TX FIFO looks like it has no data
+ * within it, so this bit is set to 1, provided there is activity in the master or
+ * slave state machines. When there is no longer activity, then this bit is set to
+ * 0.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_MSK_M_TX_EMPTY register field. */
+#define ALT_I2C_INTR_MSK_M_TX_EMPTY_LSB 4
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_MSK_M_TX_EMPTY register field. */
+#define ALT_I2C_INTR_MSK_M_TX_EMPTY_MSB 4
+/* The width in bits of the ALT_I2C_INTR_MSK_M_TX_EMPTY register field. */
+#define ALT_I2C_INTR_MSK_M_TX_EMPTY_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_MSK_M_TX_EMPTY register field value. */
+#define ALT_I2C_INTR_MSK_M_TX_EMPTY_SET_MSK 0x00000010
+/* The mask used to clear the ALT_I2C_INTR_MSK_M_TX_EMPTY register field value. */
+#define ALT_I2C_INTR_MSK_M_TX_EMPTY_CLR_MSK 0xffffffef
+/* The reset value of the ALT_I2C_INTR_MSK_M_TX_EMPTY register field. */
+#define ALT_I2C_INTR_MSK_M_TX_EMPTY_RESET 0x1
+/* Extracts the ALT_I2C_INTR_MSK_M_TX_EMPTY field value from a register. */
+#define ALT_I2C_INTR_MSK_M_TX_EMPTY_GET(value) (((value) & 0x00000010) >> 4)
+/* Produces a ALT_I2C_INTR_MSK_M_TX_EMPTY register field value suitable for setting the register. */
+#define ALT_I2C_INTR_MSK_M_TX_EMPTY_SET(value) (((value) << 4) & 0x00000010)
+
+/*
+ * Field : Read Request - m_rd_req
+ *
+ * This bit is set to 1 when I2C is acting as a slave and another I2C master is
+ * attempting to read data from I2C. The I2C holds the I2C bus in a wait state
+ * (SCL=0) until this interrupt is serviced, which means that the slave has been
+ * addressed by a remote master that is asking for data to be transferred. The
+ * processor must respond to this interrupt and then write the requested data to
+ * the ic_data_cmd register. This bit is set to 0 just after the processor reads
+ * the ic_clr_rd_req register.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_MSK_M_RD_REQ register field. */
+#define ALT_I2C_INTR_MSK_M_RD_REQ_LSB 5
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_MSK_M_RD_REQ register field. */
+#define ALT_I2C_INTR_MSK_M_RD_REQ_MSB 5
+/* The width in bits of the ALT_I2C_INTR_MSK_M_RD_REQ register field. */
+#define ALT_I2C_INTR_MSK_M_RD_REQ_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_MSK_M_RD_REQ register field value. */
+#define ALT_I2C_INTR_MSK_M_RD_REQ_SET_MSK 0x00000020
+/* The mask used to clear the ALT_I2C_INTR_MSK_M_RD_REQ register field value. */
+#define ALT_I2C_INTR_MSK_M_RD_REQ_CLR_MSK 0xffffffdf
+/* The reset value of the ALT_I2C_INTR_MSK_M_RD_REQ register field. */
+#define ALT_I2C_INTR_MSK_M_RD_REQ_RESET 0x1
+/* Extracts the ALT_I2C_INTR_MSK_M_RD_REQ field value from a register. */
+#define ALT_I2C_INTR_MSK_M_RD_REQ_GET(value) (((value) & 0x00000020) >> 5)
+/* Produces a ALT_I2C_INTR_MSK_M_RD_REQ register field value suitable for setting the register. */
+#define ALT_I2C_INTR_MSK_M_RD_REQ_SET(value) (((value) << 5) & 0x00000020)
+
+/*
+ * Field : TX Abort - m_tx_abrt
+ *
+ * This bit indicates if I2C, as an I2C transmitter, is unable to complete the
+ * intended actions on the contents of the transmit FIFO. This situation can occur
+ * both as an I2C master or an I2C slave, and is referred to as a 'transmit abort'.
+ * When this bit is set to 1, the ic_tx_abrt_source register indicates the reason
+ * why the transmit abort takes places.
+ *
+ * NOTE: The I2C flushes/resets/empties the TX FIFO whenever this bit is set. The
+ * TX FIFO remains in this flushed state until the register ic_clr_tx_abrt is read.
+ * Once this read is performed, the TX FIFO is then ready to accept more data bytes
+ * from the APB interface.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_MSK_M_TX_ABRT register field. */
+#define ALT_I2C_INTR_MSK_M_TX_ABRT_LSB 6
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_MSK_M_TX_ABRT register field. */
+#define ALT_I2C_INTR_MSK_M_TX_ABRT_MSB 6
+/* The width in bits of the ALT_I2C_INTR_MSK_M_TX_ABRT register field. */
+#define ALT_I2C_INTR_MSK_M_TX_ABRT_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_MSK_M_TX_ABRT register field value. */
+#define ALT_I2C_INTR_MSK_M_TX_ABRT_SET_MSK 0x00000040
+/* The mask used to clear the ALT_I2C_INTR_MSK_M_TX_ABRT register field value. */
+#define ALT_I2C_INTR_MSK_M_TX_ABRT_CLR_MSK 0xffffffbf
+/* The reset value of the ALT_I2C_INTR_MSK_M_TX_ABRT register field. */
+#define ALT_I2C_INTR_MSK_M_TX_ABRT_RESET 0x1
+/* Extracts the ALT_I2C_INTR_MSK_M_TX_ABRT field value from a register. */
+#define ALT_I2C_INTR_MSK_M_TX_ABRT_GET(value) (((value) & 0x00000040) >> 6)
+/* Produces a ALT_I2C_INTR_MSK_M_TX_ABRT register field value suitable for setting the register. */
+#define ALT_I2C_INTR_MSK_M_TX_ABRT_SET(value) (((value) << 6) & 0x00000040)
+
+/*
+ * Field : RX Done - m_rx_done
+ *
+ * When the I2C is acting as a slave-transmitter, this bit is set to 1, if the
+ * master does not acknowledge a transmitted byte. This occurs on the last byte of
+ * the transmission, indicating that the transmission is done.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_MSK_M_RX_DONE register field. */
+#define ALT_I2C_INTR_MSK_M_RX_DONE_LSB 7
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_MSK_M_RX_DONE register field. */
+#define ALT_I2C_INTR_MSK_M_RX_DONE_MSB 7
+/* The width in bits of the ALT_I2C_INTR_MSK_M_RX_DONE register field. */
+#define ALT_I2C_INTR_MSK_M_RX_DONE_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_MSK_M_RX_DONE register field value. */
+#define ALT_I2C_INTR_MSK_M_RX_DONE_SET_MSK 0x00000080
+/* The mask used to clear the ALT_I2C_INTR_MSK_M_RX_DONE register field value. */
+#define ALT_I2C_INTR_MSK_M_RX_DONE_CLR_MSK 0xffffff7f
+/* The reset value of the ALT_I2C_INTR_MSK_M_RX_DONE register field. */
+#define ALT_I2C_INTR_MSK_M_RX_DONE_RESET 0x1
+/* Extracts the ALT_I2C_INTR_MSK_M_RX_DONE field value from a register. */
+#define ALT_I2C_INTR_MSK_M_RX_DONE_GET(value) (((value) & 0x00000080) >> 7)
+/* Produces a ALT_I2C_INTR_MSK_M_RX_DONE register field value suitable for setting the register. */
+#define ALT_I2C_INTR_MSK_M_RX_DONE_SET(value) (((value) << 7) & 0x00000080)
+
+/*
+ * Field : Activity Bit - m_activity
+ *
+ * This bit captures i2c activity and stays set until it is cleared. There are four
+ * ways to clear it:
+ *
+ * * Disabling the i2c
+ *
+ * * Reading the ic_clr_activity register
+ *
+ * * Reading the ic_clr_intr register
+ *
+ * * System reset
+ *
+ * Once this bit is set, it stays set unless one of the four methods is used to
+ * clear it. Even if the I2C module is idle, this bit remains set until cleared,
+ * indicating that there was activity on the bus.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_MSK_M_ACTIVITY register field. */
+#define ALT_I2C_INTR_MSK_M_ACTIVITY_LSB 8
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_MSK_M_ACTIVITY register field. */
+#define ALT_I2C_INTR_MSK_M_ACTIVITY_MSB 8
+/* The width in bits of the ALT_I2C_INTR_MSK_M_ACTIVITY register field. */
+#define ALT_I2C_INTR_MSK_M_ACTIVITY_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_MSK_M_ACTIVITY register field value. */
+#define ALT_I2C_INTR_MSK_M_ACTIVITY_SET_MSK 0x00000100
+/* The mask used to clear the ALT_I2C_INTR_MSK_M_ACTIVITY register field value. */
+#define ALT_I2C_INTR_MSK_M_ACTIVITY_CLR_MSK 0xfffffeff
+/* The reset value of the ALT_I2C_INTR_MSK_M_ACTIVITY register field. */
+#define ALT_I2C_INTR_MSK_M_ACTIVITY_RESET 0x0
+/* Extracts the ALT_I2C_INTR_MSK_M_ACTIVITY field value from a register. */
+#define ALT_I2C_INTR_MSK_M_ACTIVITY_GET(value) (((value) & 0x00000100) >> 8)
+/* Produces a ALT_I2C_INTR_MSK_M_ACTIVITY register field value suitable for setting the register. */
+#define ALT_I2C_INTR_MSK_M_ACTIVITY_SET(value) (((value) << 8) & 0x00000100)
+
+/*
+ * Field : Stop Detect - m_stop_det
+ *
+ * Indicates whether a STOP condition has occurred on the I2C interface regardless
+ * of whether i2c is operating in slave or master mode.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_MSK_M_STOP_DET register field. */
+#define ALT_I2C_INTR_MSK_M_STOP_DET_LSB 9
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_MSK_M_STOP_DET register field. */
+#define ALT_I2C_INTR_MSK_M_STOP_DET_MSB 9
+/* The width in bits of the ALT_I2C_INTR_MSK_M_STOP_DET register field. */
+#define ALT_I2C_INTR_MSK_M_STOP_DET_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_MSK_M_STOP_DET register field value. */
+#define ALT_I2C_INTR_MSK_M_STOP_DET_SET_MSK 0x00000200
+/* The mask used to clear the ALT_I2C_INTR_MSK_M_STOP_DET register field value. */
+#define ALT_I2C_INTR_MSK_M_STOP_DET_CLR_MSK 0xfffffdff
+/* The reset value of the ALT_I2C_INTR_MSK_M_STOP_DET register field. */
+#define ALT_I2C_INTR_MSK_M_STOP_DET_RESET 0x0
+/* Extracts the ALT_I2C_INTR_MSK_M_STOP_DET field value from a register. */
+#define ALT_I2C_INTR_MSK_M_STOP_DET_GET(value) (((value) & 0x00000200) >> 9)
+/* Produces a ALT_I2C_INTR_MSK_M_STOP_DET register field value suitable for setting the register. */
+#define ALT_I2C_INTR_MSK_M_STOP_DET_SET(value) (((value) << 9) & 0x00000200)
+
+/*
+ * Field : Start Detect - m_start_det
+ *
+ * Indicates whether a START or RESTART condition has occurred on the I2C interface
+ * regardless of whether I2C is operating in slave or master mode.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_MSK_M_START_DET register field. */
+#define ALT_I2C_INTR_MSK_M_START_DET_LSB 10
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_MSK_M_START_DET register field. */
+#define ALT_I2C_INTR_MSK_M_START_DET_MSB 10
+/* The width in bits of the ALT_I2C_INTR_MSK_M_START_DET register field. */
+#define ALT_I2C_INTR_MSK_M_START_DET_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_MSK_M_START_DET register field value. */
+#define ALT_I2C_INTR_MSK_M_START_DET_SET_MSK 0x00000400
+/* The mask used to clear the ALT_I2C_INTR_MSK_M_START_DET register field value. */
+#define ALT_I2C_INTR_MSK_M_START_DET_CLR_MSK 0xfffffbff
+/* The reset value of the ALT_I2C_INTR_MSK_M_START_DET register field. */
+#define ALT_I2C_INTR_MSK_M_START_DET_RESET 0x0
+/* Extracts the ALT_I2C_INTR_MSK_M_START_DET field value from a register. */
+#define ALT_I2C_INTR_MSK_M_START_DET_GET(value) (((value) & 0x00000400) >> 10)
+/* Produces a ALT_I2C_INTR_MSK_M_START_DET register field value suitable for setting the register. */
+#define ALT_I2C_INTR_MSK_M_START_DET_SET(value) (((value) << 10) & 0x00000400)
+
+/*
+ * Field : General Call - m_gen_call
+ *
+ * Set only when a General Call address is received and it is acknowledged. It
+ * stays set until it is cleared either by disabling I2C or when the CPU reads bit
+ * 0 of the ic_clr_gen_call register. I2C stores the received data in the Rx
+ * buffer.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_INTR_MSK_M_GEN_CALL register field. */
+#define ALT_I2C_INTR_MSK_M_GEN_CALL_LSB 11
+/* The Most Significant Bit (MSB) position of the ALT_I2C_INTR_MSK_M_GEN_CALL register field. */
+#define ALT_I2C_INTR_MSK_M_GEN_CALL_MSB 11
+/* The width in bits of the ALT_I2C_INTR_MSK_M_GEN_CALL register field. */
+#define ALT_I2C_INTR_MSK_M_GEN_CALL_WIDTH 1
+/* The mask used to set the ALT_I2C_INTR_MSK_M_GEN_CALL register field value. */
+#define ALT_I2C_INTR_MSK_M_GEN_CALL_SET_MSK 0x00000800
+/* The mask used to clear the ALT_I2C_INTR_MSK_M_GEN_CALL register field value. */
+#define ALT_I2C_INTR_MSK_M_GEN_CALL_CLR_MSK 0xfffff7ff
+/* The reset value of the ALT_I2C_INTR_MSK_M_GEN_CALL register field. */
+#define ALT_I2C_INTR_MSK_M_GEN_CALL_RESET 0x1
+/* Extracts the ALT_I2C_INTR_MSK_M_GEN_CALL field value from a register. */
+#define ALT_I2C_INTR_MSK_M_GEN_CALL_GET(value) (((value) & 0x00000800) >> 11)
+/* Produces a ALT_I2C_INTR_MSK_M_GEN_CALL register field value suitable for setting the register. */
+#define ALT_I2C_INTR_MSK_M_GEN_CALL_SET(value) (((value) << 11) & 0x00000800)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_INTR_MSK.
+ */
+struct ALT_I2C_INTR_MSK_s
+{
+ uint32_t m_rx_under : 1; /* Mask RX Under */
+ uint32_t m_rx_over : 1; /* RX Buffer Over */
+ uint32_t m_rx_full : 1; /* RX Buffer Full */
+ uint32_t m_tx_over : 1; /* TX Buffer Over */
+ uint32_t m_tx_empty : 1; /* TX Buffer Empty */
+ uint32_t m_rd_req : 1; /* Read Request */
+ uint32_t m_tx_abrt : 1; /* TX Abort */
+ uint32_t m_rx_done : 1; /* RX Done */
+ uint32_t m_activity : 1; /* Activity Bit */
+ uint32_t m_stop_det : 1; /* Stop Detect */
+ uint32_t m_start_det : 1; /* Start Detect */
+ uint32_t m_gen_call : 1; /* General Call */
+ uint32_t : 20; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_INTR_MSK. */
+typedef volatile struct ALT_I2C_INTR_MSK_s ALT_I2C_INTR_MSK_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_INTR_MSK register from the beginning of the component. */
+#define ALT_I2C_INTR_MSK_OFST 0x30
+/* The address of the ALT_I2C_INTR_MSK register. */
+#define ALT_I2C_INTR_MSK_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_INTR_MSK_OFST))
+
+/*
+ * Register : Raw Interrupt Status Register - ic_raw_intr_stat
+ *
+ * Unlike the ic_intr_stat register, these bits are not masked so they always show
+ * the true status of the I2C.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :--------|:-------|:------|:---------------------------
+ * [0] | R | 0x0 | I2C Raw Interrupt RX Under
+ * [1] | R | 0x0 | Raw Interrupt RX Over
+ * [2] | R | 0x0 | Raw Interrupt RX Full
+ * [3] | R | 0x0 | Raw Interrupt TX Over
+ * [4] | R | 0x0 | Raw Interrupt TX Empty
+ * [5] | R | 0x0 | Raw Interrupt Read Request
+ * [6] | R | 0x0 | Raw Interrupt TX Abort
+ * [7] | R | 0x0 | Raw Interrupt RX Done
+ * [8] | R | 0x0 | Raw Interrupt Activity
+ * [9] | R | 0x0 | Raw Interrupt Stop Detect
+ * [10] | R | 0x0 | Raw Interrupt Start Detect
+ * [11] | R | 0x0 | Raw Interrupt General Call
+ * [31:12] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : I2C Raw Interrupt RX Under - rx_under
+ *
+ * Set if the processor attempts to read the receive buffer when it is empty by
+ * reading from the ic_data_cmd register. If the module is disabled ic_enable[0]=0,
+ * this bit keeps its level until the master or slave state machines go into idle,
+ * then this interrupt is cleared.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_RAW_INTR_STAT_RX_UNDER register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_UNDER_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_RAW_INTR_STAT_RX_UNDER register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_UNDER_MSB 0
+/* The width in bits of the ALT_I2C_RAW_INTR_STAT_RX_UNDER register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_UNDER_WIDTH 1
+/* The mask used to set the ALT_I2C_RAW_INTR_STAT_RX_UNDER register field value. */
+#define ALT_I2C_RAW_INTR_STAT_RX_UNDER_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_RAW_INTR_STAT_RX_UNDER register field value. */
+#define ALT_I2C_RAW_INTR_STAT_RX_UNDER_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_RAW_INTR_STAT_RX_UNDER register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_UNDER_RESET 0x0
+/* Extracts the ALT_I2C_RAW_INTR_STAT_RX_UNDER field value from a register. */
+#define ALT_I2C_RAW_INTR_STAT_RX_UNDER_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_RAW_INTR_STAT_RX_UNDER register field value suitable for setting the register. */
+#define ALT_I2C_RAW_INTR_STAT_RX_UNDER_SET(value) (((value) << 0) & 0x00000001)
+
+/*
+ * Field : Raw Interrupt RX Over - rx_over
+ *
+ * Set if the receive buffer is completely filled to 64 and an additional byte is
+ * received from an external I2C device. The I2C acknowledges this, but any data
+ * bytes received after the FIFO is full are lost. If the module is disabled
+ * ic_enable[0]=0), this bit keeps its level until the master or slave state
+ * machines go into then, this interrupt is cleared.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_RAW_INTR_STAT_RX_OVER register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_OVER_LSB 1
+/* The Most Significant Bit (MSB) position of the ALT_I2C_RAW_INTR_STAT_RX_OVER register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_OVER_MSB 1
+/* The width in bits of the ALT_I2C_RAW_INTR_STAT_RX_OVER register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_OVER_WIDTH 1
+/* The mask used to set the ALT_I2C_RAW_INTR_STAT_RX_OVER register field value. */
+#define ALT_I2C_RAW_INTR_STAT_RX_OVER_SET_MSK 0x00000002
+/* The mask used to clear the ALT_I2C_RAW_INTR_STAT_RX_OVER register field value. */
+#define ALT_I2C_RAW_INTR_STAT_RX_OVER_CLR_MSK 0xfffffffd
+/* The reset value of the ALT_I2C_RAW_INTR_STAT_RX_OVER register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_OVER_RESET 0x0
+/* Extracts the ALT_I2C_RAW_INTR_STAT_RX_OVER field value from a register. */
+#define ALT_I2C_RAW_INTR_STAT_RX_OVER_GET(value) (((value) & 0x00000002) >> 1)
+/* Produces a ALT_I2C_RAW_INTR_STAT_RX_OVER register field value suitable for setting the register. */
+#define ALT_I2C_RAW_INTR_STAT_RX_OVER_SET(value) (((value) << 1) & 0x00000002)
+
+/*
+ * Field : Raw Interrupt RX Full - rx_full
+ *
+ * Set when the receive buffer reaches or goes above the RX_TL threshold in the
+ * ic_rx_tl register. It is automatically cleared by hardware when buffer level
+ * goes below the threshold. If the module is disabled ic_enable[0]=0, the RX FIFO
+ * is flushed and held in reset; therefore the RX FIFO is not full. So this bit is
+ * cleared once the ic_enable bit 0 is programmed with a 0, regardless of the
+ * activity that continues.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_RAW_INTR_STAT_RX_FULL register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_FULL_LSB 2
+/* The Most Significant Bit (MSB) position of the ALT_I2C_RAW_INTR_STAT_RX_FULL register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_FULL_MSB 2
+/* The width in bits of the ALT_I2C_RAW_INTR_STAT_RX_FULL register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_FULL_WIDTH 1
+/* The mask used to set the ALT_I2C_RAW_INTR_STAT_RX_FULL register field value. */
+#define ALT_I2C_RAW_INTR_STAT_RX_FULL_SET_MSK 0x00000004
+/* The mask used to clear the ALT_I2C_RAW_INTR_STAT_RX_FULL register field value. */
+#define ALT_I2C_RAW_INTR_STAT_RX_FULL_CLR_MSK 0xfffffffb
+/* The reset value of the ALT_I2C_RAW_INTR_STAT_RX_FULL register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_FULL_RESET 0x0
+/* Extracts the ALT_I2C_RAW_INTR_STAT_RX_FULL field value from a register. */
+#define ALT_I2C_RAW_INTR_STAT_RX_FULL_GET(value) (((value) & 0x00000004) >> 2)
+/* Produces a ALT_I2C_RAW_INTR_STAT_RX_FULL register field value suitable for setting the register. */
+#define ALT_I2C_RAW_INTR_STAT_RX_FULL_SET(value) (((value) << 2) & 0x00000004)
+
+/*
+ * Field : Raw Interrupt TX Over - tx_over
+ *
+ * Set during transmit if the transmit buffer is filled to 64 and the processor
+ * attempts to issue another I2C command by writing to the ic_data_cmd register.
+ * When the module is disabled, this bit keeps its level until the master or slave
+ * state machines go into idle, then this interrupt is cleared.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_RAW_INTR_STAT_TX_OVER register field. */
+#define ALT_I2C_RAW_INTR_STAT_TX_OVER_LSB 3
+/* The Most Significant Bit (MSB) position of the ALT_I2C_RAW_INTR_STAT_TX_OVER register field. */
+#define ALT_I2C_RAW_INTR_STAT_TX_OVER_MSB 3
+/* The width in bits of the ALT_I2C_RAW_INTR_STAT_TX_OVER register field. */
+#define ALT_I2C_RAW_INTR_STAT_TX_OVER_WIDTH 1
+/* The mask used to set the ALT_I2C_RAW_INTR_STAT_TX_OVER register field value. */
+#define ALT_I2C_RAW_INTR_STAT_TX_OVER_SET_MSK 0x00000008
+/* The mask used to clear the ALT_I2C_RAW_INTR_STAT_TX_OVER register field value. */
+#define ALT_I2C_RAW_INTR_STAT_TX_OVER_CLR_MSK 0xfffffff7
+/* The reset value of the ALT_I2C_RAW_INTR_STAT_TX_OVER register field. */
+#define ALT_I2C_RAW_INTR_STAT_TX_OVER_RESET 0x0
+/* Extracts the ALT_I2C_RAW_INTR_STAT_TX_OVER field value from a register. */
+#define ALT_I2C_RAW_INTR_STAT_TX_OVER_GET(value) (((value) & 0x00000008) >> 3)
+/* Produces a ALT_I2C_RAW_INTR_STAT_TX_OVER register field value suitable for setting the register. */
+#define ALT_I2C_RAW_INTR_STAT_TX_OVER_SET(value) (((value) << 3) & 0x00000008)
+
+/*
+ * Field : Raw Interrupt TX Empty - tx_empty
+ *
+ * This bit is set to 1 when the transmit buffer is at or below the threshold value
+ * set in the ic_tx_tl register. It is automatically cleared by hardware when the
+ * buffer level goes above the threshold. When the IC_ENABLE bit 0 is 0, the TX
+ * FIFO is flushed and held in reset. There the TX FIFO looks like it has no data
+ * within it, so this bit is set to 1, provided there is activity in the master or
+ * slave state machines. When there is no longer activity, then this bit is set to
+ * 0.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_RAW_INTR_STAT_TX_EMPTY register field. */
+#define ALT_I2C_RAW_INTR_STAT_TX_EMPTY_LSB 4
+/* The Most Significant Bit (MSB) position of the ALT_I2C_RAW_INTR_STAT_TX_EMPTY register field. */
+#define ALT_I2C_RAW_INTR_STAT_TX_EMPTY_MSB 4
+/* The width in bits of the ALT_I2C_RAW_INTR_STAT_TX_EMPTY register field. */
+#define ALT_I2C_RAW_INTR_STAT_TX_EMPTY_WIDTH 1
+/* The mask used to set the ALT_I2C_RAW_INTR_STAT_TX_EMPTY register field value. */
+#define ALT_I2C_RAW_INTR_STAT_TX_EMPTY_SET_MSK 0x00000010
+/* The mask used to clear the ALT_I2C_RAW_INTR_STAT_TX_EMPTY register field value. */
+#define ALT_I2C_RAW_INTR_STAT_TX_EMPTY_CLR_MSK 0xffffffef
+/* The reset value of the ALT_I2C_RAW_INTR_STAT_TX_EMPTY register field. */
+#define ALT_I2C_RAW_INTR_STAT_TX_EMPTY_RESET 0x0
+/* Extracts the ALT_I2C_RAW_INTR_STAT_TX_EMPTY field value from a register. */
+#define ALT_I2C_RAW_INTR_STAT_TX_EMPTY_GET(value) (((value) & 0x00000010) >> 4)
+/* Produces a ALT_I2C_RAW_INTR_STAT_TX_EMPTY register field value suitable for setting the register. */
+#define ALT_I2C_RAW_INTR_STAT_TX_EMPTY_SET(value) (((value) << 4) & 0x00000010)
+
+/*
+ * Field : Raw Interrupt Read Request - rd_req
+ *
+ * This bit is set to 1 when I2C is acting as a slave and another I2C master is
+ * attempting to read data from I2C. The i2c holds the I2C bus in a wait state
+ * (SCL=0) until this interrupt is serviced, which means that the slave has been
+ * addressed by a remote master that is asking for data to be transferred. The
+ * processor must respond to this interrupt and then write the requested data to
+ * the ic_data_cmd register. This bit is set to 0 just after the processor reads
+ * the ic_clr_rd_req register.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_RAW_INTR_STAT_RD_REQ register field. */
+#define ALT_I2C_RAW_INTR_STAT_RD_REQ_LSB 5
+/* The Most Significant Bit (MSB) position of the ALT_I2C_RAW_INTR_STAT_RD_REQ register field. */
+#define ALT_I2C_RAW_INTR_STAT_RD_REQ_MSB 5
+/* The width in bits of the ALT_I2C_RAW_INTR_STAT_RD_REQ register field. */
+#define ALT_I2C_RAW_INTR_STAT_RD_REQ_WIDTH 1
+/* The mask used to set the ALT_I2C_RAW_INTR_STAT_RD_REQ register field value. */
+#define ALT_I2C_RAW_INTR_STAT_RD_REQ_SET_MSK 0x00000020
+/* The mask used to clear the ALT_I2C_RAW_INTR_STAT_RD_REQ register field value. */
+#define ALT_I2C_RAW_INTR_STAT_RD_REQ_CLR_MSK 0xffffffdf
+/* The reset value of the ALT_I2C_RAW_INTR_STAT_RD_REQ register field. */
+#define ALT_I2C_RAW_INTR_STAT_RD_REQ_RESET 0x0
+/* Extracts the ALT_I2C_RAW_INTR_STAT_RD_REQ field value from a register. */
+#define ALT_I2C_RAW_INTR_STAT_RD_REQ_GET(value) (((value) & 0x00000020) >> 5)
+/* Produces a ALT_I2C_RAW_INTR_STAT_RD_REQ register field value suitable for setting the register. */
+#define ALT_I2C_RAW_INTR_STAT_RD_REQ_SET(value) (((value) << 5) & 0x00000020)
+
+/*
+ * Field : Raw Interrupt TX Abort - tx_abrt
+ *
+ * This bit indicates if I2C, as an I2C transmitter, is unable to complete the
+ * intended actions on the contents of the transmit FIFO. This situation can occur
+ * both as an I2C master or an I2C slave, and is referred to as a 'transmit abort'.
+ * When this bit is set to 1, the IC_TX_ABRT_SOURCE register indicates the reason
+ * why the transmit abort takes places.
+ *
+ * NOTE: The I2C flushes/resets/empties the TX FIFO whenever this bit is set. The
+ * TX FIFO remains in this flushed state until the register ic_clr_tx_abrt is read.
+ * Once this read is performed, the TX FIFO is then ready to accept more data bytes
+ * from the APB interface.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_RAW_INTR_STAT_TX_ABRT register field. */
+#define ALT_I2C_RAW_INTR_STAT_TX_ABRT_LSB 6
+/* The Most Significant Bit (MSB) position of the ALT_I2C_RAW_INTR_STAT_TX_ABRT register field. */
+#define ALT_I2C_RAW_INTR_STAT_TX_ABRT_MSB 6
+/* The width in bits of the ALT_I2C_RAW_INTR_STAT_TX_ABRT register field. */
+#define ALT_I2C_RAW_INTR_STAT_TX_ABRT_WIDTH 1
+/* The mask used to set the ALT_I2C_RAW_INTR_STAT_TX_ABRT register field value. */
+#define ALT_I2C_RAW_INTR_STAT_TX_ABRT_SET_MSK 0x00000040
+/* The mask used to clear the ALT_I2C_RAW_INTR_STAT_TX_ABRT register field value. */
+#define ALT_I2C_RAW_INTR_STAT_TX_ABRT_CLR_MSK 0xffffffbf
+/* The reset value of the ALT_I2C_RAW_INTR_STAT_TX_ABRT register field. */
+#define ALT_I2C_RAW_INTR_STAT_TX_ABRT_RESET 0x0
+/* Extracts the ALT_I2C_RAW_INTR_STAT_TX_ABRT field value from a register. */
+#define ALT_I2C_RAW_INTR_STAT_TX_ABRT_GET(value) (((value) & 0x00000040) >> 6)
+/* Produces a ALT_I2C_RAW_INTR_STAT_TX_ABRT register field value suitable for setting the register. */
+#define ALT_I2C_RAW_INTR_STAT_TX_ABRT_SET(value) (((value) << 6) & 0x00000040)
+
+/*
+ * Field : Raw Interrupt RX Done - rx_done
+ *
+ * When the I2C is acting as a slave-transmitter, this bit is set to 1 if the
+ * master does not acknowledge a transmitted byte. This occurs on the last byte of
+ * the transmission, indicating that the transmission is done.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_RAW_INTR_STAT_RX_DONE register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_DONE_LSB 7
+/* The Most Significant Bit (MSB) position of the ALT_I2C_RAW_INTR_STAT_RX_DONE register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_DONE_MSB 7
+/* The width in bits of the ALT_I2C_RAW_INTR_STAT_RX_DONE register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_DONE_WIDTH 1
+/* The mask used to set the ALT_I2C_RAW_INTR_STAT_RX_DONE register field value. */
+#define ALT_I2C_RAW_INTR_STAT_RX_DONE_SET_MSK 0x00000080
+/* The mask used to clear the ALT_I2C_RAW_INTR_STAT_RX_DONE register field value. */
+#define ALT_I2C_RAW_INTR_STAT_RX_DONE_CLR_MSK 0xffffff7f
+/* The reset value of the ALT_I2C_RAW_INTR_STAT_RX_DONE register field. */
+#define ALT_I2C_RAW_INTR_STAT_RX_DONE_RESET 0x0
+/* Extracts the ALT_I2C_RAW_INTR_STAT_RX_DONE field value from a register. */
+#define ALT_I2C_RAW_INTR_STAT_RX_DONE_GET(value) (((value) & 0x00000080) >> 7)
+/* Produces a ALT_I2C_RAW_INTR_STAT_RX_DONE register field value suitable for setting the register. */
+#define ALT_I2C_RAW_INTR_STAT_RX_DONE_SET(value) (((value) << 7) & 0x00000080)
+
+/*
+ * Field : Raw Interrupt Activity - activity
+ *
+ * This bit captures i2c activity and stays set until it is cleared. There are four
+ * ways to clear it:
+ *
+ * * Disabling the I2C
+ *
+ * * Reading the ic_clr_activity register
+ *
+ * * Reading the ic_clr_intr register
+ *
+ * * System reset
+ *
+ * Once this bit is set, it stays set unless one of the four methods is used to
+ * clear it. Even if the i2c module is idle, this bit remains set until cleared,
+ * indicating that there was activity on the bus.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_RAW_INTR_STAT_ACTIVITY register field. */
+#define ALT_I2C_RAW_INTR_STAT_ACTIVITY_LSB 8
+/* The Most Significant Bit (MSB) position of the ALT_I2C_RAW_INTR_STAT_ACTIVITY register field. */
+#define ALT_I2C_RAW_INTR_STAT_ACTIVITY_MSB 8
+/* The width in bits of the ALT_I2C_RAW_INTR_STAT_ACTIVITY register field. */
+#define ALT_I2C_RAW_INTR_STAT_ACTIVITY_WIDTH 1
+/* The mask used to set the ALT_I2C_RAW_INTR_STAT_ACTIVITY register field value. */
+#define ALT_I2C_RAW_INTR_STAT_ACTIVITY_SET_MSK 0x00000100
+/* The mask used to clear the ALT_I2C_RAW_INTR_STAT_ACTIVITY register field value. */
+#define ALT_I2C_RAW_INTR_STAT_ACTIVITY_CLR_MSK 0xfffffeff
+/* The reset value of the ALT_I2C_RAW_INTR_STAT_ACTIVITY register field. */
+#define ALT_I2C_RAW_INTR_STAT_ACTIVITY_RESET 0x0
+/* Extracts the ALT_I2C_RAW_INTR_STAT_ACTIVITY field value from a register. */
+#define ALT_I2C_RAW_INTR_STAT_ACTIVITY_GET(value) (((value) & 0x00000100) >> 8)
+/* Produces a ALT_I2C_RAW_INTR_STAT_ACTIVITY register field value suitable for setting the register. */
+#define ALT_I2C_RAW_INTR_STAT_ACTIVITY_SET(value) (((value) << 8) & 0x00000100)
+
+/*
+ * Field : Raw Interrupt Stop Detect - stop_det
+ *
+ * Indicates whether a STOP condition has occurred on the I2C interface regardless
+ * of whether I2C is operating in slave or master mode.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_RAW_INTR_STAT_STOP_DET register field. */
+#define ALT_I2C_RAW_INTR_STAT_STOP_DET_LSB 9
+/* The Most Significant Bit (MSB) position of the ALT_I2C_RAW_INTR_STAT_STOP_DET register field. */
+#define ALT_I2C_RAW_INTR_STAT_STOP_DET_MSB 9
+/* The width in bits of the ALT_I2C_RAW_INTR_STAT_STOP_DET register field. */
+#define ALT_I2C_RAW_INTR_STAT_STOP_DET_WIDTH 1
+/* The mask used to set the ALT_I2C_RAW_INTR_STAT_STOP_DET register field value. */
+#define ALT_I2C_RAW_INTR_STAT_STOP_DET_SET_MSK 0x00000200
+/* The mask used to clear the ALT_I2C_RAW_INTR_STAT_STOP_DET register field value. */
+#define ALT_I2C_RAW_INTR_STAT_STOP_DET_CLR_MSK 0xfffffdff
+/* The reset value of the ALT_I2C_RAW_INTR_STAT_STOP_DET register field. */
+#define ALT_I2C_RAW_INTR_STAT_STOP_DET_RESET 0x0
+/* Extracts the ALT_I2C_RAW_INTR_STAT_STOP_DET field value from a register. */
+#define ALT_I2C_RAW_INTR_STAT_STOP_DET_GET(value) (((value) & 0x00000200) >> 9)
+/* Produces a ALT_I2C_RAW_INTR_STAT_STOP_DET register field value suitable for setting the register. */
+#define ALT_I2C_RAW_INTR_STAT_STOP_DET_SET(value) (((value) << 9) & 0x00000200)
+
+/*
+ * Field : Raw Interrupt Start Detect - start_det
+ *
+ * Indicates whether a START or RESTART condition has occurred on the I2C interface
+ * regardless of whether I2C is operating in slave or master mode.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_RAW_INTR_STAT_START_DET register field. */
+#define ALT_I2C_RAW_INTR_STAT_START_DET_LSB 10
+/* The Most Significant Bit (MSB) position of the ALT_I2C_RAW_INTR_STAT_START_DET register field. */
+#define ALT_I2C_RAW_INTR_STAT_START_DET_MSB 10
+/* The width in bits of the ALT_I2C_RAW_INTR_STAT_START_DET register field. */
+#define ALT_I2C_RAW_INTR_STAT_START_DET_WIDTH 1
+/* The mask used to set the ALT_I2C_RAW_INTR_STAT_START_DET register field value. */
+#define ALT_I2C_RAW_INTR_STAT_START_DET_SET_MSK 0x00000400
+/* The mask used to clear the ALT_I2C_RAW_INTR_STAT_START_DET register field value. */
+#define ALT_I2C_RAW_INTR_STAT_START_DET_CLR_MSK 0xfffffbff
+/* The reset value of the ALT_I2C_RAW_INTR_STAT_START_DET register field. */
+#define ALT_I2C_RAW_INTR_STAT_START_DET_RESET 0x0
+/* Extracts the ALT_I2C_RAW_INTR_STAT_START_DET field value from a register. */
+#define ALT_I2C_RAW_INTR_STAT_START_DET_GET(value) (((value) & 0x00000400) >> 10)
+/* Produces a ALT_I2C_RAW_INTR_STAT_START_DET register field value suitable for setting the register. */
+#define ALT_I2C_RAW_INTR_STAT_START_DET_SET(value) (((value) << 10) & 0x00000400)
+
+/*
+ * Field : Raw Interrupt General Call - gen_call
+ *
+ * Set only when a General Call address is received and it is acknowledged. It
+ * stays set until it is cleared either by disabling I2C or when the CPU reads bit
+ * 0 of the ic_clr_gen_call register. I2C stores the received data in the Rx
+ * buffer.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_RAW_INTR_STAT_GEN_CALL register field. */
+#define ALT_I2C_RAW_INTR_STAT_GEN_CALL_LSB 11
+/* The Most Significant Bit (MSB) position of the ALT_I2C_RAW_INTR_STAT_GEN_CALL register field. */
+#define ALT_I2C_RAW_INTR_STAT_GEN_CALL_MSB 11
+/* The width in bits of the ALT_I2C_RAW_INTR_STAT_GEN_CALL register field. */
+#define ALT_I2C_RAW_INTR_STAT_GEN_CALL_WIDTH 1
+/* The mask used to set the ALT_I2C_RAW_INTR_STAT_GEN_CALL register field value. */
+#define ALT_I2C_RAW_INTR_STAT_GEN_CALL_SET_MSK 0x00000800
+/* The mask used to clear the ALT_I2C_RAW_INTR_STAT_GEN_CALL register field value. */
+#define ALT_I2C_RAW_INTR_STAT_GEN_CALL_CLR_MSK 0xfffff7ff
+/* The reset value of the ALT_I2C_RAW_INTR_STAT_GEN_CALL register field. */
+#define ALT_I2C_RAW_INTR_STAT_GEN_CALL_RESET 0x0
+/* Extracts the ALT_I2C_RAW_INTR_STAT_GEN_CALL field value from a register. */
+#define ALT_I2C_RAW_INTR_STAT_GEN_CALL_GET(value) (((value) & 0x00000800) >> 11)
+/* Produces a ALT_I2C_RAW_INTR_STAT_GEN_CALL register field value suitable for setting the register. */
+#define ALT_I2C_RAW_INTR_STAT_GEN_CALL_SET(value) (((value) << 11) & 0x00000800)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_RAW_INTR_STAT.
+ */
+struct ALT_I2C_RAW_INTR_STAT_s
+{
+ const uint32_t rx_under : 1; /* I2C Raw Interrupt RX Under */
+ const uint32_t rx_over : 1; /* Raw Interrupt RX Over */
+ const uint32_t rx_full : 1; /* Raw Interrupt RX Full */
+ const uint32_t tx_over : 1; /* Raw Interrupt TX Over */
+ const uint32_t tx_empty : 1; /* Raw Interrupt TX Empty */
+ const uint32_t rd_req : 1; /* Raw Interrupt Read Request */
+ const uint32_t tx_abrt : 1; /* Raw Interrupt TX Abort */
+ const uint32_t rx_done : 1; /* Raw Interrupt RX Done */
+ const uint32_t activity : 1; /* Raw Interrupt Activity */
+ const uint32_t stop_det : 1; /* Raw Interrupt Stop Detect */
+ const uint32_t start_det : 1; /* Raw Interrupt Start Detect */
+ const uint32_t gen_call : 1; /* Raw Interrupt General Call */
+ uint32_t : 20; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_RAW_INTR_STAT. */
+typedef volatile struct ALT_I2C_RAW_INTR_STAT_s ALT_I2C_RAW_INTR_STAT_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_RAW_INTR_STAT register from the beginning of the component. */
+#define ALT_I2C_RAW_INTR_STAT_OFST 0x34
+/* The address of the ALT_I2C_RAW_INTR_STAT register. */
+#define ALT_I2C_RAW_INTR_STAT_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_RAW_INTR_STAT_OFST))
+
+/*
+ * Register : Receive FIFO Threshold Register - ic_rx_tl
+ *
+ * I2C Receive FIFO Threshold Register.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:-----------------------------
+ * [7:0] | RW | 0x0 | Receive FIFO Threshold Level
+ * [31:8] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Receive FIFO Threshold Level - rx_tl
+ *
+ * Controls the level of entries (or above) that triggers the RX_FULL interrupt
+ * (bit 2 in IC_RAW_INTR_STAT register). The valid range is 0-255, with the
+ * additional restriction that hardware does not allow this value to be set to a
+ * value larger than the depth of the buffer. If an attempt is made to do that, the
+ * actual value set will be the maximum depth of the buffer. A value of 0 sets the
+ * threshold for 1 entry, and a value of 255 sets the threshold for 256 entries.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_RX_TL_RX_TL register field. */
+#define ALT_I2C_RX_TL_RX_TL_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_RX_TL_RX_TL register field. */
+#define ALT_I2C_RX_TL_RX_TL_MSB 7
+/* The width in bits of the ALT_I2C_RX_TL_RX_TL register field. */
+#define ALT_I2C_RX_TL_RX_TL_WIDTH 8
+/* The mask used to set the ALT_I2C_RX_TL_RX_TL register field value. */
+#define ALT_I2C_RX_TL_RX_TL_SET_MSK 0x000000ff
+/* The mask used to clear the ALT_I2C_RX_TL_RX_TL register field value. */
+#define ALT_I2C_RX_TL_RX_TL_CLR_MSK 0xffffff00
+/* The reset value of the ALT_I2C_RX_TL_RX_TL register field. */
+#define ALT_I2C_RX_TL_RX_TL_RESET 0x0
+/* Extracts the ALT_I2C_RX_TL_RX_TL field value from a register. */
+#define ALT_I2C_RX_TL_RX_TL_GET(value) (((value) & 0x000000ff) >> 0)
+/* Produces a ALT_I2C_RX_TL_RX_TL register field value suitable for setting the register. */
+#define ALT_I2C_RX_TL_RX_TL_SET(value) (((value) << 0) & 0x000000ff)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_RX_TL.
+ */
+struct ALT_I2C_RX_TL_s
+{
+ uint32_t rx_tl : 8; /* Receive FIFO Threshold Level */
+ uint32_t : 24; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_RX_TL. */
+typedef volatile struct ALT_I2C_RX_TL_s ALT_I2C_RX_TL_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_RX_TL register from the beginning of the component. */
+#define ALT_I2C_RX_TL_OFST 0x38
+/* The address of the ALT_I2C_RX_TL register. */
+#define ALT_I2C_RX_TL_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_RX_TL_OFST))
+
+/*
+ * Register : Transmit FIFO Threshold Level Register - ic_tx_tl
+ *
+ * Sets FIFO depth for Interrupt.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:------------------------------
+ * [7:0] | RW | 0x0 | Transmit FIFO Threshold Level
+ * [31:8] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Transmit FIFO Threshold Level - tx_tl
+ *
+ * Controls the level of entries (or below) that trigger the TX_EMPTY interrupt
+ * (bit 4 in ic_raw_intr_stat register). The valid range is 0-255, with the
+ * additional restriction that it may not be set to value larger than the depth of
+ * the buffer. If an attempt is made to do that, the actual value set will be the
+ * maximum depth of the buffer. A value of 0 sets the threshold for 0 entries, and
+ * a value of 255 sets the threshold for 255 entries.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_TL_TX_TL register field. */
+#define ALT_I2C_TX_TL_TX_TL_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_TL_TX_TL register field. */
+#define ALT_I2C_TX_TL_TX_TL_MSB 7
+/* The width in bits of the ALT_I2C_TX_TL_TX_TL register field. */
+#define ALT_I2C_TX_TL_TX_TL_WIDTH 8
+/* The mask used to set the ALT_I2C_TX_TL_TX_TL register field value. */
+#define ALT_I2C_TX_TL_TX_TL_SET_MSK 0x000000ff
+/* The mask used to clear the ALT_I2C_TX_TL_TX_TL register field value. */
+#define ALT_I2C_TX_TL_TX_TL_CLR_MSK 0xffffff00
+/* The reset value of the ALT_I2C_TX_TL_TX_TL register field. */
+#define ALT_I2C_TX_TL_TX_TL_RESET 0x0
+/* Extracts the ALT_I2C_TX_TL_TX_TL field value from a register. */
+#define ALT_I2C_TX_TL_TX_TL_GET(value) (((value) & 0x000000ff) >> 0)
+/* Produces a ALT_I2C_TX_TL_TX_TL register field value suitable for setting the register. */
+#define ALT_I2C_TX_TL_TX_TL_SET(value) (((value) << 0) & 0x000000ff)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_TX_TL.
+ */
+struct ALT_I2C_TX_TL_s
+{
+ uint32_t tx_tl : 8; /* Transmit FIFO Threshold Level */
+ uint32_t : 24; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_TX_TL. */
+typedef volatile struct ALT_I2C_TX_TL_s ALT_I2C_TX_TL_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_TX_TL register from the beginning of the component. */
+#define ALT_I2C_TX_TL_OFST 0x3c
+/* The address of the ALT_I2C_TX_TL register. */
+#define ALT_I2C_TX_TL_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_TX_TL_OFST))
+
+/*
+ * Register : Combined and Individual Interrupt Register - ic_clr_intr
+ *
+ * Controls Interrupts
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:---------------------------------------
+ * [0] | R | 0x0 | Combined and Individual Interrupt Bits
+ * [31:1] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Combined and Individual Interrupt Bits - clr_intr
+ *
+ * Read this register to clear the combined interrupt, all individual interrupts,
+ * and the IC_TX_ABRT_SOURCE register. This bit does not clear hardware clearable
+ * interrupts but software clearable interrupts. Refer to Bit 9 of the
+ * ic_tx_abrt_source register for an exception to clearing ic_tx_abrt_source.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CLR_INTR_CLR_INTR register field. */
+#define ALT_I2C_CLR_INTR_CLR_INTR_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CLR_INTR_CLR_INTR register field. */
+#define ALT_I2C_CLR_INTR_CLR_INTR_MSB 0
+/* The width in bits of the ALT_I2C_CLR_INTR_CLR_INTR register field. */
+#define ALT_I2C_CLR_INTR_CLR_INTR_WIDTH 1
+/* The mask used to set the ALT_I2C_CLR_INTR_CLR_INTR register field value. */
+#define ALT_I2C_CLR_INTR_CLR_INTR_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_CLR_INTR_CLR_INTR register field value. */
+#define ALT_I2C_CLR_INTR_CLR_INTR_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_CLR_INTR_CLR_INTR register field. */
+#define ALT_I2C_CLR_INTR_CLR_INTR_RESET 0x0
+/* Extracts the ALT_I2C_CLR_INTR_CLR_INTR field value from a register. */
+#define ALT_I2C_CLR_INTR_CLR_INTR_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_CLR_INTR_CLR_INTR register field value suitable for setting the register. */
+#define ALT_I2C_CLR_INTR_CLR_INTR_SET(value) (((value) << 0) & 0x00000001)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_CLR_INTR.
+ */
+struct ALT_I2C_CLR_INTR_s
+{
+ const uint32_t clr_intr : 1; /* Combined and Individual Interrupt Bits */
+ uint32_t : 31; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_CLR_INTR. */
+typedef volatile struct ALT_I2C_CLR_INTR_s ALT_I2C_CLR_INTR_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_CLR_INTR register from the beginning of the component. */
+#define ALT_I2C_CLR_INTR_OFST 0x40
+/* The address of the ALT_I2C_CLR_INTR register. */
+#define ALT_I2C_CLR_INTR_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_CLR_INTR_OFST))
+
+/*
+ * Register : Rx Under Interrupt Register - ic_clr_rx_under
+ *
+ * Rx Under Interrupt Bits.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:-----------------------------
+ * [0] | R | 0x0 | Clear Rx Under Interrupt Bit
+ * [31:1] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Clear Rx Under Interrupt Bit - clr_rx_under
+ *
+ * Read this register to clear the RX_UNDER interrupt bit 0 of the ic_raw_intr_stat
+ * register.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER register field. */
+#define ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER register field. */
+#define ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER_MSB 0
+/* The width in bits of the ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER register field. */
+#define ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER_WIDTH 1
+/* The mask used to set the ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER register field value. */
+#define ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER register field value. */
+#define ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER register field. */
+#define ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER_RESET 0x0
+/* Extracts the ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER field value from a register. */
+#define ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER register field value suitable for setting the register. */
+#define ALT_I2C_CLR_RX_UNDER_CLR_RX_UNDER_SET(value) (((value) << 0) & 0x00000001)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_CLR_RX_UNDER.
+ */
+struct ALT_I2C_CLR_RX_UNDER_s
+{
+ const uint32_t clr_rx_under : 1; /* Clear Rx Under Interrupt Bit */
+ uint32_t : 31; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_CLR_RX_UNDER. */
+typedef volatile struct ALT_I2C_CLR_RX_UNDER_s ALT_I2C_CLR_RX_UNDER_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_CLR_RX_UNDER register from the beginning of the component. */
+#define ALT_I2C_CLR_RX_UNDER_OFST 0x44
+/* The address of the ALT_I2C_CLR_RX_UNDER register. */
+#define ALT_I2C_CLR_RX_UNDER_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_CLR_RX_UNDER_OFST))
+
+/*
+ * Register : RX Over Interrupt Register - ic_clr_rx_over
+ *
+ * Clears Rx over Interrupt Bit
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:----------------------
+ * [0] | R | 0x0 | RX Over Interrupt Bit
+ * [31:1] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : RX Over Interrupt Bit - clr_rx_over
+ *
+ * Read this register to clear the RX_OVER interrupt bit 1 of the ic_raw_intr_stat
+ * register.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CLR_RX_OVER_CLR_RX_OVER register field. */
+#define ALT_I2C_CLR_RX_OVER_CLR_RX_OVER_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CLR_RX_OVER_CLR_RX_OVER register field. */
+#define ALT_I2C_CLR_RX_OVER_CLR_RX_OVER_MSB 0
+/* The width in bits of the ALT_I2C_CLR_RX_OVER_CLR_RX_OVER register field. */
+#define ALT_I2C_CLR_RX_OVER_CLR_RX_OVER_WIDTH 1
+/* The mask used to set the ALT_I2C_CLR_RX_OVER_CLR_RX_OVER register field value. */
+#define ALT_I2C_CLR_RX_OVER_CLR_RX_OVER_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_CLR_RX_OVER_CLR_RX_OVER register field value. */
+#define ALT_I2C_CLR_RX_OVER_CLR_RX_OVER_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_CLR_RX_OVER_CLR_RX_OVER register field. */
+#define ALT_I2C_CLR_RX_OVER_CLR_RX_OVER_RESET 0x0
+/* Extracts the ALT_I2C_CLR_RX_OVER_CLR_RX_OVER field value from a register. */
+#define ALT_I2C_CLR_RX_OVER_CLR_RX_OVER_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_CLR_RX_OVER_CLR_RX_OVER register field value suitable for setting the register. */
+#define ALT_I2C_CLR_RX_OVER_CLR_RX_OVER_SET(value) (((value) << 0) & 0x00000001)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_CLR_RX_OVER.
+ */
+struct ALT_I2C_CLR_RX_OVER_s
+{
+ const uint32_t clr_rx_over : 1; /* RX Over Interrupt Bit */
+ uint32_t : 31; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_CLR_RX_OVER. */
+typedef volatile struct ALT_I2C_CLR_RX_OVER_s ALT_I2C_CLR_RX_OVER_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_CLR_RX_OVER register from the beginning of the component. */
+#define ALT_I2C_CLR_RX_OVER_OFST 0x48
+/* The address of the ALT_I2C_CLR_RX_OVER register. */
+#define ALT_I2C_CLR_RX_OVER_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_CLR_RX_OVER_OFST))
+
+/*
+ * Register : TX Over Interrupt Register - ic_clr_tx_over
+ *
+ * Clears Over Interrupts
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:----------------------
+ * [0] | R | 0x0 | TX Over Interrupt Bit
+ * [31:1] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : TX Over Interrupt Bit - clr_tx_over
+ *
+ * Read this register to clear the TX_OVER interrupt (bit 3) of the
+ * ic_raw_intr_stat register.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CLR_TX_OVER_CLR_TX_OVER register field. */
+#define ALT_I2C_CLR_TX_OVER_CLR_TX_OVER_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CLR_TX_OVER_CLR_TX_OVER register field. */
+#define ALT_I2C_CLR_TX_OVER_CLR_TX_OVER_MSB 0
+/* The width in bits of the ALT_I2C_CLR_TX_OVER_CLR_TX_OVER register field. */
+#define ALT_I2C_CLR_TX_OVER_CLR_TX_OVER_WIDTH 1
+/* The mask used to set the ALT_I2C_CLR_TX_OVER_CLR_TX_OVER register field value. */
+#define ALT_I2C_CLR_TX_OVER_CLR_TX_OVER_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_CLR_TX_OVER_CLR_TX_OVER register field value. */
+#define ALT_I2C_CLR_TX_OVER_CLR_TX_OVER_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_CLR_TX_OVER_CLR_TX_OVER register field. */
+#define ALT_I2C_CLR_TX_OVER_CLR_TX_OVER_RESET 0x0
+/* Extracts the ALT_I2C_CLR_TX_OVER_CLR_TX_OVER field value from a register. */
+#define ALT_I2C_CLR_TX_OVER_CLR_TX_OVER_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_CLR_TX_OVER_CLR_TX_OVER register field value suitable for setting the register. */
+#define ALT_I2C_CLR_TX_OVER_CLR_TX_OVER_SET(value) (((value) << 0) & 0x00000001)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_CLR_TX_OVER.
+ */
+struct ALT_I2C_CLR_TX_OVER_s
+{
+ const uint32_t clr_tx_over : 1; /* TX Over Interrupt Bit */
+ uint32_t : 31; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_CLR_TX_OVER. */
+typedef volatile struct ALT_I2C_CLR_TX_OVER_s ALT_I2C_CLR_TX_OVER_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_CLR_TX_OVER register from the beginning of the component. */
+#define ALT_I2C_CLR_TX_OVER_OFST 0x4c
+/* The address of the ALT_I2C_CLR_TX_OVER register. */
+#define ALT_I2C_CLR_TX_OVER_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_CLR_TX_OVER_OFST))
+
+/*
+ * Register : Interrupt Read Request Register - ic_clr_rd_req
+ *
+ * Clear RD_REQ Interrupt Register
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:------------------------------------
+ * [0] | R | 0x0 | Interrupt Register Read Request Bit
+ * [31:1] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Interrupt Register Read Request Bit - clr_rd_req
+ *
+ * Read this register to clear the RD_REQ interrupt (bit 5) of the ic_raw_intr_stat
+ * register.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CLR_RD_REQ_CLR_RD_REQ register field. */
+#define ALT_I2C_CLR_RD_REQ_CLR_RD_REQ_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CLR_RD_REQ_CLR_RD_REQ register field. */
+#define ALT_I2C_CLR_RD_REQ_CLR_RD_REQ_MSB 0
+/* The width in bits of the ALT_I2C_CLR_RD_REQ_CLR_RD_REQ register field. */
+#define ALT_I2C_CLR_RD_REQ_CLR_RD_REQ_WIDTH 1
+/* The mask used to set the ALT_I2C_CLR_RD_REQ_CLR_RD_REQ register field value. */
+#define ALT_I2C_CLR_RD_REQ_CLR_RD_REQ_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_CLR_RD_REQ_CLR_RD_REQ register field value. */
+#define ALT_I2C_CLR_RD_REQ_CLR_RD_REQ_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_CLR_RD_REQ_CLR_RD_REQ register field. */
+#define ALT_I2C_CLR_RD_REQ_CLR_RD_REQ_RESET 0x0
+/* Extracts the ALT_I2C_CLR_RD_REQ_CLR_RD_REQ field value from a register. */
+#define ALT_I2C_CLR_RD_REQ_CLR_RD_REQ_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_CLR_RD_REQ_CLR_RD_REQ register field value suitable for setting the register. */
+#define ALT_I2C_CLR_RD_REQ_CLR_RD_REQ_SET(value) (((value) << 0) & 0x00000001)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_CLR_RD_REQ.
+ */
+struct ALT_I2C_CLR_RD_REQ_s
+{
+ const uint32_t clr_rd_req : 1; /* Interrupt Register Read Request Bit */
+ uint32_t : 31; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_CLR_RD_REQ. */
+typedef volatile struct ALT_I2C_CLR_RD_REQ_s ALT_I2C_CLR_RD_REQ_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_CLR_RD_REQ register from the beginning of the component. */
+#define ALT_I2C_CLR_RD_REQ_OFST 0x50
+/* The address of the ALT_I2C_CLR_RD_REQ register. */
+#define ALT_I2C_CLR_RD_REQ_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_CLR_RD_REQ_OFST))
+
+/*
+ * Register : Tx Abort Interrupt Register - ic_clr_tx_abrt
+ *
+ * Clear TX_ABRT Interrupt
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:-----------------------
+ * [0] | R | 0x0 | Tx Abort Interrupt Bit
+ * [31:1] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Tx Abort Interrupt Bit - clr_tx_abort
+ *
+ * Read this register to clear the TX_ABRT interrupt (bit 6) of the
+ * ic_raw_intr_stat register, and the ic_tx_abrt_source register. This also
+ * releases the TX FIFO from the flushed/reset state, allowing more writes to the
+ * TX FIFO. Refer to Bit 9 of the ic_tx_abrt_source register for an exception to
+ * clearing ic_tx_abrt_source.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT register field. */
+#define ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT register field. */
+#define ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT_MSB 0
+/* The width in bits of the ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT register field. */
+#define ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT_WIDTH 1
+/* The mask used to set the ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT register field value. */
+#define ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT register field value. */
+#define ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT register field. */
+#define ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT_RESET 0x0
+/* Extracts the ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT field value from a register. */
+#define ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT register field value suitable for setting the register. */
+#define ALT_I2C_CLR_TX_ABRT_CLR_TX_ABT_SET(value) (((value) << 0) & 0x00000001)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_CLR_TX_ABRT.
+ */
+struct ALT_I2C_CLR_TX_ABRT_s
+{
+ const uint32_t clr_tx_abort : 1; /* Tx Abort Interrupt Bit */
+ uint32_t : 31; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_CLR_TX_ABRT. */
+typedef volatile struct ALT_I2C_CLR_TX_ABRT_s ALT_I2C_CLR_TX_ABRT_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_CLR_TX_ABRT register from the beginning of the component. */
+#define ALT_I2C_CLR_TX_ABRT_OFST 0x54
+/* The address of the ALT_I2C_CLR_TX_ABRT register. */
+#define ALT_I2C_CLR_TX_ABRT_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_CLR_TX_ABRT_OFST))
+
+/*
+ * Register : Rx Done Interrupt Register - ic_clr_rx_done
+ *
+ * Clear RX_DONE Interrupt Register
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:----------------------
+ * [0] | R | 0x0 | RX_DONE Interrupt Bit
+ * [31:1] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : RX_DONE Interrupt Bit - clr_rx_done
+ *
+ * Read this register to clear the RX_DONE interrupt (bit 7) of the
+ * ic_raw_intr_stat register.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CLR_RX_DONE_CLR_RX_DONE register field. */
+#define ALT_I2C_CLR_RX_DONE_CLR_RX_DONE_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CLR_RX_DONE_CLR_RX_DONE register field. */
+#define ALT_I2C_CLR_RX_DONE_CLR_RX_DONE_MSB 0
+/* The width in bits of the ALT_I2C_CLR_RX_DONE_CLR_RX_DONE register field. */
+#define ALT_I2C_CLR_RX_DONE_CLR_RX_DONE_WIDTH 1
+/* The mask used to set the ALT_I2C_CLR_RX_DONE_CLR_RX_DONE register field value. */
+#define ALT_I2C_CLR_RX_DONE_CLR_RX_DONE_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_CLR_RX_DONE_CLR_RX_DONE register field value. */
+#define ALT_I2C_CLR_RX_DONE_CLR_RX_DONE_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_CLR_RX_DONE_CLR_RX_DONE register field. */
+#define ALT_I2C_CLR_RX_DONE_CLR_RX_DONE_RESET 0x0
+/* Extracts the ALT_I2C_CLR_RX_DONE_CLR_RX_DONE field value from a register. */
+#define ALT_I2C_CLR_RX_DONE_CLR_RX_DONE_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_CLR_RX_DONE_CLR_RX_DONE register field value suitable for setting the register. */
+#define ALT_I2C_CLR_RX_DONE_CLR_RX_DONE_SET(value) (((value) << 0) & 0x00000001)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_CLR_RX_DONE.
+ */
+struct ALT_I2C_CLR_RX_DONE_s
+{
+ const uint32_t clr_rx_done : 1; /* RX_DONE Interrupt Bit */
+ uint32_t : 31; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_CLR_RX_DONE. */
+typedef volatile struct ALT_I2C_CLR_RX_DONE_s ALT_I2C_CLR_RX_DONE_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_CLR_RX_DONE register from the beginning of the component. */
+#define ALT_I2C_CLR_RX_DONE_OFST 0x58
+/* The address of the ALT_I2C_CLR_RX_DONE register. */
+#define ALT_I2C_CLR_RX_DONE_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_CLR_RX_DONE_OFST))
+
+/*
+ * Register : Activity Interrupt Register - ic_clr_activity
+ *
+ * Clears ACTIVITY Interrupt
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:-----------------------
+ * [0] | R | 0x0 | Activity Interrupt Bit
+ * [31:1] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Activity Interrupt Bit - clr_activity
+ *
+ * Reading this register clears the ACTIVITY interrupt if the I2C is not active
+ * anymore. If the I2C module is still active on the bus, the ACTIVITY interrupt
+ * bit continues to be set. It is automatically cleared by hardware if the module
+ * is disabled and if there is no further activity on the bus. The value read from
+ * this register to get status of the ACTIVITY interrupt (bit 8) of the
+ * ic_raw_intr_stat register.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY register field. */
+#define ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY register field. */
+#define ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY_MSB 0
+/* The width in bits of the ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY register field. */
+#define ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY_WIDTH 1
+/* The mask used to set the ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY register field value. */
+#define ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY register field value. */
+#define ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY register field. */
+#define ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY_RESET 0x0
+/* Extracts the ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY field value from a register. */
+#define ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY register field value suitable for setting the register. */
+#define ALT_I2C_CLR_ACTIVITY_CLR_ACTIVITY_SET(value) (((value) << 0) & 0x00000001)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_CLR_ACTIVITY.
+ */
+struct ALT_I2C_CLR_ACTIVITY_s
+{
+ const uint32_t clr_activity : 1; /* Activity Interrupt Bit */
+ uint32_t : 31; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_CLR_ACTIVITY. */
+typedef volatile struct ALT_I2C_CLR_ACTIVITY_s ALT_I2C_CLR_ACTIVITY_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_CLR_ACTIVITY register from the beginning of the component. */
+#define ALT_I2C_CLR_ACTIVITY_OFST 0x5c
+/* The address of the ALT_I2C_CLR_ACTIVITY register. */
+#define ALT_I2C_CLR_ACTIVITY_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_CLR_ACTIVITY_OFST))
+
+/*
+ * Register : Stop Detect Interrupt Register - ic_clr_stop_det
+ *
+ * Clear Interrupts.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:--------------------------
+ * [0] | R | 0x0 | Stop Detect Interrupt Bit
+ * [31:1] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Stop Detect Interrupt Bit - clr_stop_det
+ *
+ * Read this register to clear the clr_stop_det interrupt (bit 9) of the
+ * ic_raw_intr_stat register.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CLR_STOP_DET_CLR_STOP_DET register field. */
+#define ALT_I2C_CLR_STOP_DET_CLR_STOP_DET_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CLR_STOP_DET_CLR_STOP_DET register field. */
+#define ALT_I2C_CLR_STOP_DET_CLR_STOP_DET_MSB 0
+/* The width in bits of the ALT_I2C_CLR_STOP_DET_CLR_STOP_DET register field. */
+#define ALT_I2C_CLR_STOP_DET_CLR_STOP_DET_WIDTH 1
+/* The mask used to set the ALT_I2C_CLR_STOP_DET_CLR_STOP_DET register field value. */
+#define ALT_I2C_CLR_STOP_DET_CLR_STOP_DET_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_CLR_STOP_DET_CLR_STOP_DET register field value. */
+#define ALT_I2C_CLR_STOP_DET_CLR_STOP_DET_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_CLR_STOP_DET_CLR_STOP_DET register field. */
+#define ALT_I2C_CLR_STOP_DET_CLR_STOP_DET_RESET 0x0
+/* Extracts the ALT_I2C_CLR_STOP_DET_CLR_STOP_DET field value from a register. */
+#define ALT_I2C_CLR_STOP_DET_CLR_STOP_DET_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_CLR_STOP_DET_CLR_STOP_DET register field value suitable for setting the register. */
+#define ALT_I2C_CLR_STOP_DET_CLR_STOP_DET_SET(value) (((value) << 0) & 0x00000001)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_CLR_STOP_DET.
+ */
+struct ALT_I2C_CLR_STOP_DET_s
+{
+ const uint32_t clr_stop_det : 1; /* Stop Detect Interrupt Bit */
+ uint32_t : 31; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_CLR_STOP_DET. */
+typedef volatile struct ALT_I2C_CLR_STOP_DET_s ALT_I2C_CLR_STOP_DET_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_CLR_STOP_DET register from the beginning of the component. */
+#define ALT_I2C_CLR_STOP_DET_OFST 0x60
+/* The address of the ALT_I2C_CLR_STOP_DET register. */
+#define ALT_I2C_CLR_STOP_DET_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_CLR_STOP_DET_OFST))
+
+/*
+ * Register : Start Detect Interrupt Register - ic_clr_start_det
+ *
+ * Clears START_DET Interrupt
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:---------------------------
+ * [0] | R | 0x0 | Start Detect Interrupt Bit
+ * [31:1] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Start Detect Interrupt Bit - clr_start_det
+ *
+ * Read this register to clear the start_det interrupt (bit 10) of the
+ * ic_raw_intr_stat register.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CLR_START_DET_CLR_START_DET register field. */
+#define ALT_I2C_CLR_START_DET_CLR_START_DET_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CLR_START_DET_CLR_START_DET register field. */
+#define ALT_I2C_CLR_START_DET_CLR_START_DET_MSB 0
+/* The width in bits of the ALT_I2C_CLR_START_DET_CLR_START_DET register field. */
+#define ALT_I2C_CLR_START_DET_CLR_START_DET_WIDTH 1
+/* The mask used to set the ALT_I2C_CLR_START_DET_CLR_START_DET register field value. */
+#define ALT_I2C_CLR_START_DET_CLR_START_DET_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_CLR_START_DET_CLR_START_DET register field value. */
+#define ALT_I2C_CLR_START_DET_CLR_START_DET_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_CLR_START_DET_CLR_START_DET register field. */
+#define ALT_I2C_CLR_START_DET_CLR_START_DET_RESET 0x0
+/* Extracts the ALT_I2C_CLR_START_DET_CLR_START_DET field value from a register. */
+#define ALT_I2C_CLR_START_DET_CLR_START_DET_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_CLR_START_DET_CLR_START_DET register field value suitable for setting the register. */
+#define ALT_I2C_CLR_START_DET_CLR_START_DET_SET(value) (((value) << 0) & 0x00000001)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_CLR_START_DET.
+ */
+struct ALT_I2C_CLR_START_DET_s
+{
+ const uint32_t clr_start_det : 1; /* Start Detect Interrupt Bit */
+ uint32_t : 31; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_CLR_START_DET. */
+typedef volatile struct ALT_I2C_CLR_START_DET_s ALT_I2C_CLR_START_DET_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_CLR_START_DET register from the beginning of the component. */
+#define ALT_I2C_CLR_START_DET_OFST 0x64
+/* The address of the ALT_I2C_CLR_START_DET register. */
+#define ALT_I2C_CLR_START_DET_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_CLR_START_DET_OFST))
+
+/*
+ * Register : GEN CALL Interrupt Register - ic_clr_gen_call
+ *
+ * Clear GEN_CALL Interrupt Register
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:-----------------------
+ * [0] | R | 0x0 | GEN CALL Interrupt Bit
+ * [31:1] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : GEN CALL Interrupt Bit - clr_gen_call
+ *
+ * Read this register to clear the GEN_CALL interrupt (bit 11) of ic_raw_intr_stat
+ * register.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL register field. */
+#define ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL register field. */
+#define ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL_MSB 0
+/* The width in bits of the ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL register field. */
+#define ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL_WIDTH 1
+/* The mask used to set the ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL register field value. */
+#define ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL register field value. */
+#define ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL register field. */
+#define ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL_RESET 0x0
+/* Extracts the ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL field value from a register. */
+#define ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL register field value suitable for setting the register. */
+#define ALT_I2C_CLR_GEN_CALL_CLR_GEN_CALL_SET(value) (((value) << 0) & 0x00000001)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_CLR_GEN_CALL.
+ */
+struct ALT_I2C_CLR_GEN_CALL_s
+{
+ const uint32_t clr_gen_call : 1; /* GEN CALL Interrupt Bit */
+ uint32_t : 31; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_CLR_GEN_CALL. */
+typedef volatile struct ALT_I2C_CLR_GEN_CALL_s ALT_I2C_CLR_GEN_CALL_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_CLR_GEN_CALL register from the beginning of the component. */
+#define ALT_I2C_CLR_GEN_CALL_OFST 0x68
+/* The address of the ALT_I2C_CLR_GEN_CALL register. */
+#define ALT_I2C_CLR_GEN_CALL_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_CLR_GEN_CALL_OFST))
+
+/*
+ * Register : Enable Register - ic_enable
+ *
+ * Enable and disable i2c operation
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:-------------
+ * [0] | RW | 0x0 | Enable Bit
+ * [1] | RW | 0x0 | TX abort Bit
+ * [31:2] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Enable Bit - enable
+ *
+ * Controls whether the I2C is enabled. Software can disable I2C while it is
+ * active. However, it is important that care be taken to ensure that I2C is
+ * disabled properly. When the I2C is disabled, the following occurs:
+ *
+ * The TX FIFO and RX FIFO get flushed. Status bits in the IC_INTR_STAT register
+ * are still active until I2C goes into IDLE state. If the module is transmitting,
+ * it stops as well as deletes the contents of the transmit buffer after the
+ * current transfer is complete. If the module is receiving, the I2C stops the
+ * current transfer at the end of the current byte and does not acknowledge the
+ * transfer. The l4_sp_clk synchronizes pclk and ic_clk. The register
+ * ic_enable_status is added to allow software to determine when the hardware has
+ * completely shutdown in response to the IC_ENABLE register being set from 1 to 0.
+ * Only one register is required to be monitored. Procedure for Disabling I2C
+ *
+ * 1. Define a timer interval (ti2c_poll) equal to the 10 times the signaling
+ * period for the highest I2C transfer speed used in the system and supported by
+ * I2C. For example, if the highest I2C transfer mode is 400 kb/s, then this
+ * ti2c_poll is 25us.
+ *
+ * 2. Define a maximum time-out parameter, MAX_T_POLL_COUNT, such that if any
+ * repeated polling operation exceeds this maximum value, an error is reported. 3.
+ * Execute a blocking thread/process/function that prevents any further I2C master
+ * transactions to be started by software, but allows any pending transfers to be
+ * completed.
+ *
+ * 4. The variable POLL_COUNT is initialized to zero. 5. Set IC_ENABLE to 0.
+ *
+ * 6. Read the IC_ENABLE_STATUS register and test the IC_EN bit (bit 0). Increment
+ * POLL_COUNT by one. If POLL_COUNT >= MAX_T_POLL_COUNT, exit with the relevant
+ * error code.
+ *
+ * 7. If IC_ENABLE_STATUS[0] is 1, then sleep for ti2c_poll and proceed to the
+ * previous step. Otherwise, exit with a relevant success code.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :--------------------|:------|:-----------------------------------------------
+ * ALT_I2C_EN_EN_E_DIS | 0x0 | Disables i2c. TX and RX FIFOs are held in an
+ * : | | erased state
+ * ALT_I2C_EN_EN_E_EN | 0x1 | Enables i2c. Software can disable i2c while it
+ * : | | is active
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_EN_EN
+ *
+ * Disables i2c. TX and RX FIFOs are held in an erased state
+ */
+#define ALT_I2C_EN_EN_E_DIS 0x0
+/*
+ * Enumerated value for register field ALT_I2C_EN_EN
+ *
+ * Enables i2c. Software can disable i2c while it is active
+ */
+#define ALT_I2C_EN_EN_E_EN 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_EN_EN register field. */
+#define ALT_I2C_EN_EN_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_EN_EN register field. */
+#define ALT_I2C_EN_EN_MSB 0
+/* The width in bits of the ALT_I2C_EN_EN register field. */
+#define ALT_I2C_EN_EN_WIDTH 1
+/* The mask used to set the ALT_I2C_EN_EN register field value. */
+#define ALT_I2C_EN_EN_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_EN_EN register field value. */
+#define ALT_I2C_EN_EN_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_EN_EN register field. */
+#define ALT_I2C_EN_EN_RESET 0x0
+/* Extracts the ALT_I2C_EN_EN field value from a register. */
+#define ALT_I2C_EN_EN_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_EN_EN register field value suitable for setting the register. */
+#define ALT_I2C_EN_EN_SET(value) (((value) << 0) & 0x00000001)
+
+/*
+ * Field : TX abort Bit - txabort
+ *
+ * Write 1 does a TX abort. Self cleared on abort completion
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_EN_TXABT register field. */
+#define ALT_I2C_EN_TXABT_LSB 1
+/* The Most Significant Bit (MSB) position of the ALT_I2C_EN_TXABT register field. */
+#define ALT_I2C_EN_TXABT_MSB 1
+/* The width in bits of the ALT_I2C_EN_TXABT register field. */
+#define ALT_I2C_EN_TXABT_WIDTH 1
+/* The mask used to set the ALT_I2C_EN_TXABT register field value. */
+#define ALT_I2C_EN_TXABT_SET_MSK 0x00000002
+/* The mask used to clear the ALT_I2C_EN_TXABT register field value. */
+#define ALT_I2C_EN_TXABT_CLR_MSK 0xfffffffd
+/* The reset value of the ALT_I2C_EN_TXABT register field. */
+#define ALT_I2C_EN_TXABT_RESET 0x0
+/* Extracts the ALT_I2C_EN_TXABT field value from a register. */
+#define ALT_I2C_EN_TXABT_GET(value) (((value) & 0x00000002) >> 1)
+/* Produces a ALT_I2C_EN_TXABT register field value suitable for setting the register. */
+#define ALT_I2C_EN_TXABT_SET(value) (((value) << 1) & 0x00000002)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_EN.
+ */
+struct ALT_I2C_EN_s
+{
+ uint32_t enable : 1; /* Enable Bit */
+ uint32_t txabort : 1; /* TX abort Bit */
+ uint32_t : 30; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_EN. */
+typedef volatile struct ALT_I2C_EN_s ALT_I2C_EN_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_EN register from the beginning of the component. */
+#define ALT_I2C_EN_OFST 0x6c
+/* The address of the ALT_I2C_EN register. */
+#define ALT_I2C_EN_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_EN_OFST))
+
+/*
+ * Register : Status Register - ic_status
+ *
+ * This is a read-only register used to indicate the current transfer status and
+ * FIFO status. The status register may be read at any time. None of the bits in
+ * this register request an interrupt.When the I2C is disabled by writing 0 in bit
+ * 0 of the ic_enable register:
+ *
+ * * Bits 1 and 2 are set to 1
+ *
+ * * Bits 3 and 4 are set to 0
+ *
+ * When the master or slave state machines goes to idle
+ *
+ * * Bits 5 and 6 are set to 0
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:-------------------------------
+ * [0] | R | 0x0 | Activity Status Bit
+ * [1] | R | 0x1 | TX FIFO Not Full Bit
+ * [2] | R | 0x1 | TX FIFO Empty Bit
+ * [3] | R | 0x0 | RX FIFO Empty Bit
+ * [4] | R | 0x0 | RX FIFO Full Bit
+ * [5] | R | 0x0 | Master FSM Activity Status Bit
+ * [6] | R | 0x0 | Slave FSM Activity Status Bit
+ * [31:7] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Activity Status Bit - activity
+ *
+ * I2C Activity.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_STAT_ACTIVITY register field. */
+#define ALT_I2C_STAT_ACTIVITY_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_STAT_ACTIVITY register field. */
+#define ALT_I2C_STAT_ACTIVITY_MSB 0
+/* The width in bits of the ALT_I2C_STAT_ACTIVITY register field. */
+#define ALT_I2C_STAT_ACTIVITY_WIDTH 1
+/* The mask used to set the ALT_I2C_STAT_ACTIVITY register field value. */
+#define ALT_I2C_STAT_ACTIVITY_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_STAT_ACTIVITY register field value. */
+#define ALT_I2C_STAT_ACTIVITY_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_STAT_ACTIVITY register field. */
+#define ALT_I2C_STAT_ACTIVITY_RESET 0x0
+/* Extracts the ALT_I2C_STAT_ACTIVITY field value from a register. */
+#define ALT_I2C_STAT_ACTIVITY_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_STAT_ACTIVITY register field value suitable for setting the register. */
+#define ALT_I2C_STAT_ACTIVITY_SET(value) (((value) << 0) & 0x00000001)
+
+/*
+ * Field : TX FIFO Not Full Bit - tfnf
+ *
+ * Transmit Fifo Full
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :----------------------------|:------|:--------------------------
+ * ALT_I2C_STAT_TFNF_E_FULL | 0x0 | Transmit FIFO is full
+ * ALT_I2C_STAT_TFNF_E_NOTFULL | 0x1 | Transmit FIFO is not full
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_STAT_TFNF
+ *
+ * Transmit FIFO is full
+ */
+#define ALT_I2C_STAT_TFNF_E_FULL 0x0
+/*
+ * Enumerated value for register field ALT_I2C_STAT_TFNF
+ *
+ * Transmit FIFO is not full
+ */
+#define ALT_I2C_STAT_TFNF_E_NOTFULL 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_STAT_TFNF register field. */
+#define ALT_I2C_STAT_TFNF_LSB 1
+/* The Most Significant Bit (MSB) position of the ALT_I2C_STAT_TFNF register field. */
+#define ALT_I2C_STAT_TFNF_MSB 1
+/* The width in bits of the ALT_I2C_STAT_TFNF register field. */
+#define ALT_I2C_STAT_TFNF_WIDTH 1
+/* The mask used to set the ALT_I2C_STAT_TFNF register field value. */
+#define ALT_I2C_STAT_TFNF_SET_MSK 0x00000002
+/* The mask used to clear the ALT_I2C_STAT_TFNF register field value. */
+#define ALT_I2C_STAT_TFNF_CLR_MSK 0xfffffffd
+/* The reset value of the ALT_I2C_STAT_TFNF register field. */
+#define ALT_I2C_STAT_TFNF_RESET 0x1
+/* Extracts the ALT_I2C_STAT_TFNF field value from a register. */
+#define ALT_I2C_STAT_TFNF_GET(value) (((value) & 0x00000002) >> 1)
+/* Produces a ALT_I2C_STAT_TFNF register field value suitable for setting the register. */
+#define ALT_I2C_STAT_TFNF_SET(value) (((value) << 1) & 0x00000002)
+
+/*
+ * Field : TX FIFO Empty Bit - tfe
+ *
+ * Transmit FIFO Empty.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :----------------------------|:------|:---------------------------
+ * ALT_I2C_STAT_TFE_E_NOTEMPTY | 0x0 | Transmit FIFO is not empty
+ * ALT_I2C_STAT_TFE_E_EMPTY | 0x1 | Transmit FIFO is empty
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_STAT_TFE
+ *
+ * Transmit FIFO is not empty
+ */
+#define ALT_I2C_STAT_TFE_E_NOTEMPTY 0x0
+/*
+ * Enumerated value for register field ALT_I2C_STAT_TFE
+ *
+ * Transmit FIFO is empty
+ */
+#define ALT_I2C_STAT_TFE_E_EMPTY 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_STAT_TFE register field. */
+#define ALT_I2C_STAT_TFE_LSB 2
+/* The Most Significant Bit (MSB) position of the ALT_I2C_STAT_TFE register field. */
+#define ALT_I2C_STAT_TFE_MSB 2
+/* The width in bits of the ALT_I2C_STAT_TFE register field. */
+#define ALT_I2C_STAT_TFE_WIDTH 1
+/* The mask used to set the ALT_I2C_STAT_TFE register field value. */
+#define ALT_I2C_STAT_TFE_SET_MSK 0x00000004
+/* The mask used to clear the ALT_I2C_STAT_TFE register field value. */
+#define ALT_I2C_STAT_TFE_CLR_MSK 0xfffffffb
+/* The reset value of the ALT_I2C_STAT_TFE register field. */
+#define ALT_I2C_STAT_TFE_RESET 0x1
+/* Extracts the ALT_I2C_STAT_TFE field value from a register. */
+#define ALT_I2C_STAT_TFE_GET(value) (((value) & 0x00000004) >> 2)
+/* Produces a ALT_I2C_STAT_TFE register field value suitable for setting the register. */
+#define ALT_I2C_STAT_TFE_SET(value) (((value) << 2) & 0x00000004)
+
+/*
+ * Field : RX FIFO Empty Bit - rfne
+ *
+ * Receive FIFO Not Empty.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :-----------------------------|:------|:--------------------------
+ * ALT_I2C_STAT_RFNE_E_EMPTY | 0x0 | Receive FIFO is empty
+ * ALT_I2C_STAT_RFNE_E_NOTEMPTY | 0x1 | Receive FIFO is not empty
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_STAT_RFNE
+ *
+ * Receive FIFO is empty
+ */
+#define ALT_I2C_STAT_RFNE_E_EMPTY 0x0
+/*
+ * Enumerated value for register field ALT_I2C_STAT_RFNE
+ *
+ * Receive FIFO is not empty
+ */
+#define ALT_I2C_STAT_RFNE_E_NOTEMPTY 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_STAT_RFNE register field. */
+#define ALT_I2C_STAT_RFNE_LSB 3
+/* The Most Significant Bit (MSB) position of the ALT_I2C_STAT_RFNE register field. */
+#define ALT_I2C_STAT_RFNE_MSB 3
+/* The width in bits of the ALT_I2C_STAT_RFNE register field. */
+#define ALT_I2C_STAT_RFNE_WIDTH 1
+/* The mask used to set the ALT_I2C_STAT_RFNE register field value. */
+#define ALT_I2C_STAT_RFNE_SET_MSK 0x00000008
+/* The mask used to clear the ALT_I2C_STAT_RFNE register field value. */
+#define ALT_I2C_STAT_RFNE_CLR_MSK 0xfffffff7
+/* The reset value of the ALT_I2C_STAT_RFNE register field. */
+#define ALT_I2C_STAT_RFNE_RESET 0x0
+/* Extracts the ALT_I2C_STAT_RFNE field value from a register. */
+#define ALT_I2C_STAT_RFNE_GET(value) (((value) & 0x00000008) >> 3)
+/* Produces a ALT_I2C_STAT_RFNE register field value suitable for setting the register. */
+#define ALT_I2C_STAT_RFNE_SET(value) (((value) << 3) & 0x00000008)
+
+/*
+ * Field : RX FIFO Full Bit - rff
+ *
+ * Receive FIFO Completely Full.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :---------------------------|:------|:-------------------------
+ * ALT_I2C_STAT_RFF_E_NOTFULL | 0x0 | Receive FIFO is not full
+ * ALT_I2C_STAT_RFF_E_FULL | 0x1 | Receive FIFO is full
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_STAT_RFF
+ *
+ * Receive FIFO is not full
+ */
+#define ALT_I2C_STAT_RFF_E_NOTFULL 0x0
+/*
+ * Enumerated value for register field ALT_I2C_STAT_RFF
+ *
+ * Receive FIFO is full
+ */
+#define ALT_I2C_STAT_RFF_E_FULL 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_STAT_RFF register field. */
+#define ALT_I2C_STAT_RFF_LSB 4
+/* The Most Significant Bit (MSB) position of the ALT_I2C_STAT_RFF register field. */
+#define ALT_I2C_STAT_RFF_MSB 4
+/* The width in bits of the ALT_I2C_STAT_RFF register field. */
+#define ALT_I2C_STAT_RFF_WIDTH 1
+/* The mask used to set the ALT_I2C_STAT_RFF register field value. */
+#define ALT_I2C_STAT_RFF_SET_MSK 0x00000010
+/* The mask used to clear the ALT_I2C_STAT_RFF register field value. */
+#define ALT_I2C_STAT_RFF_CLR_MSK 0xffffffef
+/* The reset value of the ALT_I2C_STAT_RFF register field. */
+#define ALT_I2C_STAT_RFF_RESET 0x0
+/* Extracts the ALT_I2C_STAT_RFF field value from a register. */
+#define ALT_I2C_STAT_RFF_GET(value) (((value) & 0x00000010) >> 4)
+/* Produces a ALT_I2C_STAT_RFF register field value suitable for setting the register. */
+#define ALT_I2C_STAT_RFF_SET(value) (((value) << 4) & 0x00000010)
+
+/*
+ * Field : Master FSM Activity Status Bit - mst_activity
+ *
+ * When the Master Finite State Machine (FSM) is not in the IDLE state, this bit is
+ * set. Note:IC_STATUS[0]-that is, ACTIVITY bit-is the OR of SLV_ACTIVITY and
+ * MST_ACTIVITY bits.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :------------------------------------|:------|:------------------------------------------------
+ * ALT_I2C_STAT_MST_ACTIVITY_E_IDLE | 0x0 | Master FSM is in IDLE state. Master part of i2c
+ * : | | is not Active
+ * ALT_I2C_STAT_MST_ACTIVITY_E_NOTIDLE | 0x1 | Master FSM is not in IDLE state. Master part of
+ * : | | i2c is Active
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_STAT_MST_ACTIVITY
+ *
+ * Master FSM is in IDLE state. Master part of i2c is not Active
+ */
+#define ALT_I2C_STAT_MST_ACTIVITY_E_IDLE 0x0
+/*
+ * Enumerated value for register field ALT_I2C_STAT_MST_ACTIVITY
+ *
+ * Master FSM is not in IDLE state. Master part of i2c is Active
+ */
+#define ALT_I2C_STAT_MST_ACTIVITY_E_NOTIDLE 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_STAT_MST_ACTIVITY register field. */
+#define ALT_I2C_STAT_MST_ACTIVITY_LSB 5
+/* The Most Significant Bit (MSB) position of the ALT_I2C_STAT_MST_ACTIVITY register field. */
+#define ALT_I2C_STAT_MST_ACTIVITY_MSB 5
+/* The width in bits of the ALT_I2C_STAT_MST_ACTIVITY register field. */
+#define ALT_I2C_STAT_MST_ACTIVITY_WIDTH 1
+/* The mask used to set the ALT_I2C_STAT_MST_ACTIVITY register field value. */
+#define ALT_I2C_STAT_MST_ACTIVITY_SET_MSK 0x00000020
+/* The mask used to clear the ALT_I2C_STAT_MST_ACTIVITY register field value. */
+#define ALT_I2C_STAT_MST_ACTIVITY_CLR_MSK 0xffffffdf
+/* The reset value of the ALT_I2C_STAT_MST_ACTIVITY register field. */
+#define ALT_I2C_STAT_MST_ACTIVITY_RESET 0x0
+/* Extracts the ALT_I2C_STAT_MST_ACTIVITY field value from a register. */
+#define ALT_I2C_STAT_MST_ACTIVITY_GET(value) (((value) & 0x00000020) >> 5)
+/* Produces a ALT_I2C_STAT_MST_ACTIVITY register field value suitable for setting the register. */
+#define ALT_I2C_STAT_MST_ACTIVITY_SET(value) (((value) << 5) & 0x00000020)
+
+/*
+ * Field : Slave FSM Activity Status Bit - slv_activity
+ *
+ * Slave FSM Activity Status. When the Slave Finite State Machine (FSM) is not in
+ * the IDLE state, this bit is set.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :------------------------------------|:------|:-------------------------------------------------
+ * ALT_I2C_STAT_SLV_ACTIVITY_E_IDLE | 0x0 | Slave FSM is in IDLE state so the Slave part of
+ * : | | i2c is not Active
+ * ALT_I2C_STAT_SLV_ACTIVITY_E_NOTIDLE | 0x1 | Slave FSM is not in IDLE state so the Slave part
+ * : | | of i2c is Active
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_STAT_SLV_ACTIVITY
+ *
+ * Slave FSM is in IDLE state so the Slave part of i2c is not Active
+ */
+#define ALT_I2C_STAT_SLV_ACTIVITY_E_IDLE 0x0
+/*
+ * Enumerated value for register field ALT_I2C_STAT_SLV_ACTIVITY
+ *
+ * Slave FSM is not in IDLE state so the Slave part of i2c is Active
+ */
+#define ALT_I2C_STAT_SLV_ACTIVITY_E_NOTIDLE 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_STAT_SLV_ACTIVITY register field. */
+#define ALT_I2C_STAT_SLV_ACTIVITY_LSB 6
+/* The Most Significant Bit (MSB) position of the ALT_I2C_STAT_SLV_ACTIVITY register field. */
+#define ALT_I2C_STAT_SLV_ACTIVITY_MSB 6
+/* The width in bits of the ALT_I2C_STAT_SLV_ACTIVITY register field. */
+#define ALT_I2C_STAT_SLV_ACTIVITY_WIDTH 1
+/* The mask used to set the ALT_I2C_STAT_SLV_ACTIVITY register field value. */
+#define ALT_I2C_STAT_SLV_ACTIVITY_SET_MSK 0x00000040
+/* The mask used to clear the ALT_I2C_STAT_SLV_ACTIVITY register field value. */
+#define ALT_I2C_STAT_SLV_ACTIVITY_CLR_MSK 0xffffffbf
+/* The reset value of the ALT_I2C_STAT_SLV_ACTIVITY register field. */
+#define ALT_I2C_STAT_SLV_ACTIVITY_RESET 0x0
+/* Extracts the ALT_I2C_STAT_SLV_ACTIVITY field value from a register. */
+#define ALT_I2C_STAT_SLV_ACTIVITY_GET(value) (((value) & 0x00000040) >> 6)
+/* Produces a ALT_I2C_STAT_SLV_ACTIVITY register field value suitable for setting the register. */
+#define ALT_I2C_STAT_SLV_ACTIVITY_SET(value) (((value) << 6) & 0x00000040)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_STAT.
+ */
+struct ALT_I2C_STAT_s
+{
+ const uint32_t activity : 1; /* Activity Status Bit */
+ const uint32_t tfnf : 1; /* TX FIFO Not Full Bit */
+ const uint32_t tfe : 1; /* TX FIFO Empty Bit */
+ const uint32_t rfne : 1; /* RX FIFO Empty Bit */
+ const uint32_t rff : 1; /* RX FIFO Full Bit */
+ const uint32_t mst_activity : 1; /* Master FSM Activity Status Bit */
+ const uint32_t slv_activity : 1; /* Slave FSM Activity Status Bit */
+ uint32_t : 25; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_STAT. */
+typedef volatile struct ALT_I2C_STAT_s ALT_I2C_STAT_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_STAT register from the beginning of the component. */
+#define ALT_I2C_STAT_OFST 0x70
+/* The address of the ALT_I2C_STAT register. */
+#define ALT_I2C_STAT_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_STAT_OFST))
+
+/*
+ * Register : Transmit FIFO Level Register - ic_txflr
+ *
+ * This register contains the number of valid data entries in the transmit FIFO
+ * buffer. It is cleared whenever:
+ *
+ * * The I2C is disabled
+ *
+ * * There is a transmit abort that is, TX_ABRT bit is set in the ic_raw_intr_stat
+ * register. The slave bulk transmit mode is aborted The register increments
+ * whenever data is placed into the transmit FIFO and decrements when data is
+ * taken from the transmit FIFO.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:------------------------
+ * [6:0] | R | 0x0 | Transmit FIFO Level Bit
+ * [31:7] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Transmit FIFO Level Bit - txflr
+ *
+ * Transmit FIFO Level.Contains the number of valid data entries in the transmit
+ * FIFO.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TXFLR_TXFLR register field. */
+#define ALT_I2C_TXFLR_TXFLR_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TXFLR_TXFLR register field. */
+#define ALT_I2C_TXFLR_TXFLR_MSB 6
+/* The width in bits of the ALT_I2C_TXFLR_TXFLR register field. */
+#define ALT_I2C_TXFLR_TXFLR_WIDTH 7
+/* The mask used to set the ALT_I2C_TXFLR_TXFLR register field value. */
+#define ALT_I2C_TXFLR_TXFLR_SET_MSK 0x0000007f
+/* The mask used to clear the ALT_I2C_TXFLR_TXFLR register field value. */
+#define ALT_I2C_TXFLR_TXFLR_CLR_MSK 0xffffff80
+/* The reset value of the ALT_I2C_TXFLR_TXFLR register field. */
+#define ALT_I2C_TXFLR_TXFLR_RESET 0x0
+/* Extracts the ALT_I2C_TXFLR_TXFLR field value from a register. */
+#define ALT_I2C_TXFLR_TXFLR_GET(value) (((value) & 0x0000007f) >> 0)
+/* Produces a ALT_I2C_TXFLR_TXFLR register field value suitable for setting the register. */
+#define ALT_I2C_TXFLR_TXFLR_SET(value) (((value) << 0) & 0x0000007f)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_TXFLR.
+ */
+struct ALT_I2C_TXFLR_s
+{
+ const uint32_t txflr : 7; /* Transmit FIFO Level Bit */
+ uint32_t : 25; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_TXFLR. */
+typedef volatile struct ALT_I2C_TXFLR_s ALT_I2C_TXFLR_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_TXFLR register from the beginning of the component. */
+#define ALT_I2C_TXFLR_OFST 0x74
+/* The address of the ALT_I2C_TXFLR register. */
+#define ALT_I2C_TXFLR_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_TXFLR_OFST))
+
+/*
+ * Register : Receive FIFO Level Register - ic_rxflr
+ *
+ * This register contains the number of valid data entries in the receive FIFO
+ * buffer. It is cleared whenever:
+ *
+ * * The I2C is disabled
+ *
+ * * Whenever there is a transmit abort caused by any of the events tracked in
+ * ic_tx_abrt_source The register increments whenever data is placed into the
+ * receive FIFO and decrements when data is taken from the receive FIFO.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:-----------------------
+ * [6:0] | R | 0x0 | Receive FIFO Level Bit
+ * [31:7] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Receive FIFO Level Bit - rxflr
+ *
+ * Receive FIFO Level. Contains the number of valid data entries in the receive
+ * FIFO.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_RXFLR_RXFLR register field. */
+#define ALT_I2C_RXFLR_RXFLR_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_RXFLR_RXFLR register field. */
+#define ALT_I2C_RXFLR_RXFLR_MSB 6
+/* The width in bits of the ALT_I2C_RXFLR_RXFLR register field. */
+#define ALT_I2C_RXFLR_RXFLR_WIDTH 7
+/* The mask used to set the ALT_I2C_RXFLR_RXFLR register field value. */
+#define ALT_I2C_RXFLR_RXFLR_SET_MSK 0x0000007f
+/* The mask used to clear the ALT_I2C_RXFLR_RXFLR register field value. */
+#define ALT_I2C_RXFLR_RXFLR_CLR_MSK 0xffffff80
+/* The reset value of the ALT_I2C_RXFLR_RXFLR register field. */
+#define ALT_I2C_RXFLR_RXFLR_RESET 0x0
+/* Extracts the ALT_I2C_RXFLR_RXFLR field value from a register. */
+#define ALT_I2C_RXFLR_RXFLR_GET(value) (((value) & 0x0000007f) >> 0)
+/* Produces a ALT_I2C_RXFLR_RXFLR register field value suitable for setting the register. */
+#define ALT_I2C_RXFLR_RXFLR_SET(value) (((value) << 0) & 0x0000007f)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_RXFLR.
+ */
+struct ALT_I2C_RXFLR_s
+{
+ const uint32_t rxflr : 7; /* Receive FIFO Level Bit */
+ uint32_t : 25; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_RXFLR. */
+typedef volatile struct ALT_I2C_RXFLR_s ALT_I2C_RXFLR_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_RXFLR register from the beginning of the component. */
+#define ALT_I2C_RXFLR_OFST 0x78
+/* The address of the ALT_I2C_RXFLR register. */
+#define ALT_I2C_RXFLR_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_RXFLR_OFST))
+
+/*
+ * Register : SDA Hold Register - ic_sda_hold
+ *
+ * This register controls the amount of time delay (in terms of number of l4_sp_clk
+ * clock periods) introduced in the falling edge of SCL, relative to SDA changing,
+ * when I2C services a read request in a slave-transmitter operation. The relevant
+ * I2C requirement is thd:DAT as detailed in the I2C Bus Specification.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :--------|:-------|:------|:-------------
+ * [15:0] | RW | 0x1 | SDA Hold Bit
+ * [31:16] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : SDA Hold Bit - ic_sda_hold
+ *
+ * Program to a minimum 0f 300ns.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_SDA_HOLD_IC_SDA_HOLD register field. */
+#define ALT_I2C_SDA_HOLD_IC_SDA_HOLD_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_SDA_HOLD_IC_SDA_HOLD register field. */
+#define ALT_I2C_SDA_HOLD_IC_SDA_HOLD_MSB 15
+/* The width in bits of the ALT_I2C_SDA_HOLD_IC_SDA_HOLD register field. */
+#define ALT_I2C_SDA_HOLD_IC_SDA_HOLD_WIDTH 16
+/* The mask used to set the ALT_I2C_SDA_HOLD_IC_SDA_HOLD register field value. */
+#define ALT_I2C_SDA_HOLD_IC_SDA_HOLD_SET_MSK 0x0000ffff
+/* The mask used to clear the ALT_I2C_SDA_HOLD_IC_SDA_HOLD register field value. */
+#define ALT_I2C_SDA_HOLD_IC_SDA_HOLD_CLR_MSK 0xffff0000
+/* The reset value of the ALT_I2C_SDA_HOLD_IC_SDA_HOLD register field. */
+#define ALT_I2C_SDA_HOLD_IC_SDA_HOLD_RESET 0x1
+/* Extracts the ALT_I2C_SDA_HOLD_IC_SDA_HOLD field value from a register. */
+#define ALT_I2C_SDA_HOLD_IC_SDA_HOLD_GET(value) (((value) & 0x0000ffff) >> 0)
+/* Produces a ALT_I2C_SDA_HOLD_IC_SDA_HOLD register field value suitable for setting the register. */
+#define ALT_I2C_SDA_HOLD_IC_SDA_HOLD_SET(value) (((value) << 0) & 0x0000ffff)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_SDA_HOLD.
+ */
+struct ALT_I2C_SDA_HOLD_s
+{
+ uint32_t ic_sda_hold : 16; /* SDA Hold Bit */
+ uint32_t : 16; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_SDA_HOLD. */
+typedef volatile struct ALT_I2C_SDA_HOLD_s ALT_I2C_SDA_HOLD_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_SDA_HOLD register from the beginning of the component. */
+#define ALT_I2C_SDA_HOLD_OFST 0x7c
+/* The address of the ALT_I2C_SDA_HOLD register. */
+#define ALT_I2C_SDA_HOLD_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_SDA_HOLD_OFST))
+
+/*
+ * Register : Transmit Abort Source Register - ic_tx_abrt_source
+ *
+ * This register has 16 bits that indicate the source of the TX_ABRT bit. Except
+ * for Bit 9, this register is cleared whenever the ic_clr_tx_abrt register or the
+ * ic_clr_intr register is read. To clear Bit 9, the source of the
+ * abrt_sbyte_norstrt must be fixed first; RESTART must be enabled (ic_con[5]=1),
+ * the special bit must be cleared (ic_tar[11]), or the gc_or_start bit must be
+ * cleared (ic_tar[10]). Once the source of the abrt_sbyte_norstrt is fixed, then
+ * this bit can be cleared in the same manner as other bits in this register. If
+ * the source of the abrt_sbyte_norstrt is not fixed before attempting to clear
+ * this bit, Bit 9 clears for one cycle and is then re-asserted.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :--------|:-------|:------|:-----------------------------------
+ * [0] | RW | 0x0 | Master Abort 7 Bit Address
+ * [1] | RW | 0x0 | Master Abort 10 Bit Address Byte 1
+ * [2] | RW | 0x0 | Master Abort 10 Bit Address Byte 2
+ * [3] | RW | 0x0 | Master Abort TX Noack Bit
+ * [4] | RW | 0x0 | Master Abort GC Noack Bit
+ * [5] | RW | 0x0 | Master Abort GC Read Bit
+ * [6] | RW | 0x0 | Master HS MC Ack
+ * [7] | RW | 0x0 | Master Abort START Byte
+ * [8] | RW | 0x0 | Master HS Restart Disabled
+ * [9] | RW | 0x0 | Master Abort START No Restart
+ * [10] | RW | 0x0 | Master Abort 10 Bit No Restart
+ * [11] | RW | 0x0 | Master Oper Master Dis
+ * [12] | RW | 0x0 | Master Abort Arbitration Lost
+ * [13] | RW | 0x0 | Slave Abort Flush TXFIFO
+ * [14] | RW | 0x0 | Slave Abort Arbitration Lost
+ * [15] | RW | 0x0 | Slave Abort Read TX
+ * [31:16] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Master Abort 7 Bit Address - abrt_7b_addr_noack
+ *
+ * Master is in 7-bit addressing mode and the address sent was not acknowledged by
+ * any slave. Role of i2c: Master-Transmitter or Master-Receiver
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK_MSB 0
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_7B_ADDR_NOACK_SET(value) (((value) << 0) & 0x00000001)
+
+/*
+ * Field : Master Abort 10 Bit Address Byte 1 - abrt_10addr1_noack
+ *
+ * Master is in 10-bit address mode and the first 10-bit address byte was not
+ * acknowledged by any slave. Role of i2c: Master-Transmitter or Master-Receiver
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK_LSB 1
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK_MSB 1
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK_SET_MSK 0x00000002
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK_CLR_MSK 0xfffffffd
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK_GET(value) (((value) & 0x00000002) >> 1)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR1_NOACK_SET(value) (((value) << 1) & 0x00000002)
+
+/*
+ * Field : Master Abort 10 Bit Address Byte 2 - abrt_10addr2_noack
+ *
+ * Master is in 10-bit address mode and the second address byte of the 10-bit
+ * address was not acknowledged by any slave. Role of i2c: Master-Transmitter or
+ * Master-Receiver
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK_LSB 2
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK_MSB 2
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK_SET_MSK 0x00000004
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK_CLR_MSK 0xfffffffb
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK_GET(value) (((value) & 0x00000004) >> 2)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10ADDR2_NOACK_SET(value) (((value) << 2) & 0x00000004)
+
+/*
+ * Field : Master Abort TX Noack Bit - abrt_txdata_noack
+ *
+ * This is a master-mode only bit. Master has received an acknowledgement for the
+ * address, but when it sent data byte(s) following the address, it did not receive
+ * an acknowledge from the remote slave(s). Role of i2c: Master-Transmitter
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK_LSB 3
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK_MSB 3
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK_SET_MSK 0x00000008
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK_CLR_MSK 0xfffffff7
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK_GET(value) (((value) & 0x00000008) >> 3)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_TXDATA_NOACK_SET(value) (((value) << 3) & 0x00000008)
+
+/*
+ * Field : Master Abort GC Noack Bit - abrt_gcall_noack
+ *
+ * i2c in master mode sent a General Call and no slave on the bus acknowledged the
+ * General Call. Role of i2c: Master-Transmitter
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK_LSB 4
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK_MSB 4
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK_SET_MSK 0x00000010
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK_CLR_MSK 0xffffffef
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK_GET(value) (((value) & 0x00000010) >> 4)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_NOACK_SET(value) (((value) << 4) & 0x00000010)
+
+/*
+ * Field : Master Abort GC Read Bit - abrt_gcall_read
+ *
+ * i2c in master mode sent a General Call but the user programmed the byte
+ * following the General Call to be a read from the bus (IC_DATA_CMD[9] is set to
+ * 1). Role of i2c: Master-Transmitter
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD_LSB 5
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD_MSB 5
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD_SET_MSK 0x00000020
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD_CLR_MSK 0xffffffdf
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD_GET(value) (((value) & 0x00000020) >> 5)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_GCALL_RD_SET(value) (((value) << 5) & 0x00000020)
+
+/*
+ * Field : Master HS MC Ack - abrt_hs_ackdet
+ *
+ * Master is in High Speed mode and the High Speed Master code was acknowledged
+ * (wrong behavior). Role of i2c: Master
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET_LSB 6
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET_MSB 6
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET_SET_MSK 0x00000040
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET_CLR_MSK 0xffffffbf
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET_GET(value) (((value) & 0x00000040) >> 6)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_ACKDET_SET(value) (((value) << 6) & 0x00000040)
+
+/*
+ * Field : Master Abort START Byte - abrt_sbyte_ackdet
+ *
+ * Master has sent a START Byte and the START Byte was acknowledged (wrong
+ * behavior). Role of i2c: Master
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET_LSB 7
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET_MSB 7
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET_SET_MSK 0x00000080
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET_CLR_MSK 0xffffff7f
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET_GET(value) (((value) & 0x00000080) >> 7)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_ACKDET_SET(value) (((value) << 7) & 0x00000080)
+
+/*
+ * Field : Master HS Restart Disabled - abrt_hs_norstrt
+ *
+ * The restart is disabled (IC_RESTART_EN bit (IC_CON[5]) =0) and the user is
+ * trying to use the master to transfer data in High Speed mode. Role of i2c:
+ * Master-Transmitter or Master-Receiver
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT_LSB 8
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT_MSB 8
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT_SET_MSK 0x00000100
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT_CLR_MSK 0xfffffeff
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT_GET(value) (((value) & 0x00000100) >> 8)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_HS_NORSTRT_SET(value) (((value) << 8) & 0x00000100)
+
+/*
+ * Field : Master Abort START No Restart - abrt_sbyte_norstrt
+ *
+ * To clear Bit 9, the source of then abrt_sbyte_norstrt must be fixed first;
+ * restart must be enabled (ic_con[5]=1), the SPECIAL bit must be cleared
+ * (ic_tar[11]), or the GC_OR_START bit must be cleared (ic_tar[10]). Once the
+ * source of the abrt_sbyte_norstrt is fixed, then this bit can be cleared in the
+ * same manner as other bits in this register. If the source of the
+ * abrt_sbyte_norstrt is not fixed before attempting to clear this bit, bit 9
+ * clears for one cycle and then gets reasserted. 1: The restart is disabled
+ * (IC_RESTART_EN bit (ic_con[5]) =0) and the user is trying to send a START Byte.
+ * Role of I2C: Master
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT_LSB 9
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT_MSB 9
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT_SET_MSK 0x00000200
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT_CLR_MSK 0xfffffdff
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT_GET(value) (((value) & 0x00000200) >> 9)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SBYTE_NORSTRT_SET(value) (((value) << 9) & 0x00000200)
+
+/*
+ * Field : Master Abort 10 Bit No Restart - abrt_10b_rd_norstrt
+ *
+ * The restart is disabled (ic_restart_en bit (ic_con[5]) =0) and the master sends
+ * a read command in 10-bit addressing mode. Role of I2C: Master-Receiver
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT_LSB 10
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT_MSB 10
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT_SET_MSK 0x00000400
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT_CLR_MSK 0xfffffbff
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT_GET(value) (((value) & 0x00000400) >> 10)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_10B_RD_NORSTRT_SET(value) (((value) << 10) & 0x00000400)
+
+/*
+ * Field : Master Oper Master Dis - abrt_master_dis
+ *
+ * User tries to initiate a Master operation with the Master mode disabled. Role of
+ * I2C: Master-Transmitter or Master-Receiver
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS_LSB 11
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS_MSB 11
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS_SET_MSK 0x00000800
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS_CLR_MSK 0xfffff7ff
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS_GET(value) (((value) & 0x00000800) >> 11)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_MST_DIS_SET(value) (((value) << 11) & 0x00000800)
+
+/*
+ * Field : Master Abort Arbitration Lost - arb_lost
+ *
+ * Master has lost arbitration, or if IC_TX_ABRT_SOURCE[14] is also set, then the
+ * slave transmitter has lost arbitration. Note: I2C can be both master and slave
+ * at the same time. Role of i2c: Master-Transmitter or Slave-Transmitter
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ARB_LOST register field. */
+#define ALT_I2C_TX_ABRT_SRC_ARB_LOST_LSB 12
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ARB_LOST register field. */
+#define ALT_I2C_TX_ABRT_SRC_ARB_LOST_MSB 12
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ARB_LOST register field. */
+#define ALT_I2C_TX_ABRT_SRC_ARB_LOST_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ARB_LOST register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ARB_LOST_SET_MSK 0x00001000
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ARB_LOST register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ARB_LOST_CLR_MSK 0xffffefff
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ARB_LOST register field. */
+#define ALT_I2C_TX_ABRT_SRC_ARB_LOST_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ARB_LOST field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ARB_LOST_GET(value) (((value) & 0x00001000) >> 12)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ARB_LOST register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ARB_LOST_SET(value) (((value) << 12) & 0x00001000)
+
+/*
+ * Field : Slave Abort Flush TXFIFO - abrt_slvflush_txfifo
+ *
+ * Slave has received a read command and some data exists in the TX FIFO so the
+ * slave issues a TX_ABRT interrupt to flush old data in TX FIFO. Role of I2C:
+ * Slave-Transmitter
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO_LSB 13
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO_MSB 13
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO_SET_MSK 0x00002000
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO_CLR_MSK 0xffffdfff
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO_GET(value) (((value) & 0x00002000) >> 13)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVFLUSH_TXFIFO_SET(value) (((value) << 13) & 0x00002000)
+
+/*
+ * Field : Slave Abort Arbitration Lost - abrt_slv_arblost
+ *
+ * Slave lost the bus while transmitting data to a remote master.
+ * IC_TX_ABRT_SOURCE[12] is set at the same time. Note: Even though the slave never
+ * 'owns' the bus, something could go wrong on the bus. This is a fail safe check.
+ * For instance, during a data transmission at the low-to-high transition of SCL,
+ * if what is on the data bus is not what is supposed to be transmitted, then i2c
+ * no longer own the bus. Role of I2C: Slave-Transmitter
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST_LSB 14
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST_MSB 14
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST_SET_MSK 0x00004000
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST_CLR_MSK 0xffffbfff
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST_GET(value) (((value) & 0x00004000) >> 14)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLV_ARBLOST_SET(value) (((value) << 14) & 0x00004000)
+
+/*
+ * Field : Slave Abort Read TX - abrt_slvrd_intx
+ *
+ * When the processor side responds to a slave mode request for data to be
+ * transmitted to a remote master and user writes a 1 in CMD (bit 8) of IC_DATA_CMD
+ * register. Role of I2C: Slave-Transmitter
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX_LSB 15
+/* The Most Significant Bit (MSB) position of the ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX_MSB 15
+/* The width in bits of the ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX_WIDTH 1
+/* The mask used to set the ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX_SET_MSK 0x00008000
+/* The mask used to clear the ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX register field value. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX_CLR_MSK 0xffff7fff
+/* The reset value of the ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX register field. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX_RESET 0x0
+/* Extracts the ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX field value from a register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX_GET(value) (((value) & 0x00008000) >> 15)
+/* Produces a ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX register field value suitable for setting the register. */
+#define ALT_I2C_TX_ABRT_SRC_ABRT_SLVRD_INTX_SET(value) (((value) << 15) & 0x00008000)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_TX_ABRT_SRC.
+ */
+struct ALT_I2C_TX_ABRT_SRC_s
+{
+ uint32_t abrt_7b_addr_noack : 1; /* Master Abort 7 Bit Address */
+ uint32_t abrt_10addr1_noack : 1; /* Master Abort 10 Bit Address Byte 1 */
+ uint32_t abrt_10addr2_noack : 1; /* Master Abort 10 Bit Address Byte 2 */
+ uint32_t abrt_txdata_noack : 1; /* Master Abort TX Noack Bit */
+ uint32_t abrt_gcall_noack : 1; /* Master Abort GC Noack Bit */
+ uint32_t abrt_gcall_read : 1; /* Master Abort GC Read Bit */
+ uint32_t abrt_hs_ackdet : 1; /* Master HS MC Ack */
+ uint32_t abrt_sbyte_ackdet : 1; /* Master Abort START Byte */
+ uint32_t abrt_hs_norstrt : 1; /* Master HS Restart Disabled */
+ uint32_t abrt_sbyte_norstrt : 1; /* Master Abort START No Restart */
+ uint32_t abrt_10b_rd_norstrt : 1; /* Master Abort 10 Bit No Restart */
+ uint32_t abrt_master_dis : 1; /* Master Oper Master Dis */
+ uint32_t arb_lost : 1; /* Master Abort Arbitration Lost */
+ uint32_t abrt_slvflush_txfifo : 1; /* Slave Abort Flush TXFIFO */
+ uint32_t abrt_slv_arblost : 1; /* Slave Abort Arbitration Lost */
+ uint32_t abrt_slvrd_intx : 1; /* Slave Abort Read TX */
+ uint32_t : 16; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_TX_ABRT_SRC. */
+typedef volatile struct ALT_I2C_TX_ABRT_SRC_s ALT_I2C_TX_ABRT_SRC_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_TX_ABRT_SRC register from the beginning of the component. */
+#define ALT_I2C_TX_ABRT_SRC_OFST 0x80
+/* The address of the ALT_I2C_TX_ABRT_SRC register. */
+#define ALT_I2C_TX_ABRT_SRC_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_TX_ABRT_SRC_OFST))
+
+/*
+ * Register : Generate Slave Data NACK - ic_slv_data_nack_only
+ *
+ * The register is used to generate a NACK for the data part of a transfer when i2c
+ * is acting as a slave-receiver.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:------------------
+ * [0] | RW | 0x0 | Generate Nack Bit
+ * [31:1] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Generate Nack Bit - nack
+ *
+ * This Bit control Nack generation
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :---------------------------------------------|:------|:--------------------------------------
+ * ALT_I2C_SLV_DATA_NACK_ONLY_NACK_E_AFTERDBYTE | 0x1 | Generate NACK after data byte receive
+ * ALT_I2C_SLV_DATA_NACK_ONLY_NACK_E_NORM | 0x0 | Generate NACK/ACK normally
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_SLV_DATA_NACK_ONLY_NACK
+ *
+ * Generate NACK after data byte receive
+ */
+#define ALT_I2C_SLV_DATA_NACK_ONLY_NACK_E_AFTERDBYTE 0x1
+/*
+ * Enumerated value for register field ALT_I2C_SLV_DATA_NACK_ONLY_NACK
+ *
+ * Generate NACK/ACK normally
+ */
+#define ALT_I2C_SLV_DATA_NACK_ONLY_NACK_E_NORM 0x0
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_SLV_DATA_NACK_ONLY_NACK register field. */
+#define ALT_I2C_SLV_DATA_NACK_ONLY_NACK_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_SLV_DATA_NACK_ONLY_NACK register field. */
+#define ALT_I2C_SLV_DATA_NACK_ONLY_NACK_MSB 0
+/* The width in bits of the ALT_I2C_SLV_DATA_NACK_ONLY_NACK register field. */
+#define ALT_I2C_SLV_DATA_NACK_ONLY_NACK_WIDTH 1
+/* The mask used to set the ALT_I2C_SLV_DATA_NACK_ONLY_NACK register field value. */
+#define ALT_I2C_SLV_DATA_NACK_ONLY_NACK_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_SLV_DATA_NACK_ONLY_NACK register field value. */
+#define ALT_I2C_SLV_DATA_NACK_ONLY_NACK_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_SLV_DATA_NACK_ONLY_NACK register field. */
+#define ALT_I2C_SLV_DATA_NACK_ONLY_NACK_RESET 0x0
+/* Extracts the ALT_I2C_SLV_DATA_NACK_ONLY_NACK field value from a register. */
+#define ALT_I2C_SLV_DATA_NACK_ONLY_NACK_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_SLV_DATA_NACK_ONLY_NACK register field value suitable for setting the register. */
+#define ALT_I2C_SLV_DATA_NACK_ONLY_NACK_SET(value) (((value) << 0) & 0x00000001)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_SLV_DATA_NACK_ONLY.
+ */
+struct ALT_I2C_SLV_DATA_NACK_ONLY_s
+{
+ uint32_t nack : 1; /* Generate Nack Bit */
+ uint32_t : 31; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_SLV_DATA_NACK_ONLY. */
+typedef volatile struct ALT_I2C_SLV_DATA_NACK_ONLY_s ALT_I2C_SLV_DATA_NACK_ONLY_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_SLV_DATA_NACK_ONLY register from the beginning of the component. */
+#define ALT_I2C_SLV_DATA_NACK_ONLY_OFST 0x84
+/* The address of the ALT_I2C_SLV_DATA_NACK_ONLY register. */
+#define ALT_I2C_SLV_DATA_NACK_ONLY_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_SLV_DATA_NACK_ONLY_OFST))
+
+/*
+ * Register : DMA Control - ic_dma_cr
+ *
+ * The register is used to enable the DMA Controller interface operation. There is
+ * a separate bit for transmit and receive. This can be programmed regardless of
+ * the state of IC_ENABLE.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:------------------------
+ * [0] | RW | 0x0 | Receive DMA Enable Bit
+ * [1] | RW | 0x0 | Transmit DMA Enable Bit
+ * [31:2] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Receive DMA Enable Bit - rdmae
+ *
+ * This bit enables/disables the receive FIFO DMA channel.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :---------------------------|:------|:--------------------
+ * ALT_I2C_DMA_CR_RDMAE_E_DIS | 0x0 | Receive DMA disable
+ * ALT_I2C_DMA_CR_RDMAE_E_EN | 0x1 | Receive DMA enabled
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_DMA_CR_RDMAE
+ *
+ * Receive DMA disable
+ */
+#define ALT_I2C_DMA_CR_RDMAE_E_DIS 0x0
+/*
+ * Enumerated value for register field ALT_I2C_DMA_CR_RDMAE
+ *
+ * Receive DMA enabled
+ */
+#define ALT_I2C_DMA_CR_RDMAE_E_EN 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_DMA_CR_RDMAE register field. */
+#define ALT_I2C_DMA_CR_RDMAE_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_DMA_CR_RDMAE register field. */
+#define ALT_I2C_DMA_CR_RDMAE_MSB 0
+/* The width in bits of the ALT_I2C_DMA_CR_RDMAE register field. */
+#define ALT_I2C_DMA_CR_RDMAE_WIDTH 1
+/* The mask used to set the ALT_I2C_DMA_CR_RDMAE register field value. */
+#define ALT_I2C_DMA_CR_RDMAE_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_DMA_CR_RDMAE register field value. */
+#define ALT_I2C_DMA_CR_RDMAE_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_DMA_CR_RDMAE register field. */
+#define ALT_I2C_DMA_CR_RDMAE_RESET 0x0
+/* Extracts the ALT_I2C_DMA_CR_RDMAE field value from a register. */
+#define ALT_I2C_DMA_CR_RDMAE_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_DMA_CR_RDMAE register field value suitable for setting the register. */
+#define ALT_I2C_DMA_CR_RDMAE_SET(value) (((value) << 0) & 0x00000001)
+
+/*
+ * Field : Transmit DMA Enable Bit - tdmae
+ *
+ * This bit enables/disables the transmit FIFO DMA channel.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :---------------------------|:------|:---------------------
+ * ALT_I2C_DMA_CR_TDMAE_E_DIS | 0x0 | Transmit DMA disable
+ * ALT_I2C_DMA_CR_TDMAE_E_EN | 0x1 | Transmit DMA enabled
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_DMA_CR_TDMAE
+ *
+ * Transmit DMA disable
+ */
+#define ALT_I2C_DMA_CR_TDMAE_E_DIS 0x0
+/*
+ * Enumerated value for register field ALT_I2C_DMA_CR_TDMAE
+ *
+ * Transmit DMA enabled
+ */
+#define ALT_I2C_DMA_CR_TDMAE_E_EN 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_DMA_CR_TDMAE register field. */
+#define ALT_I2C_DMA_CR_TDMAE_LSB 1
+/* The Most Significant Bit (MSB) position of the ALT_I2C_DMA_CR_TDMAE register field. */
+#define ALT_I2C_DMA_CR_TDMAE_MSB 1
+/* The width in bits of the ALT_I2C_DMA_CR_TDMAE register field. */
+#define ALT_I2C_DMA_CR_TDMAE_WIDTH 1
+/* The mask used to set the ALT_I2C_DMA_CR_TDMAE register field value. */
+#define ALT_I2C_DMA_CR_TDMAE_SET_MSK 0x00000002
+/* The mask used to clear the ALT_I2C_DMA_CR_TDMAE register field value. */
+#define ALT_I2C_DMA_CR_TDMAE_CLR_MSK 0xfffffffd
+/* The reset value of the ALT_I2C_DMA_CR_TDMAE register field. */
+#define ALT_I2C_DMA_CR_TDMAE_RESET 0x0
+/* Extracts the ALT_I2C_DMA_CR_TDMAE field value from a register. */
+#define ALT_I2C_DMA_CR_TDMAE_GET(value) (((value) & 0x00000002) >> 1)
+/* Produces a ALT_I2C_DMA_CR_TDMAE register field value suitable for setting the register. */
+#define ALT_I2C_DMA_CR_TDMAE_SET(value) (((value) << 1) & 0x00000002)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_DMA_CR.
+ */
+struct ALT_I2C_DMA_CR_s
+{
+ uint32_t rdmae : 1; /* Receive DMA Enable Bit */
+ uint32_t tdmae : 1; /* Transmit DMA Enable Bit */
+ uint32_t : 30; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_DMA_CR. */
+typedef volatile struct ALT_I2C_DMA_CR_s ALT_I2C_DMA_CR_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_DMA_CR register from the beginning of the component. */
+#define ALT_I2C_DMA_CR_OFST 0x88
+/* The address of the ALT_I2C_DMA_CR register. */
+#define ALT_I2C_DMA_CR_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_DMA_CR_OFST))
+
+/*
+ * Register : DMA Transmit Data Level - ic_dma_tdlr
+ *
+ * This register supports DMA Transmit Operation.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:----------------------------
+ * [5:0] | RW | 0x0 | DMA Transmit Data Level Bit
+ * [31:6] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : DMA Transmit Data Level Bit - dmatdl
+ *
+ * This bit field controls the level at which a DMA request is made by the transmit
+ * logic. It is equal to the watermark level; that is, the i2c_dma_tx_req signal is
+ * generated when the number of valid data entries in the transmit FIFO is equal to
+ * or below this field value, and TDMAE = 1.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_DMA_TDLR_DMATDL register field. */
+#define ALT_I2C_DMA_TDLR_DMATDL_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_DMA_TDLR_DMATDL register field. */
+#define ALT_I2C_DMA_TDLR_DMATDL_MSB 5
+/* The width in bits of the ALT_I2C_DMA_TDLR_DMATDL register field. */
+#define ALT_I2C_DMA_TDLR_DMATDL_WIDTH 6
+/* The mask used to set the ALT_I2C_DMA_TDLR_DMATDL register field value. */
+#define ALT_I2C_DMA_TDLR_DMATDL_SET_MSK 0x0000003f
+/* The mask used to clear the ALT_I2C_DMA_TDLR_DMATDL register field value. */
+#define ALT_I2C_DMA_TDLR_DMATDL_CLR_MSK 0xffffffc0
+/* The reset value of the ALT_I2C_DMA_TDLR_DMATDL register field. */
+#define ALT_I2C_DMA_TDLR_DMATDL_RESET 0x0
+/* Extracts the ALT_I2C_DMA_TDLR_DMATDL field value from a register. */
+#define ALT_I2C_DMA_TDLR_DMATDL_GET(value) (((value) & 0x0000003f) >> 0)
+/* Produces a ALT_I2C_DMA_TDLR_DMATDL register field value suitable for setting the register. */
+#define ALT_I2C_DMA_TDLR_DMATDL_SET(value) (((value) << 0) & 0x0000003f)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_DMA_TDLR.
+ */
+struct ALT_I2C_DMA_TDLR_s
+{
+ uint32_t dmatdl : 6; /* DMA Transmit Data Level Bit */
+ uint32_t : 26; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_DMA_TDLR. */
+typedef volatile struct ALT_I2C_DMA_TDLR_s ALT_I2C_DMA_TDLR_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_DMA_TDLR register from the beginning of the component. */
+#define ALT_I2C_DMA_TDLR_OFST 0x8c
+/* The address of the ALT_I2C_DMA_TDLR register. */
+#define ALT_I2C_DMA_TDLR_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_DMA_TDLR_OFST))
+
+/*
+ * Register : Receive Data Level - ic_dma_rdlr
+ *
+ * DMA Control Signals Interface.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:------------------------
+ * [5:0] | RW | 0x0 | Receive Data Level Bits
+ * [31:6] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Receive Data Level Bits - dmardl
+ *
+ * This bit field controls the level at which a DMA request is made by the receive
+ * logic. The watermark level \= DMARDL+1; that is, dma_rx_req is generated when
+ * the number of valid data entries in the receive FIFO is equal to or more than
+ * this field value + 1, and RDMAE =1. For instance, when DMARDL is 0, then
+ * dma_rx_req is asserted when or more data entries are present in the receive
+ * FIFO.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_DMA_RDLR_DMARDL register field. */
+#define ALT_I2C_DMA_RDLR_DMARDL_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_DMA_RDLR_DMARDL register field. */
+#define ALT_I2C_DMA_RDLR_DMARDL_MSB 5
+/* The width in bits of the ALT_I2C_DMA_RDLR_DMARDL register field. */
+#define ALT_I2C_DMA_RDLR_DMARDL_WIDTH 6
+/* The mask used to set the ALT_I2C_DMA_RDLR_DMARDL register field value. */
+#define ALT_I2C_DMA_RDLR_DMARDL_SET_MSK 0x0000003f
+/* The mask used to clear the ALT_I2C_DMA_RDLR_DMARDL register field value. */
+#define ALT_I2C_DMA_RDLR_DMARDL_CLR_MSK 0xffffffc0
+/* The reset value of the ALT_I2C_DMA_RDLR_DMARDL register field. */
+#define ALT_I2C_DMA_RDLR_DMARDL_RESET 0x0
+/* Extracts the ALT_I2C_DMA_RDLR_DMARDL field value from a register. */
+#define ALT_I2C_DMA_RDLR_DMARDL_GET(value) (((value) & 0x0000003f) >> 0)
+/* Produces a ALT_I2C_DMA_RDLR_DMARDL register field value suitable for setting the register. */
+#define ALT_I2C_DMA_RDLR_DMARDL_SET(value) (((value) << 0) & 0x0000003f)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_DMA_RDLR.
+ */
+struct ALT_I2C_DMA_RDLR_s
+{
+ uint32_t dmardl : 6; /* Receive Data Level Bits */
+ uint32_t : 26; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_DMA_RDLR. */
+typedef volatile struct ALT_I2C_DMA_RDLR_s ALT_I2C_DMA_RDLR_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_DMA_RDLR register from the beginning of the component. */
+#define ALT_I2C_DMA_RDLR_OFST 0x90
+/* The address of the ALT_I2C_DMA_RDLR register. */
+#define ALT_I2C_DMA_RDLR_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_DMA_RDLR_OFST))
+
+/*
+ * Register : SDA Setup Register - ic_sda_setup
+ *
+ * This register controls the amount of time delay (in terms of number of l4_sp_clk
+ * clock periods) introduced in the rising edge of SCL relative to SDA changing by
+ * holding SCL low when I2C services a read request while operating as a slave-
+ * transmitter. The relevant I2C requirement is tSU:DAT (note 4) as detailed in the
+ * I2C Bus Specification. This register must be programmed with a value equal to or
+ * greater than 2.
+ *
+ * Note: The length of setup time is calculated using [(IC_SDA_SETUP - 1) *
+ * (l4_sp_clk)], so if the user requires 10 l4_sp_clk periods of setup time, they
+ * should program a value of 11. The IC_SDA_SETUP register is only used by the I2C
+ * when operating as a slave transmitter.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:----------------
+ * [7:0] | RW | 0x64 | SDA Setup Value
+ * [31:8] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : SDA Setup Value - sda_setup
+ *
+ * It is recommended that if the required delay is 1000ns, then for an l4_sp_clk
+ * frequency of 10 MHz, ic_sda_setup should be programmed to a value of 11.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_SDA_SETUP_SDA_SETUP register field. */
+#define ALT_I2C_SDA_SETUP_SDA_SETUP_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_SDA_SETUP_SDA_SETUP register field. */
+#define ALT_I2C_SDA_SETUP_SDA_SETUP_MSB 7
+/* The width in bits of the ALT_I2C_SDA_SETUP_SDA_SETUP register field. */
+#define ALT_I2C_SDA_SETUP_SDA_SETUP_WIDTH 8
+/* The mask used to set the ALT_I2C_SDA_SETUP_SDA_SETUP register field value. */
+#define ALT_I2C_SDA_SETUP_SDA_SETUP_SET_MSK 0x000000ff
+/* The mask used to clear the ALT_I2C_SDA_SETUP_SDA_SETUP register field value. */
+#define ALT_I2C_SDA_SETUP_SDA_SETUP_CLR_MSK 0xffffff00
+/* The reset value of the ALT_I2C_SDA_SETUP_SDA_SETUP register field. */
+#define ALT_I2C_SDA_SETUP_SDA_SETUP_RESET 0x64
+/* Extracts the ALT_I2C_SDA_SETUP_SDA_SETUP field value from a register. */
+#define ALT_I2C_SDA_SETUP_SDA_SETUP_GET(value) (((value) & 0x000000ff) >> 0)
+/* Produces a ALT_I2C_SDA_SETUP_SDA_SETUP register field value suitable for setting the register. */
+#define ALT_I2C_SDA_SETUP_SDA_SETUP_SET(value) (((value) << 0) & 0x000000ff)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_SDA_SETUP.
+ */
+struct ALT_I2C_SDA_SETUP_s
+{
+ uint32_t sda_setup : 8; /* SDA Setup Value */
+ uint32_t : 24; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_SDA_SETUP. */
+typedef volatile struct ALT_I2C_SDA_SETUP_s ALT_I2C_SDA_SETUP_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_SDA_SETUP register from the beginning of the component. */
+#define ALT_I2C_SDA_SETUP_OFST 0x94
+/* The address of the ALT_I2C_SDA_SETUP register. */
+#define ALT_I2C_SDA_SETUP_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_SDA_SETUP_OFST))
+
+/*
+ * Register : ACK General Call - ic_ack_general_call
+ *
+ * The register controls whether i2c responds with a ACK or NACK when it receives
+ * an I2C General Call address.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:---------------------
+ * [0] | RW | 0x1 | ACK General Call Bit
+ * [31:1] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : ACK General Call Bit - ack_gen_call
+ *
+ * When an ACK is asserted, (by asserting i2c_out_data) when it receives a General
+ * call. Otherwise, i2c responds with a NACK (by negating i2c_out_data).
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :---------------------------------------------|:------|:-------------------------
+ * ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL_E_NACK | 0x0 | I2C responds with a NACK
+ * ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL_E_ACK | 0x1 | I2C responds with an ACK
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL
+ *
+ * I2C responds with a NACK
+ */
+#define ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL_E_NACK 0x0
+/*
+ * Enumerated value for register field ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL
+ *
+ * I2C responds with an ACK
+ */
+#define ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL_E_ACK 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL register field. */
+#define ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL register field. */
+#define ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL_MSB 0
+/* The width in bits of the ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL register field. */
+#define ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL_WIDTH 1
+/* The mask used to set the ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL register field value. */
+#define ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL register field value. */
+#define ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL register field. */
+#define ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL_RESET 0x1
+/* Extracts the ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL field value from a register. */
+#define ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL register field value suitable for setting the register. */
+#define ALT_I2C_ACK_GENERAL_CALL_ACK_GEN_CALL_SET(value) (((value) << 0) & 0x00000001)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_ACK_GENERAL_CALL.
+ */
+struct ALT_I2C_ACK_GENERAL_CALL_s
+{
+ uint32_t ack_gen_call : 1; /* ACK General Call Bit */
+ uint32_t : 31; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_ACK_GENERAL_CALL. */
+typedef volatile struct ALT_I2C_ACK_GENERAL_CALL_s ALT_I2C_ACK_GENERAL_CALL_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_ACK_GENERAL_CALL register from the beginning of the component. */
+#define ALT_I2C_ACK_GENERAL_CALL_OFST 0x98
+/* The address of the ALT_I2C_ACK_GENERAL_CALL register. */
+#define ALT_I2C_ACK_GENERAL_CALL_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_ACK_GENERAL_CALL_OFST))
+
+/*
+ * Register : Enable Status Register - ic_enable_status
+ *
+ * This register is used to report the i2c hardware status when the IC_ENABLE
+ * register is set from 1 to 0; that is, when i2c is disabled. If IC_ENABLE has
+ * been set to 1, bits 2:1 are forced to 0, and bit 0 is forced to 1. If IC_ENABLE
+ * has been set to 0, bits 2:1 are only valid as soon as bit 0 is read as '0'.
+ *
+ * Note: When ic_enable has been written with '0' a delay occurs for bit 0 to be
+ * read as '0' because disabling the i2c depends on I2C bus activities.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:------------------------------
+ * [0] | R | 0x0 | Enable Status Bit
+ * [1] | R | 0x0 | Slave Disabled While Busy Bit
+ * [2] | R | 0x0 | Slave Received Data Lost Bit
+ * [31:3] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Enable Status Bit - ic_en
+ *
+ * This bit always reflects the value driven on the output port ic_en. Not used in
+ * current application. When read as 1, i2c is deemed to be in an enabled state.
+ * When read as 0, i2c is deemed completely inactive. NOTE: The CPU can safely read
+ * this bit anytime. When this bit is read as 0, the CPU can safely read
+ * slv_rx_data_lost (bit 2) and slv_disabled_while_busy (bit 1).
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_EN_STAT_IC_EN register field. */
+#define ALT_I2C_EN_STAT_IC_EN_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_EN_STAT_IC_EN register field. */
+#define ALT_I2C_EN_STAT_IC_EN_MSB 0
+/* The width in bits of the ALT_I2C_EN_STAT_IC_EN register field. */
+#define ALT_I2C_EN_STAT_IC_EN_WIDTH 1
+/* The mask used to set the ALT_I2C_EN_STAT_IC_EN register field value. */
+#define ALT_I2C_EN_STAT_IC_EN_SET_MSK 0x00000001
+/* The mask used to clear the ALT_I2C_EN_STAT_IC_EN register field value. */
+#define ALT_I2C_EN_STAT_IC_EN_CLR_MSK 0xfffffffe
+/* The reset value of the ALT_I2C_EN_STAT_IC_EN register field. */
+#define ALT_I2C_EN_STAT_IC_EN_RESET 0x0
+/* Extracts the ALT_I2C_EN_STAT_IC_EN field value from a register. */
+#define ALT_I2C_EN_STAT_IC_EN_GET(value) (((value) & 0x00000001) >> 0)
+/* Produces a ALT_I2C_EN_STAT_IC_EN register field value suitable for setting the register. */
+#define ALT_I2C_EN_STAT_IC_EN_SET(value) (((value) << 0) & 0x00000001)
+
+/*
+ * Field : Slave Disabled While Busy Bit - slv_disabled_while_busy
+ *
+ * This bit indicates if a potential or active Slave operation has been aborted due
+ * to the setting of the ic_enable register from 1 to 0. This bit is set when the
+ * CPU writes a 0 to the ic_enable register while: (a) I2C is receiving the address
+ * byte of the Slave-Transmitter operation from a remote master; OR, (b) address
+ * and data bytes of the Slave-Receiver operation from a remote master. When read
+ * as 1, I2C is deemed to have forced a NACK during any part of an I2C transfer,
+ * irrespective of whether the I2C address matches the slave address set in i2c
+ * (IC_SAR register) OR if the transfer is completed before IC_ENABLE is set to 0
+ * but has not taken effect. NOTE: If the remote I2C master terminates the transfer
+ * with a STOP condition before the i2c has a chance to NACK a transfer, and
+ * IC_ENABLE has been set to 0, then this bit will also be set to 1. When read as
+ * 0, i2c is deemed to have been disabled when there is master activity, or when
+ * the I2C bus is idle. NOTE: The CPU can safely read this bit when IC_EN (bit 0)
+ * is read as 0.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY register field. */
+#define ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY_LSB 1
+/* The Most Significant Bit (MSB) position of the ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY register field. */
+#define ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY_MSB 1
+/* The width in bits of the ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY register field. */
+#define ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY_WIDTH 1
+/* The mask used to set the ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY register field value. */
+#define ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY_SET_MSK 0x00000002
+/* The mask used to clear the ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY register field value. */
+#define ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY_CLR_MSK 0xfffffffd
+/* The reset value of the ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY register field. */
+#define ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY_RESET 0x0
+/* Extracts the ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY field value from a register. */
+#define ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY_GET(value) (((value) & 0x00000002) >> 1)
+/* Produces a ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY register field value suitable for setting the register. */
+#define ALT_I2C_EN_STAT_SLV_DISD_WHILE_BUSY_SET(value) (((value) << 1) & 0x00000002)
+
+/*
+ * Field : Slave Received Data Lost Bit - slv_rx_data_lost
+ *
+ * This bit indicates if a Slave-Receiver operation has been aborted with at least
+ * one data byte received from an I2C transfer due to the setting of IC ENABLE from
+ * 1 to 0. When read as 1, i2c is deemed to have been actively engaged in an
+ * aborted I2C transfer (with matching address) and the data phase of the I2C
+ * transfer has been entered, even though a data byte has been responded with a
+ * NACK. NOTE: If the remote I2C master terminates the transfer with a STOP
+ * condition before the i2c has a chance to NACK a transfer, and ic_enable has been
+ * set to 0, then this bit is also set to 1. When read as 0, i2c is deemed to have
+ * been disabled without being actively involved in the data phase of a Slave-
+ * Receiver transfer. NOTE: The CPU can safely read this bit when IC_EN (bit 0) is
+ * read as 0.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_EN_STAT_SLV_RX_DATA_LOST register field. */
+#define ALT_I2C_EN_STAT_SLV_RX_DATA_LOST_LSB 2
+/* The Most Significant Bit (MSB) position of the ALT_I2C_EN_STAT_SLV_RX_DATA_LOST register field. */
+#define ALT_I2C_EN_STAT_SLV_RX_DATA_LOST_MSB 2
+/* The width in bits of the ALT_I2C_EN_STAT_SLV_RX_DATA_LOST register field. */
+#define ALT_I2C_EN_STAT_SLV_RX_DATA_LOST_WIDTH 1
+/* The mask used to set the ALT_I2C_EN_STAT_SLV_RX_DATA_LOST register field value. */
+#define ALT_I2C_EN_STAT_SLV_RX_DATA_LOST_SET_MSK 0x00000004
+/* The mask used to clear the ALT_I2C_EN_STAT_SLV_RX_DATA_LOST register field value. */
+#define ALT_I2C_EN_STAT_SLV_RX_DATA_LOST_CLR_MSK 0xfffffffb
+/* The reset value of the ALT_I2C_EN_STAT_SLV_RX_DATA_LOST register field. */
+#define ALT_I2C_EN_STAT_SLV_RX_DATA_LOST_RESET 0x0
+/* Extracts the ALT_I2C_EN_STAT_SLV_RX_DATA_LOST field value from a register. */
+#define ALT_I2C_EN_STAT_SLV_RX_DATA_LOST_GET(value) (((value) & 0x00000004) >> 2)
+/* Produces a ALT_I2C_EN_STAT_SLV_RX_DATA_LOST register field value suitable for setting the register. */
+#define ALT_I2C_EN_STAT_SLV_RX_DATA_LOST_SET(value) (((value) << 2) & 0x00000004)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_EN_STAT.
+ */
+struct ALT_I2C_EN_STAT_s
+{
+ const uint32_t ic_en : 1; /* Enable Status Bit */
+ const uint32_t slv_disabled_while_busy : 1; /* Slave Disabled While Busy Bit */
+ const uint32_t slv_rx_data_lost : 1; /* Slave Received Data Lost Bit */
+ uint32_t : 29; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_EN_STAT. */
+typedef volatile struct ALT_I2C_EN_STAT_s ALT_I2C_EN_STAT_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_EN_STAT register from the beginning of the component. */
+#define ALT_I2C_EN_STAT_OFST 0x9c
+/* The address of the ALT_I2C_EN_STAT register. */
+#define ALT_I2C_EN_STAT_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_EN_STAT_OFST))
+
+/*
+ * Register : SS and FS Spike Suppression Limit Register - ic_fs_spklen
+ *
+ * This register is used to store the duration, measured in ic_clk cycles, of the
+ * longest spike that is filtered out by the spike suppression logic when the
+ * component is operating in SS or FS modes.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:------|:---------------------------------
+ * [7:0] | RW | 0x2 | Spike Suppression Limit Register
+ * [31:8] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : Spike Suppression Limit Register - spklen
+ *
+ * This register must be set before any I2C bus transaction can take place to
+ * ensure stable operation. This register sets the duration, measured in ic_clk
+ * cycles, of the longest spike in the SCL or SDA lines that are filtered out by
+ * the spike suppression logic. This register can be written only when the I2C
+ * interface is disabled, which corresponds to the IC_ENABLE register being set to
+ * 0. Writes at other times have no effect. The minimum valid value is 1; hardware
+ * prevents values less than this being written, and if attempted results in 2
+ * being set.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_FS_SPKLEN_SPKLEN register field. */
+#define ALT_I2C_FS_SPKLEN_SPKLEN_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_FS_SPKLEN_SPKLEN register field. */
+#define ALT_I2C_FS_SPKLEN_SPKLEN_MSB 7
+/* The width in bits of the ALT_I2C_FS_SPKLEN_SPKLEN register field. */
+#define ALT_I2C_FS_SPKLEN_SPKLEN_WIDTH 8
+/* The mask used to set the ALT_I2C_FS_SPKLEN_SPKLEN register field value. */
+#define ALT_I2C_FS_SPKLEN_SPKLEN_SET_MSK 0x000000ff
+/* The mask used to clear the ALT_I2C_FS_SPKLEN_SPKLEN register field value. */
+#define ALT_I2C_FS_SPKLEN_SPKLEN_CLR_MSK 0xffffff00
+/* The reset value of the ALT_I2C_FS_SPKLEN_SPKLEN register field. */
+#define ALT_I2C_FS_SPKLEN_SPKLEN_RESET 0x2
+/* Extracts the ALT_I2C_FS_SPKLEN_SPKLEN field value from a register. */
+#define ALT_I2C_FS_SPKLEN_SPKLEN_GET(value) (((value) & 0x000000ff) >> 0)
+/* Produces a ALT_I2C_FS_SPKLEN_SPKLEN register field value suitable for setting the register. */
+#define ALT_I2C_FS_SPKLEN_SPKLEN_SET(value) (((value) << 0) & 0x000000ff)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_FS_SPKLEN.
+ */
+struct ALT_I2C_FS_SPKLEN_s
+{
+ uint32_t spklen : 8; /* Spike Suppression Limit Register */
+ uint32_t : 24; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_FS_SPKLEN. */
+typedef volatile struct ALT_I2C_FS_SPKLEN_s ALT_I2C_FS_SPKLEN_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_FS_SPKLEN register from the beginning of the component. */
+#define ALT_I2C_FS_SPKLEN_OFST 0xa0
+/* The address of the ALT_I2C_FS_SPKLEN register. */
+#define ALT_I2C_FS_SPKLEN_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_FS_SPKLEN_OFST))
+
+/*
+ * Register : Component Parameter Register 1 - ic_comp_param_1
+ *
+ * This is a constant read-only register that contains encoded information about
+ * the component's parameter settings.
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :--------|:-------|:------|:------------------------
+ * [1:0] | R | 0x2 | APB Data Width Register
+ * [3:2] | R | 0x2 | Max Speed Mode
+ * [4] | R | 0x0 | CNT Registers Access
+ * [5] | R | 0x1 | Intr IO
+ * [6] | R | 0x1 | Has DMA
+ * [7] | R | 0x1 | Add Encoded Params
+ * [15:8] | R | 0x3f | Rx Buffer Depth
+ * [23:16] | R | 0x3f | Tx Buffer Depth
+ * [31:24] | ??? | 0x0 | *UNDEFINED*
+ *
+ */
+/*
+ * Field : APB Data Width Register - apb_data_width
+ *
+ * Sets the APB Data Width.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :--------------------------------------------------|:------|:--------------------------
+ * ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH_E_WIDTH32BITS | 0x2 | APB Data Width is 32 Bits
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH
+ *
+ * APB Data Width is 32 Bits
+ */
+#define ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH_E_WIDTH32BITS 0x2
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH register field. */
+#define ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH register field. */
+#define ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH_MSB 1
+/* The width in bits of the ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH register field. */
+#define ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH_WIDTH 2
+/* The mask used to set the ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH register field value. */
+#define ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH_SET_MSK 0x00000003
+/* The mask used to clear the ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH register field value. */
+#define ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH_CLR_MSK 0xfffffffc
+/* The reset value of the ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH register field. */
+#define ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH_RESET 0x2
+/* Extracts the ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH field value from a register. */
+#define ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH_GET(value) (((value) & 0x00000003) >> 0)
+/* Produces a ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH register field value suitable for setting the register. */
+#define ALT_I2C_COMP_PARAM_1_APB_DATA_WIDTH_SET(value) (((value) << 0) & 0x00000003)
+
+/*
+ * Field : Max Speed Mode - max_speed_mode
+ *
+ * The value of this field determines the maximum i2c bus interface speed.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :------------------------------------------|:------|:-----------------------
+ * ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD_E_FAST | 0x2 | Fast Mode (400 kbit/s)
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD
+ *
+ * Fast Mode (400 kbit/s)
+ */
+#define ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD_E_FAST 0x2
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD register field. */
+#define ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD_LSB 2
+/* The Most Significant Bit (MSB) position of the ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD register field. */
+#define ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD_MSB 3
+/* The width in bits of the ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD register field. */
+#define ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD_WIDTH 2
+/* The mask used to set the ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD register field value. */
+#define ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD_SET_MSK 0x0000000c
+/* The mask used to clear the ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD register field value. */
+#define ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD_CLR_MSK 0xfffffff3
+/* The reset value of the ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD register field. */
+#define ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD_RESET 0x2
+/* Extracts the ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD field value from a register. */
+#define ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD_GET(value) (((value) & 0x0000000c) >> 2)
+/* Produces a ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD register field value suitable for setting the register. */
+#define ALT_I2C_COMP_PARAM_1_MAX_SPEED_MOD_SET(value) (((value) << 2) & 0x0000000c)
+
+/*
+ * Field : CNT Registers Access - hc_count_values
+ *
+ * This makes the *CNT registers readable and writable.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :--------------------------------------------|:------|:--------------------------
+ * ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES_E_RDWR | 0x0 | *CNT registers read/write
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES
+ *
+ * * CNT registers read/write
+ */
+#define ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES_E_RDWR 0x0
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES register field. */
+#define ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES_LSB 4
+/* The Most Significant Bit (MSB) position of the ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES register field. */
+#define ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES_MSB 4
+/* The width in bits of the ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES register field. */
+#define ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES_WIDTH 1
+/* The mask used to set the ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES register field value. */
+#define ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES_SET_MSK 0x00000010
+/* The mask used to clear the ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES register field value. */
+#define ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES_CLR_MSK 0xffffffef
+/* The reset value of the ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES register field. */
+#define ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES_RESET 0x0
+/* Extracts the ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES field value from a register. */
+#define ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES_GET(value) (((value) & 0x00000010) >> 4)
+/* Produces a ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES register field value suitable for setting the register. */
+#define ALT_I2C_COMP_PARAM_1_HC_COUNT_VALUES_SET(value) (((value) << 4) & 0x00000010)
+
+/*
+ * Field : Intr IO - intr_io
+ *
+ * All interrupt sources are combined in to a single output.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :----------------------------------------|:------|:--------------------------
+ * ALT_I2C_COMP_PARAM_1_INTR_IO_E_COMBINED | 0x1 | Combined Interrupt Output
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_COMP_PARAM_1_INTR_IO
+ *
+ * Combined Interrupt Output
+ */
+#define ALT_I2C_COMP_PARAM_1_INTR_IO_E_COMBINED 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_COMP_PARAM_1_INTR_IO register field. */
+#define ALT_I2C_COMP_PARAM_1_INTR_IO_LSB 5
+/* The Most Significant Bit (MSB) position of the ALT_I2C_COMP_PARAM_1_INTR_IO register field. */
+#define ALT_I2C_COMP_PARAM_1_INTR_IO_MSB 5
+/* The width in bits of the ALT_I2C_COMP_PARAM_1_INTR_IO register field. */
+#define ALT_I2C_COMP_PARAM_1_INTR_IO_WIDTH 1
+/* The mask used to set the ALT_I2C_COMP_PARAM_1_INTR_IO register field value. */
+#define ALT_I2C_COMP_PARAM_1_INTR_IO_SET_MSK 0x00000020
+/* The mask used to clear the ALT_I2C_COMP_PARAM_1_INTR_IO register field value. */
+#define ALT_I2C_COMP_PARAM_1_INTR_IO_CLR_MSK 0xffffffdf
+/* The reset value of the ALT_I2C_COMP_PARAM_1_INTR_IO register field. */
+#define ALT_I2C_COMP_PARAM_1_INTR_IO_RESET 0x1
+/* Extracts the ALT_I2C_COMP_PARAM_1_INTR_IO field value from a register. */
+#define ALT_I2C_COMP_PARAM_1_INTR_IO_GET(value) (((value) & 0x00000020) >> 5)
+/* Produces a ALT_I2C_COMP_PARAM_1_INTR_IO register field value suitable for setting the register. */
+#define ALT_I2C_COMP_PARAM_1_INTR_IO_SET(value) (((value) << 5) & 0x00000020)
+
+/*
+ * Field : Has DMA - has_dma
+ *
+ * This configures the inclusion of DMA handshaking interface signals.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :---------------------------------------|:------|:------------
+ * ALT_I2C_COMP_PARAM_1_HAS_DMA_E_PRESENT | 0x1 | Has DMA
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_COMP_PARAM_1_HAS_DMA
+ *
+ * Has DMA
+ */
+#define ALT_I2C_COMP_PARAM_1_HAS_DMA_E_PRESENT 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_COMP_PARAM_1_HAS_DMA register field. */
+#define ALT_I2C_COMP_PARAM_1_HAS_DMA_LSB 6
+/* The Most Significant Bit (MSB) position of the ALT_I2C_COMP_PARAM_1_HAS_DMA register field. */
+#define ALT_I2C_COMP_PARAM_1_HAS_DMA_MSB 6
+/* The width in bits of the ALT_I2C_COMP_PARAM_1_HAS_DMA register field. */
+#define ALT_I2C_COMP_PARAM_1_HAS_DMA_WIDTH 1
+/* The mask used to set the ALT_I2C_COMP_PARAM_1_HAS_DMA register field value. */
+#define ALT_I2C_COMP_PARAM_1_HAS_DMA_SET_MSK 0x00000040
+/* The mask used to clear the ALT_I2C_COMP_PARAM_1_HAS_DMA register field value. */
+#define ALT_I2C_COMP_PARAM_1_HAS_DMA_CLR_MSK 0xffffffbf
+/* The reset value of the ALT_I2C_COMP_PARAM_1_HAS_DMA register field. */
+#define ALT_I2C_COMP_PARAM_1_HAS_DMA_RESET 0x1
+/* Extracts the ALT_I2C_COMP_PARAM_1_HAS_DMA field value from a register. */
+#define ALT_I2C_COMP_PARAM_1_HAS_DMA_GET(value) (((value) & 0x00000040) >> 6)
+/* Produces a ALT_I2C_COMP_PARAM_1_HAS_DMA register field value suitable for setting the register. */
+#define ALT_I2C_COMP_PARAM_1_HAS_DMA_SET(value) (((value) << 6) & 0x00000040)
+
+/*
+ * Field : Add Encoded Params - add_encoded_params
+ *
+ * By adding in the encoded parameters, this gives firmware an easy and quick way
+ * of identifying the DesignWare component within an I/O memory map. Some critical
+ * design-time options determine how a driver should interact with the peripheral.
+ * There is a minimal area overhead by including these parameters. Allows a single
+ * driver to be developed for each component which will be self-configurable.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :---------------------------------------------------|:------|:-------------------
+ * ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS_E_ADDENCPARAMS | 0x1 | Add Encoded Params
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS
+ *
+ * Add Encoded Params
+ */
+#define ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS_E_ADDENCPARAMS 0x1
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS register field. */
+#define ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS_LSB 7
+/* The Most Significant Bit (MSB) position of the ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS register field. */
+#define ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS_MSB 7
+/* The width in bits of the ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS register field. */
+#define ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS_WIDTH 1
+/* The mask used to set the ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS register field value. */
+#define ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS_SET_MSK 0x00000080
+/* The mask used to clear the ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS register field value. */
+#define ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS_CLR_MSK 0xffffff7f
+/* The reset value of the ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS register field. */
+#define ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS_RESET 0x1
+/* Extracts the ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS field value from a register. */
+#define ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS_GET(value) (((value) & 0x00000080) >> 7)
+/* Produces a ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS register field value suitable for setting the register. */
+#define ALT_I2C_COMP_PARAM_1_ADD_ENC_PARAMS_SET(value) (((value) << 7) & 0x00000080)
+
+/*
+ * Field : Rx Buffer Depth - rx_buffer_depth
+ *
+ * Sets Rx FIFO Depth.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :------------------------------------------------|:------|:-------------------------
+ * ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH_E_FIFO64BYTES | 0x40 | Rx Fifo Depth 64 Entries
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH
+ *
+ * Rx Fifo Depth 64 Entries
+ */
+#define ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH_E_FIFO64BYTES 0x40
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH register field. */
+#define ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH_LSB 8
+/* The Most Significant Bit (MSB) position of the ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH register field. */
+#define ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH_MSB 15
+/* The width in bits of the ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH register field. */
+#define ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH_WIDTH 8
+/* The mask used to set the ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH register field value. */
+#define ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH_SET_MSK 0x0000ff00
+/* The mask used to clear the ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH register field value. */
+#define ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH_CLR_MSK 0xffff00ff
+/* The reset value of the ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH register field. */
+#define ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH_RESET 0x3f
+/* Extracts the ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH field value from a register. */
+#define ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH_GET(value) (((value) & 0x0000ff00) >> 8)
+/* Produces a ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH register field value suitable for setting the register. */
+#define ALT_I2C_COMP_PARAM_1_RX_BUF_DEPTH_SET(value) (((value) << 8) & 0x0000ff00)
+
+/*
+ * Field : Tx Buffer Depth - tx_buffer_depth
+ *
+ * Sets Tx FIFO Depth.
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :------------------------------------------------|:------|:---------------------------
+ * ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH_E_FIFO64BYTES | 0x40 | Tx Buffer Depth 64 Entries
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH
+ *
+ * Tx Buffer Depth 64 Entries
+ */
+#define ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH_E_FIFO64BYTES 0x40
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH register field. */
+#define ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH_LSB 16
+/* The Most Significant Bit (MSB) position of the ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH register field. */
+#define ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH_MSB 23
+/* The width in bits of the ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH register field. */
+#define ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH_WIDTH 8
+/* The mask used to set the ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH register field value. */
+#define ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH_SET_MSK 0x00ff0000
+/* The mask used to clear the ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH register field value. */
+#define ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH_CLR_MSK 0xff00ffff
+/* The reset value of the ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH register field. */
+#define ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH_RESET 0x3f
+/* Extracts the ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH field value from a register. */
+#define ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH_GET(value) (((value) & 0x00ff0000) >> 16)
+/* Produces a ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH register field value suitable for setting the register. */
+#define ALT_I2C_COMP_PARAM_1_TX_BUF_DEPTH_SET(value) (((value) << 16) & 0x00ff0000)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_COMP_PARAM_1.
+ */
+struct ALT_I2C_COMP_PARAM_1_s
+{
+ const uint32_t apb_data_width : 2; /* APB Data Width Register */
+ const uint32_t max_speed_mode : 2; /* Max Speed Mode */
+ const uint32_t hc_count_values : 1; /* CNT Registers Access */
+ const uint32_t intr_io : 1; /* Intr IO */
+ const uint32_t has_dma : 1; /* Has DMA */
+ const uint32_t add_encoded_params : 1; /* Add Encoded Params */
+ const uint32_t rx_buffer_depth : 8; /* Rx Buffer Depth */
+ const uint32_t tx_buffer_depth : 8; /* Tx Buffer Depth */
+ uint32_t : 8; /* *UNDEFINED* */
+};
+
+/* The typedef declaration for register ALT_I2C_COMP_PARAM_1. */
+typedef volatile struct ALT_I2C_COMP_PARAM_1_s ALT_I2C_COMP_PARAM_1_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_COMP_PARAM_1 register from the beginning of the component. */
+#define ALT_I2C_COMP_PARAM_1_OFST 0xf4
+/* The address of the ALT_I2C_COMP_PARAM_1 register. */
+#define ALT_I2C_COMP_PARAM_1_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_COMP_PARAM_1_OFST))
+
+/*
+ * Register : Component Version Register - ic_comp_version
+ *
+ * Describes the version of the I2C
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:-----------|:--------------------------
+ * [31:0] | R | 0x3132302a | Component Parameter Value
+ *
+ */
+/*
+ * Field : Component Parameter Value - ic_comp_version
+ *
+ * Specifies I2C release number (encoded as 4 ASCII characters)
+ *
+ * Field Enumeration Values:
+ *
+ * Enum | Value | Description
+ * :-----------------------------------------|:-----------|:--------------
+ * ALT_I2C_COMP_VER_IC_COMP_VER_E_VER_1_20A | 0x3132302a | Version 1.20a
+ *
+ * Field Access Macros:
+ *
+ */
+/*
+ * Enumerated value for register field ALT_I2C_COMP_VER_IC_COMP_VER
+ *
+ * Version 1.20a
+ */
+#define ALT_I2C_COMP_VER_IC_COMP_VER_E_VER_1_20A 0x3132302a
+
+/* The Least Significant Bit (LSB) position of the ALT_I2C_COMP_VER_IC_COMP_VER register field. */
+#define ALT_I2C_COMP_VER_IC_COMP_VER_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_COMP_VER_IC_COMP_VER register field. */
+#define ALT_I2C_COMP_VER_IC_COMP_VER_MSB 31
+/* The width in bits of the ALT_I2C_COMP_VER_IC_COMP_VER register field. */
+#define ALT_I2C_COMP_VER_IC_COMP_VER_WIDTH 32
+/* The mask used to set the ALT_I2C_COMP_VER_IC_COMP_VER register field value. */
+#define ALT_I2C_COMP_VER_IC_COMP_VER_SET_MSK 0xffffffff
+/* The mask used to clear the ALT_I2C_COMP_VER_IC_COMP_VER register field value. */
+#define ALT_I2C_COMP_VER_IC_COMP_VER_CLR_MSK 0x00000000
+/* The reset value of the ALT_I2C_COMP_VER_IC_COMP_VER register field. */
+#define ALT_I2C_COMP_VER_IC_COMP_VER_RESET 0x3132302a
+/* Extracts the ALT_I2C_COMP_VER_IC_COMP_VER field value from a register. */
+#define ALT_I2C_COMP_VER_IC_COMP_VER_GET(value) (((value) & 0xffffffff) >> 0)
+/* Produces a ALT_I2C_COMP_VER_IC_COMP_VER register field value suitable for setting the register. */
+#define ALT_I2C_COMP_VER_IC_COMP_VER_SET(value) (((value) << 0) & 0xffffffff)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_COMP_VER.
+ */
+struct ALT_I2C_COMP_VER_s
+{
+ const uint32_t ic_comp_version : 32; /* Component Parameter Value */
+};
+
+/* The typedef declaration for register ALT_I2C_COMP_VER. */
+typedef volatile struct ALT_I2C_COMP_VER_s ALT_I2C_COMP_VER_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_COMP_VER register from the beginning of the component. */
+#define ALT_I2C_COMP_VER_OFST 0xf8
+/* The address of the ALT_I2C_COMP_VER register. */
+#define ALT_I2C_COMP_VER_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_COMP_VER_OFST))
+
+/*
+ * Register : Component Type Register - ic_comp_type
+ *
+ * Describes a unique ASCII value
+ *
+ * Register Layout
+ *
+ * Bits | Access | Reset | Description
+ * :-------|:-------|:-----------|:----------------------
+ * [31:0] | R | 0x44570140 | Component Type Number
+ *
+ */
+/*
+ * Field : Component Type Number - ic_comp_type
+ *
+ * Designware Component Type number = 0x44_57_01_40. This assigned unique hex value
+ * is constant and is derived from the two ASCII letters 'DW' followed by a 16-bit
+ * unsigned number.
+ *
+ * Field Access Macros:
+ *
+ */
+/* The Least Significant Bit (LSB) position of the ALT_I2C_COMP_TYPE_IC_COMP_TYPE register field. */
+#define ALT_I2C_COMP_TYPE_IC_COMP_TYPE_LSB 0
+/* The Most Significant Bit (MSB) position of the ALT_I2C_COMP_TYPE_IC_COMP_TYPE register field. */
+#define ALT_I2C_COMP_TYPE_IC_COMP_TYPE_MSB 31
+/* The width in bits of the ALT_I2C_COMP_TYPE_IC_COMP_TYPE register field. */
+#define ALT_I2C_COMP_TYPE_IC_COMP_TYPE_WIDTH 32
+/* The mask used to set the ALT_I2C_COMP_TYPE_IC_COMP_TYPE register field value. */
+#define ALT_I2C_COMP_TYPE_IC_COMP_TYPE_SET_MSK 0xffffffff
+/* The mask used to clear the ALT_I2C_COMP_TYPE_IC_COMP_TYPE register field value. */
+#define ALT_I2C_COMP_TYPE_IC_COMP_TYPE_CLR_MSK 0x00000000
+/* The reset value of the ALT_I2C_COMP_TYPE_IC_COMP_TYPE register field. */
+#define ALT_I2C_COMP_TYPE_IC_COMP_TYPE_RESET 0x44570140
+/* Extracts the ALT_I2C_COMP_TYPE_IC_COMP_TYPE field value from a register. */
+#define ALT_I2C_COMP_TYPE_IC_COMP_TYPE_GET(value) (((value) & 0xffffffff) >> 0)
+/* Produces a ALT_I2C_COMP_TYPE_IC_COMP_TYPE register field value suitable for setting the register. */
+#define ALT_I2C_COMP_TYPE_IC_COMP_TYPE_SET(value) (((value) << 0) & 0xffffffff)
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register ALT_I2C_COMP_TYPE.
+ */
+struct ALT_I2C_COMP_TYPE_s
+{
+ const uint32_t ic_comp_type : 32; /* Component Type Number */
+};
+
+/* The typedef declaration for register ALT_I2C_COMP_TYPE. */
+typedef volatile struct ALT_I2C_COMP_TYPE_s ALT_I2C_COMP_TYPE_t;
+#endif /* __ASSEMBLY__ */
+
+/* The byte offset of the ALT_I2C_COMP_TYPE register from the beginning of the component. */
+#define ALT_I2C_COMP_TYPE_OFST 0xfc
+/* The address of the ALT_I2C_COMP_TYPE register. */
+#define ALT_I2C_COMP_TYPE_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_I2C_COMP_TYPE_OFST))
+
+#ifndef __ASSEMBLY__
+/*
+ * WARNING: The C register and register group struct declarations are provided for
+ * convenience and illustrative purposes. They should, however, be used with
+ * caution as the C language standard provides no guarantees about the alignment or
+ * atomicity of device memory accesses. The recommended practice for writing
+ * hardware drivers is to use the SoCAL access macros and alt_read_word() and
+ * alt_write_word() functions.
+ *
+ * The struct declaration for register group ALT_I2C.
+ */
+struct ALT_I2C_s
+{
+ volatile ALT_I2C_CON_t ic_con; /* ALT_I2C_CON */
+ volatile ALT_I2C_TAR_t ic_tar; /* ALT_I2C_TAR */
+ volatile ALT_I2C_SAR_t ic_sar; /* ALT_I2C_SAR */
+ volatile uint32_t _pad_0xc_0xf; /* *UNDEFINED* */
+ volatile ALT_I2C_DATA_CMD_t ic_data_cmd; /* ALT_I2C_DATA_CMD */
+ volatile ALT_I2C_SS_SCL_HCNT_t ic_ss_scl_hcnt; /* ALT_I2C_SS_SCL_HCNT */
+ volatile ALT_I2C_SS_SCL_LCNT_t ic_ss_scl_lcnt; /* ALT_I2C_SS_SCL_LCNT */
+ volatile ALT_I2C_FS_SCL_HCNT_t ic_fs_scl_hcnt; /* ALT_I2C_FS_SCL_HCNT */
+ volatile ALT_I2C_FS_SCL_LCNT_t ic_fs_scl_lcnt; /* ALT_I2C_FS_SCL_LCNT */
+ volatile uint32_t _pad_0x24_0x2b[2]; /* *UNDEFINED* */
+ volatile ALT_I2C_INTR_STAT_t ic_intr_stat; /* ALT_I2C_INTR_STAT */
+ volatile ALT_I2C_INTR_MSK_t ic_intr_mask; /* ALT_I2C_INTR_MSK */
+ volatile ALT_I2C_RAW_INTR_STAT_t ic_raw_intr_stat; /* ALT_I2C_RAW_INTR_STAT */
+ volatile ALT_I2C_RX_TL_t ic_rx_tl; /* ALT_I2C_RX_TL */
+ volatile ALT_I2C_TX_TL_t ic_tx_tl; /* ALT_I2C_TX_TL */
+ volatile ALT_I2C_CLR_INTR_t ic_clr_intr; /* ALT_I2C_CLR_INTR */
+ volatile ALT_I2C_CLR_RX_UNDER_t ic_clr_rx_under; /* ALT_I2C_CLR_RX_UNDER */
+ volatile ALT_I2C_CLR_RX_OVER_t ic_clr_rx_over; /* ALT_I2C_CLR_RX_OVER */
+ volatile ALT_I2C_CLR_TX_OVER_t ic_clr_tx_over; /* ALT_I2C_CLR_TX_OVER */
+ volatile ALT_I2C_CLR_RD_REQ_t ic_clr_rd_req; /* ALT_I2C_CLR_RD_REQ */
+ volatile ALT_I2C_CLR_TX_ABRT_t ic_clr_tx_abrt; /* ALT_I2C_CLR_TX_ABRT */
+ volatile ALT_I2C_CLR_RX_DONE_t ic_clr_rx_done; /* ALT_I2C_CLR_RX_DONE */
+ volatile ALT_I2C_CLR_ACTIVITY_t ic_clr_activity; /* ALT_I2C_CLR_ACTIVITY */
+ volatile ALT_I2C_CLR_STOP_DET_t ic_clr_stop_det; /* ALT_I2C_CLR_STOP_DET */
+ volatile ALT_I2C_CLR_START_DET_t ic_clr_start_det; /* ALT_I2C_CLR_START_DET */
+ volatile ALT_I2C_CLR_GEN_CALL_t ic_clr_gen_call; /* ALT_I2C_CLR_GEN_CALL */
+ volatile ALT_I2C_EN_t ic_enable; /* ALT_I2C_EN */
+ volatile ALT_I2C_STAT_t ic_status; /* ALT_I2C_STAT */
+ volatile ALT_I2C_TXFLR_t ic_txflr; /* ALT_I2C_TXFLR */
+ volatile ALT_I2C_RXFLR_t ic_rxflr; /* ALT_I2C_RXFLR */
+ volatile ALT_I2C_SDA_HOLD_t ic_sda_hold; /* ALT_I2C_SDA_HOLD */
+ volatile ALT_I2C_TX_ABRT_SRC_t ic_tx_abrt_source; /* ALT_I2C_TX_ABRT_SRC */
+ volatile ALT_I2C_SLV_DATA_NACK_ONLY_t ic_slv_data_nack_only; /* ALT_I2C_SLV_DATA_NACK_ONLY */
+ volatile ALT_I2C_DMA_CR_t ic_dma_cr; /* ALT_I2C_DMA_CR */
+ volatile ALT_I2C_DMA_TDLR_t ic_dma_tdlr; /* ALT_I2C_DMA_TDLR */
+ volatile ALT_I2C_DMA_RDLR_t ic_dma_rdlr; /* ALT_I2C_DMA_RDLR */
+ volatile ALT_I2C_SDA_SETUP_t ic_sda_setup; /* ALT_I2C_SDA_SETUP */
+ volatile ALT_I2C_ACK_GENERAL_CALL_t ic_ack_general_call; /* ALT_I2C_ACK_GENERAL_CALL */
+ volatile ALT_I2C_EN_STAT_t ic_enable_status; /* ALT_I2C_EN_STAT */
+ volatile ALT_I2C_FS_SPKLEN_t ic_fs_spklen; /* ALT_I2C_FS_SPKLEN */
+ volatile uint32_t _pad_0xa4_0xf3[20]; /* *UNDEFINED* */
+ volatile ALT_I2C_COMP_PARAM_1_t ic_comp_param_1; /* ALT_I2C_COMP_PARAM_1 */
+ volatile ALT_I2C_COMP_VER_t ic_comp_version; /* ALT_I2C_COMP_VER */
+ volatile ALT_I2C_COMP_TYPE_t ic_comp_type; /* ALT_I2C_COMP_TYPE */
+};
+
+/* The typedef declaration for register group ALT_I2C. */
+typedef volatile struct ALT_I2C_s ALT_I2C_t;
+/* The struct declaration for the raw register contents of register group ALT_I2C. */
+struct ALT_I2C_raw_s
+{
+ volatile uint32_t ic_con; /* ALT_I2C_CON */
+ volatile uint32_t ic_tar; /* ALT_I2C_TAR */
+ volatile uint32_t ic_sar; /* ALT_I2C_SAR */
+ volatile uint32_t _pad_0xc_0xf; /* *UNDEFINED* */
+ volatile uint32_t ic_data_cmd; /* ALT_I2C_DATA_CMD */
+ volatile uint32_t ic_ss_scl_hcnt; /* ALT_I2C_SS_SCL_HCNT */
+ volatile uint32_t ic_ss_scl_lcnt; /* ALT_I2C_SS_SCL_LCNT */
+ volatile uint32_t ic_fs_scl_hcnt; /* ALT_I2C_FS_SCL_HCNT */
+ volatile uint32_t ic_fs_scl_lcnt; /* ALT_I2C_FS_SCL_LCNT */
+ volatile uint32_t _pad_0x24_0x2b[2]; /* *UNDEFINED* */
+ volatile uint32_t ic_intr_stat; /* ALT_I2C_INTR_STAT */
+ volatile uint32_t ic_intr_mask; /* ALT_I2C_INTR_MSK */
+ volatile uint32_t ic_raw_intr_stat; /* ALT_I2C_RAW_INTR_STAT */
+ volatile uint32_t ic_rx_tl; /* ALT_I2C_RX_TL */
+ volatile uint32_t ic_tx_tl; /* ALT_I2C_TX_TL */
+ volatile uint32_t ic_clr_intr; /* ALT_I2C_CLR_INTR */
+ volatile uint32_t ic_clr_rx_under; /* ALT_I2C_CLR_RX_UNDER */
+ volatile uint32_t ic_clr_rx_over; /* ALT_I2C_CLR_RX_OVER */
+ volatile uint32_t ic_clr_tx_over; /* ALT_I2C_CLR_TX_OVER */
+ volatile uint32_t ic_clr_rd_req; /* ALT_I2C_CLR_RD_REQ */
+ volatile uint32_t ic_clr_tx_abrt; /* ALT_I2C_CLR_TX_ABRT */
+ volatile uint32_t ic_clr_rx_done; /* ALT_I2C_CLR_RX_DONE */
+ volatile uint32_t ic_clr_activity; /* ALT_I2C_CLR_ACTIVITY */
+ volatile uint32_t ic_clr_stop_det; /* ALT_I2C_CLR_STOP_DET */
+ volatile uint32_t ic_clr_start_det; /* ALT_I2C_CLR_START_DET */
+ volatile uint32_t ic_clr_gen_call; /* ALT_I2C_CLR_GEN_CALL */
+ volatile uint32_t ic_enable; /* ALT_I2C_EN */
+ volatile uint32_t ic_status; /* ALT_I2C_STAT */
+ volatile uint32_t ic_txflr; /* ALT_I2C_TXFLR */
+ volatile uint32_t ic_rxflr; /* ALT_I2C_RXFLR */
+ volatile uint32_t ic_sda_hold; /* ALT_I2C_SDA_HOLD */
+ volatile uint32_t ic_tx_abrt_source; /* ALT_I2C_TX_ABRT_SRC */
+ volatile uint32_t ic_slv_data_nack_only; /* ALT_I2C_SLV_DATA_NACK_ONLY */
+ volatile uint32_t ic_dma_cr; /* ALT_I2C_DMA_CR */
+ volatile uint32_t ic_dma_tdlr; /* ALT_I2C_DMA_TDLR */
+ volatile uint32_t ic_dma_rdlr; /* ALT_I2C_DMA_RDLR */
+ volatile uint32_t ic_sda_setup; /* ALT_I2C_SDA_SETUP */
+ volatile uint32_t ic_ack_general_call; /* ALT_I2C_ACK_GENERAL_CALL */
+ volatile uint32_t ic_enable_status; /* ALT_I2C_EN_STAT */
+ volatile uint32_t ic_fs_spklen; /* ALT_I2C_FS_SPKLEN */
+ volatile uint32_t _pad_0xa4_0xf3[20]; /* *UNDEFINED* */
+ volatile uint32_t ic_comp_param_1; /* ALT_I2C_COMP_PARAM_1 */
+ volatile uint32_t ic_comp_version; /* ALT_I2C_COMP_VER */
+ volatile uint32_t ic_comp_type; /* ALT_I2C_COMP_TYPE */
+};
+
+/* The typedef declaration for the raw register contents of register group ALT_I2C. */
+typedef volatile struct ALT_I2C_raw_s ALT_I2C_raw_t;
+#endif /* __ASSEMBLY__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* __ALTERA_ALT_I2C_H__ */
+