summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/nv/include/ap15/ari2c.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/nv/include/ap15/ari2c.h')
-rw-r--r--arch/arm/mach-tegra/nv/include/ap15/ari2c.h789
1 files changed, 789 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/nv/include/ap15/ari2c.h b/arch/arm/mach-tegra/nv/include/ap15/ari2c.h
new file mode 100644
index 000000000000..335639f1cc99
--- /dev/null
+++ b/arch/arm/mach-tegra/nv/include/ap15/ari2c.h
@@ -0,0 +1,789 @@
+/*
+ * Copyright (c) 2009 NVIDIA 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:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 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.
+ *
+ * Neither the name of the NVIDIA Corporation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+//
+// DO NOT EDIT - generated by simspec!
+//
+
+#ifndef ___ARI2C_H_INC_
+#define ___ARI2C_H_INC_
+////////////////////////////////////////////////////////////////////////////////////////
+//
+// NOTE:
+// -----
+// The FREQUENCY DIVISOR register (CLK_SOURCE_I2C register) must be programmed as a
+// function of the CLK_SOURCE Selected for I2C as follows:
+// I2C_CLK = CLK_SOURCE.I2C / ( 8 * I2C FREQUENCY DIVISOR)
+// The I2C bus specification defines the minimum low period for the I2C_CLK as 4.7 s in standard mode
+// and 1.3 s in fast mode. Because of this, the maximum I2C_CLK frequency in the
+// standard mode can be 100 KHz but in fast mode, it is limited to 348 KHz, assuming I2C_CLK as rise and
+// fall delays of 300ns per the I2C specification.
+// The clock enable (bit-12 of CLK_OUT_ENB.L register)
+// must also be given to I2C controller, before any of the registers are written.
+//
+////////////////////////////////////////////////////////////////////////////////////////
+//IC Controller Configuration Register (Master)
+//I2C_CNFG register is used to configure,
+//The number of bytes to be transmitted or received,
+//the slave device type either a 7-bit device or a 10-bit device,
+//Enable mode to send Start-Byte or not,
+//to select either a single slave transaction or two slave transaction,
+//Enable mode to handle devices that do not generate ACK.
+
+// Register I2C_I2C_CNFG_0
+#define I2C_I2C_CNFG_0 _MK_ADDR_CONST(0x0)
+#define I2C_I2C_CNFG_0_WORD_COUNT 0x1
+#define I2C_I2C_CNFG_0_RESET_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_RESET_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_CNFG_0_SW_DEFAULT_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_READ_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_CNFG_0_WRITE_MASK _MK_MASK_CONST(0x3ff)
+// Reserved = 0
+#define I2C_I2C_CNFG_0_N_A1_SHIFT _MK_SHIFT_CONST(10)
+#define I2C_I2C_CNFG_0_N_A1_FIELD (_MK_MASK_CONST(0x3fffff) << I2C_I2C_CNFG_0_N_A1_SHIFT)
+#define I2C_I2C_CNFG_0_N_A1_RANGE 31:10
+#define I2C_I2C_CNFG_0_N_A1_WOFFSET 0x0
+#define I2C_I2C_CNFG_0_N_A1_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_N_A1_DEFAULT_MASK _MK_MASK_CONST(0x3fffff)
+#define I2C_I2C_CNFG_0_N_A1_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_N_A1_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// Writing a 1 causes the master to initiate the
+// transaction. Values of other bits are not
+// affected when this bit is 1,Cleared by
+// hardware. Other bits of the register are
+// masked for writes when this bit is programmed
+// to one.hence,firware should first configure
+// all other registrs and bits [8:0] of
+// I2C_CNFG register before the bit I2C_CNFG[9] is programmed to one..
+#define I2C_I2C_CNFG_0_SEND_SHIFT _MK_SHIFT_CONST(9)
+#define I2C_I2C_CNFG_0_SEND_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_CNFG_0_SEND_SHIFT)
+#define I2C_I2C_CNFG_0_SEND_RANGE 9:9
+#define I2C_I2C_CNFG_0_SEND_WOFFSET 0x0
+#define I2C_I2C_CNFG_0_SEND_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_SEND_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_CNFG_0_SEND_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_SEND_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_SEND_NOP _MK_ENUM_CONST(0)
+#define I2C_I2C_CNFG_0_SEND_GO _MK_ENUM_CONST(1)
+
+// Enable mode to handle devices that do not generate ACK.
+// 1 - dont look for an ack at the end of the transaction.
+#define I2C_I2C_CNFG_0_NOACK_SHIFT _MK_SHIFT_CONST(8)
+#define I2C_I2C_CNFG_0_NOACK_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_CNFG_0_NOACK_SHIFT)
+#define I2C_I2C_CNFG_0_NOACK_RANGE 8:8
+#define I2C_I2C_CNFG_0_NOACK_WOFFSET 0x0
+#define I2C_I2C_CNFG_0_NOACK_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_NOACK_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_CNFG_0_NOACK_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_NOACK_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_NOACK_DISABLE _MK_ENUM_CONST(0)
+#define I2C_I2C_CNFG_0_NOACK_ENABLE _MK_ENUM_CONST(1)
+
+// Read/Write Command for Slave 2:
+// 1 - Read Transaction;
+// 0 - write Transaction.
+// For a 7-bit slave address,this bit must match
+// with the LSB of address byte for slave 2.
+// Valid only when bit-4 (SLV2) of this register is
+// set
+#define I2C_I2C_CNFG_0_CMD2_SHIFT _MK_SHIFT_CONST(7)
+#define I2C_I2C_CNFG_0_CMD2_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_CNFG_0_CMD2_SHIFT)
+#define I2C_I2C_CNFG_0_CMD2_RANGE 7:7
+#define I2C_I2C_CNFG_0_CMD2_WOFFSET 0x0
+#define I2C_I2C_CNFG_0_CMD2_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_CMD2_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_CNFG_0_CMD2_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_CMD2_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_CMD2_DISABLE _MK_ENUM_CONST(0)
+#define I2C_I2C_CNFG_0_CMD2_ENABLE _MK_ENUM_CONST(1)
+
+// Read/Write Command for Slave 1:
+// 1 - Read Transaction;
+// 0 - write Transaction.
+// Command for Slave 1: For a 7-bit slave address
+// this bit must match with the LSB of address
+// byte for slave2.
+#define I2C_I2C_CNFG_0_CMD1_SHIFT _MK_SHIFT_CONST(6)
+#define I2C_I2C_CNFG_0_CMD1_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_CNFG_0_CMD1_SHIFT)
+#define I2C_I2C_CNFG_0_CMD1_RANGE 6:6
+#define I2C_I2C_CNFG_0_CMD1_WOFFSET 0x0
+#define I2C_I2C_CNFG_0_CMD1_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_CMD1_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_CNFG_0_CMD1_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_CMD1_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_CMD1_DISABLE _MK_ENUM_CONST(0)
+#define I2C_I2C_CNFG_0_CMD1_ENABLE _MK_ENUM_CONST(1)
+
+// 1 = Yes, a Start byte needs to be sent.
+#define I2C_I2C_CNFG_0_START_SHIFT _MK_SHIFT_CONST(5)
+#define I2C_I2C_CNFG_0_START_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_CNFG_0_START_SHIFT)
+#define I2C_I2C_CNFG_0_START_RANGE 5:5
+#define I2C_I2C_CNFG_0_START_WOFFSET 0x0
+#define I2C_I2C_CNFG_0_START_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_START_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_CNFG_0_START_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_START_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_START_DISABLE _MK_ENUM_CONST(0)
+#define I2C_I2C_CNFG_0_START_ENABLE _MK_ENUM_CONST(1)
+
+// 1 - Enables a two slave transaction;
+// 0 = No command for Slave 2 present.
+#define I2C_I2C_CNFG_0_SLV2_SHIFT _MK_SHIFT_CONST(4)
+#define I2C_I2C_CNFG_0_SLV2_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_CNFG_0_SLV2_SHIFT)
+#define I2C_I2C_CNFG_0_SLV2_RANGE 4:4
+#define I2C_I2C_CNFG_0_SLV2_WOFFSET 0x0
+#define I2C_I2C_CNFG_0_SLV2_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_SLV2_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_CNFG_0_SLV2_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_SLV2_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_SLV2_DISABLE _MK_ENUM_CONST(0)
+#define I2C_I2C_CNFG_0_SLV2_ENABLE _MK_ENUM_CONST(1)
+
+// The Number of bytes to be transmitted per
+// transaction 000= 1byte ... 111 = 8bytes;
+// In a two slave transaction number of bytes
+// should be programmed less than 011.
+#define I2C_I2C_CNFG_0_LENGTH_SHIFT _MK_SHIFT_CONST(1)
+#define I2C_I2C_CNFG_0_LENGTH_FIELD (_MK_MASK_CONST(0x7) << I2C_I2C_CNFG_0_LENGTH_SHIFT)
+#define I2C_I2C_CNFG_0_LENGTH_RANGE 3:1
+#define I2C_I2C_CNFG_0_LENGTH_WOFFSET 0x0
+#define I2C_I2C_CNFG_0_LENGTH_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_LENGTH_DEFAULT_MASK _MK_MASK_CONST(0x7)
+#define I2C_I2C_CNFG_0_LENGTH_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_LENGTH_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// Address mode defines whether a 7-bit or a
+// 10-bit slave address is programmed.
+// 1 = 10-bit device address
+// 0 = 7-bit device address
+#define I2C_I2C_CNFG_0_A_MOD_SHIFT _MK_SHIFT_CONST(0)
+#define I2C_I2C_CNFG_0_A_MOD_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_CNFG_0_A_MOD_SHIFT)
+#define I2C_I2C_CNFG_0_A_MOD_RANGE 0:0
+#define I2C_I2C_CNFG_0_A_MOD_WOFFSET 0x0
+#define I2C_I2C_CNFG_0_A_MOD_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_A_MOD_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_CNFG_0_A_MOD_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_A_MOD_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_CNFG_0_A_MOD_SEVEN_BIT_DEVICE_ADDRESS _MK_ENUM_CONST(0)
+#define I2C_I2C_CNFG_0_A_MOD_TEN_BIT_DEVICE_ADDRESS _MK_ENUM_CONST(1)
+
+//I2C Slave-1 Address
+//I2C_CMD_ADDR0 is programmed the 7 Bit or 10 Bit address of slave 1 with which the transaction is intended;
+
+// Register I2C_I2C_CMD_ADDR0_0
+#define I2C_I2C_CMD_ADDR0_0 _MK_ADDR_CONST(0x4)
+#define I2C_I2C_CMD_ADDR0_0_WORD_COUNT 0x1
+#define I2C_I2C_CMD_ADDR0_0_RESET_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_ADDR0_0_RESET_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_CMD_ADDR0_0_SW_DEFAULT_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_ADDR0_0_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_ADDR0_0_READ_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_CMD_ADDR0_0_WRITE_MASK _MK_MASK_CONST(0x3ff)
+// Reserved = 0
+#define I2C_I2C_CMD_ADDR0_0_N_A2_SHIFT _MK_SHIFT_CONST(10)
+#define I2C_I2C_CMD_ADDR0_0_N_A2_FIELD (_MK_MASK_CONST(0x3fffff) << I2C_I2C_CMD_ADDR0_0_N_A2_SHIFT)
+#define I2C_I2C_CMD_ADDR0_0_N_A2_RANGE 31:10
+#define I2C_I2C_CMD_ADDR0_0_N_A2_WOFFSET 0x0
+#define I2C_I2C_CMD_ADDR0_0_N_A2_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_ADDR0_0_N_A2_DEFAULT_MASK _MK_MASK_CONST(0x3fffff)
+#define I2C_I2C_CMD_ADDR0_0_N_A2_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_ADDR0_0_N_A2_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// In case of 7-Bit mode address is written in the
+// I2C_CMD_ADDR0[7:1] and I2C_CMD_ADDR0[0] indicates the
+// read/write transaction.I2C_CMD_ADDR0[0] bit must match
+// with the I2C_CNFG[6].
+// In case of 10-Bit mode addess is written in
+// I2C_CMD_ADDR0[9:0] and I2C_CNFG[6] indicates the
+// read/write transaction.
+#define I2C_I2C_CMD_ADDR0_0_ADDR0_SHIFT _MK_SHIFT_CONST(0)
+#define I2C_I2C_CMD_ADDR0_0_ADDR0_FIELD (_MK_MASK_CONST(0x3ff) << I2C_I2C_CMD_ADDR0_0_ADDR0_SHIFT)
+#define I2C_I2C_CMD_ADDR0_0_ADDR0_RANGE 9:0
+#define I2C_I2C_CMD_ADDR0_0_ADDR0_WOFFSET 0x0
+#define I2C_I2C_CMD_ADDR0_0_ADDR0_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_ADDR0_0_ADDR0_DEFAULT_MASK _MK_MASK_CONST(0x3ff)
+#define I2C_I2C_CMD_ADDR0_0_ADDR0_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_ADDR0_0_ADDR0_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+//I2C Slave-2 Address
+//I2C_CMD_ADDR1 is programmed the 7 Bit or 10 Bit address of slave 2 with which the transaction is intended;
+
+// Register I2C_I2C_CMD_ADDR1_0
+#define I2C_I2C_CMD_ADDR1_0 _MK_ADDR_CONST(0x8)
+#define I2C_I2C_CMD_ADDR1_0_WORD_COUNT 0x1
+#define I2C_I2C_CMD_ADDR1_0_RESET_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_ADDR1_0_RESET_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_CMD_ADDR1_0_SW_DEFAULT_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_ADDR1_0_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_ADDR1_0_READ_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_CMD_ADDR1_0_WRITE_MASK _MK_MASK_CONST(0x3ff)
+// Reserved = 0
+#define I2C_I2C_CMD_ADDR1_0_N_A3_SHIFT _MK_SHIFT_CONST(10)
+#define I2C_I2C_CMD_ADDR1_0_N_A3_FIELD (_MK_MASK_CONST(0x3fffff) << I2C_I2C_CMD_ADDR1_0_N_A3_SHIFT)
+#define I2C_I2C_CMD_ADDR1_0_N_A3_RANGE 31:10
+#define I2C_I2C_CMD_ADDR1_0_N_A3_WOFFSET 0x0
+#define I2C_I2C_CMD_ADDR1_0_N_A3_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_ADDR1_0_N_A3_DEFAULT_MASK _MK_MASK_CONST(0x3fffff)
+#define I2C_I2C_CMD_ADDR1_0_N_A3_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_ADDR1_0_N_A3_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// In case of 7-Bit mode address is written in the
+// I2C_CMD_ADDR0[7:1] and I2C_CMD_ADDR0[0] indicates the
+// read/write transaction.I2C_CMD_ADDR0[0] bit must match
+// with the I2C_CNFG[7].
+// In case of 10-Bit mode addess is written in
+// I2C_CMD_ADDR0[9:0] and I2C_CNFG[7] indicates the
+// read/write transaction.
+#define I2C_I2C_CMD_ADDR1_0_ADDR1_SHIFT _MK_SHIFT_CONST(0)
+#define I2C_I2C_CMD_ADDR1_0_ADDR1_FIELD (_MK_MASK_CONST(0x3ff) << I2C_I2C_CMD_ADDR1_0_ADDR1_SHIFT)
+#define I2C_I2C_CMD_ADDR1_0_ADDR1_RANGE 9:0
+#define I2C_I2C_CMD_ADDR1_0_ADDR1_WOFFSET 0x0
+#define I2C_I2C_CMD_ADDR1_0_ADDR1_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_ADDR1_0_ADDR1_DEFAULT_MASK _MK_MASK_CONST(0x3ff)
+#define I2C_I2C_CMD_ADDR1_0_ADDR1_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_ADDR1_0_ADDR1_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+//IC Controller Data 1: Transmit/Receive
+//The four Least Significant Bytes of Data to be Transamitted is loaded into the register when I2c Master
+//is in Write Mode;
+//The four Least Significant Bytes of Data are Read through this register when I2c Master is in Read mode.
+
+// Register I2C_I2C_CMD_DATA1_0
+#define I2C_I2C_CMD_DATA1_0 _MK_ADDR_CONST(0xc)
+#define I2C_I2C_CMD_DATA1_0_WORD_COUNT 0x1
+#define I2C_I2C_CMD_DATA1_0_RESET_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA1_0_RESET_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_CMD_DATA1_0_SW_DEFAULT_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA1_0_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA1_0_READ_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_CMD_DATA1_0_WRITE_MASK _MK_MASK_CONST(0xffffffff)
+// Fourth data byte to be sent/received
+#define I2C_I2C_CMD_DATA1_0_DATA4_SHIFT _MK_SHIFT_CONST(24)
+#define I2C_I2C_CMD_DATA1_0_DATA4_FIELD (_MK_MASK_CONST(0xff) << I2C_I2C_CMD_DATA1_0_DATA4_SHIFT)
+#define I2C_I2C_CMD_DATA1_0_DATA4_RANGE 31:24
+#define I2C_I2C_CMD_DATA1_0_DATA4_WOFFSET 0x0
+#define I2C_I2C_CMD_DATA1_0_DATA4_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA1_0_DATA4_DEFAULT_MASK _MK_MASK_CONST(0xff)
+#define I2C_I2C_CMD_DATA1_0_DATA4_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA1_0_DATA4_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// Third data byte to be sent/received
+#define I2C_I2C_CMD_DATA1_0_DATA3_SHIFT _MK_SHIFT_CONST(16)
+#define I2C_I2C_CMD_DATA1_0_DATA3_FIELD (_MK_MASK_CONST(0xff) << I2C_I2C_CMD_DATA1_0_DATA3_SHIFT)
+#define I2C_I2C_CMD_DATA1_0_DATA3_RANGE 23:16
+#define I2C_I2C_CMD_DATA1_0_DATA3_WOFFSET 0x0
+#define I2C_I2C_CMD_DATA1_0_DATA3_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA1_0_DATA3_DEFAULT_MASK _MK_MASK_CONST(0xff)
+#define I2C_I2C_CMD_DATA1_0_DATA3_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA1_0_DATA3_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// Second data byte to be sent/received
+#define I2C_I2C_CMD_DATA1_0_DATA2_SHIFT _MK_SHIFT_CONST(8)
+#define I2C_I2C_CMD_DATA1_0_DATA2_FIELD (_MK_MASK_CONST(0xff) << I2C_I2C_CMD_DATA1_0_DATA2_SHIFT)
+#define I2C_I2C_CMD_DATA1_0_DATA2_RANGE 15:8
+#define I2C_I2C_CMD_DATA1_0_DATA2_WOFFSET 0x0
+#define I2C_I2C_CMD_DATA1_0_DATA2_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA1_0_DATA2_DEFAULT_MASK _MK_MASK_CONST(0xff)
+#define I2C_I2C_CMD_DATA1_0_DATA2_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA1_0_DATA2_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// This register contains the first data byte to be sent/received.
+#define I2C_I2C_CMD_DATA1_0_DATA1_SHIFT _MK_SHIFT_CONST(0)
+#define I2C_I2C_CMD_DATA1_0_DATA1_FIELD (_MK_MASK_CONST(0xff) << I2C_I2C_CMD_DATA1_0_DATA1_SHIFT)
+#define I2C_I2C_CMD_DATA1_0_DATA1_RANGE 7:0
+#define I2C_I2C_CMD_DATA1_0_DATA1_WOFFSET 0x0
+#define I2C_I2C_CMD_DATA1_0_DATA1_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA1_0_DATA1_DEFAULT_MASK _MK_MASK_CONST(0xff)
+#define I2C_I2C_CMD_DATA1_0_DATA1_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA1_0_DATA1_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+//IC Controller Data 2: Transmit/Receive
+//The four Most Significant Bytes of Data to be Transamitted is loaded into the register when I2c Master is in Write Mode;
+//The four Most Significant Bytes of Data are Read through this register when I2c Master is in Read mode.
+
+// Register I2C_I2C_CMD_DATA2_0
+#define I2C_I2C_CMD_DATA2_0 _MK_ADDR_CONST(0x10)
+#define I2C_I2C_CMD_DATA2_0_WORD_COUNT 0x1
+#define I2C_I2C_CMD_DATA2_0_RESET_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA2_0_RESET_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_CMD_DATA2_0_SW_DEFAULT_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA2_0_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA2_0_READ_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_CMD_DATA2_0_WRITE_MASK _MK_MASK_CONST(0xffffffff)
+// Eighth data byte to be sent/received
+#define I2C_I2C_CMD_DATA2_0_DATA8_SHIFT _MK_SHIFT_CONST(24)
+#define I2C_I2C_CMD_DATA2_0_DATA8_FIELD (_MK_MASK_CONST(0xff) << I2C_I2C_CMD_DATA2_0_DATA8_SHIFT)
+#define I2C_I2C_CMD_DATA2_0_DATA8_RANGE 31:24
+#define I2C_I2C_CMD_DATA2_0_DATA8_WOFFSET 0x0
+#define I2C_I2C_CMD_DATA2_0_DATA8_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA2_0_DATA8_DEFAULT_MASK _MK_MASK_CONST(0xff)
+#define I2C_I2C_CMD_DATA2_0_DATA8_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA2_0_DATA8_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// Seventh data byte to be sent/received
+#define I2C_I2C_CMD_DATA2_0_DATA7_SHIFT _MK_SHIFT_CONST(16)
+#define I2C_I2C_CMD_DATA2_0_DATA7_FIELD (_MK_MASK_CONST(0xff) << I2C_I2C_CMD_DATA2_0_DATA7_SHIFT)
+#define I2C_I2C_CMD_DATA2_0_DATA7_RANGE 23:16
+#define I2C_I2C_CMD_DATA2_0_DATA7_WOFFSET 0x0
+#define I2C_I2C_CMD_DATA2_0_DATA7_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA2_0_DATA7_DEFAULT_MASK _MK_MASK_CONST(0xff)
+#define I2C_I2C_CMD_DATA2_0_DATA7_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA2_0_DATA7_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// Sixth data byte to be sent/received
+#define I2C_I2C_CMD_DATA2_0_DATA6_SHIFT _MK_SHIFT_CONST(8)
+#define I2C_I2C_CMD_DATA2_0_DATA6_FIELD (_MK_MASK_CONST(0xff) << I2C_I2C_CMD_DATA2_0_DATA6_SHIFT)
+#define I2C_I2C_CMD_DATA2_0_DATA6_RANGE 15:8
+#define I2C_I2C_CMD_DATA2_0_DATA6_WOFFSET 0x0
+#define I2C_I2C_CMD_DATA2_0_DATA6_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA2_0_DATA6_DEFAULT_MASK _MK_MASK_CONST(0xff)
+#define I2C_I2C_CMD_DATA2_0_DATA6_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA2_0_DATA6_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// This register contains the Fifth data byte to be sent/received.
+#define I2C_I2C_CMD_DATA2_0_DATA5_SHIFT _MK_SHIFT_CONST(0)
+#define I2C_I2C_CMD_DATA2_0_DATA5_FIELD (_MK_MASK_CONST(0xff) << I2C_I2C_CMD_DATA2_0_DATA5_SHIFT)
+#define I2C_I2C_CMD_DATA2_0_DATA5_RANGE 7:0
+#define I2C_I2C_CMD_DATA2_0_DATA5_WOFFSET 0x0
+#define I2C_I2C_CMD_DATA2_0_DATA5_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA2_0_DATA5_DEFAULT_MASK _MK_MASK_CONST(0xff)
+#define I2C_I2C_CMD_DATA2_0_DATA5_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_CMD_DATA2_0_DATA5_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+
+// Reserved address 20 [0x14]
+
+// Reserved address 24 [0x18]
+//IC Controller Status (Master)
+//I2C_STATUS gives the status of I2c Master operation
+
+// Register I2C_I2C_STATUS_0
+#define I2C_I2C_STATUS_0 _MK_ADDR_CONST(0x1c)
+#define I2C_I2C_STATUS_0_WORD_COUNT 0x1
+#define I2C_I2C_STATUS_0_RESET_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_STATUS_0_RESET_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_STATUS_0_SW_DEFAULT_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_STATUS_0_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_STATUS_0_READ_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_STATUS_0_WRITE_MASK _MK_MASK_CONST(0x0)
+// Reserved = 0
+#define I2C_I2C_STATUS_0_N_A4_SHIFT _MK_SHIFT_CONST(9)
+#define I2C_I2C_STATUS_0_N_A4_FIELD (_MK_MASK_CONST(0x7fffff) << I2C_I2C_STATUS_0_N_A4_SHIFT)
+#define I2C_I2C_STATUS_0_N_A4_RANGE 31:9
+#define I2C_I2C_STATUS_0_N_A4_WOFFSET 0x0
+#define I2C_I2C_STATUS_0_N_A4_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_STATUS_0_N_A4_DEFAULT_MASK _MK_MASK_CONST(0x7fffff)
+#define I2C_I2C_STATUS_0_N_A4_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_STATUS_0_N_A4_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// 1 = Bus Busy.
+#define I2C_I2C_STATUS_0_BUSY_SHIFT _MK_SHIFT_CONST(8)
+#define I2C_I2C_STATUS_0_BUSY_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_STATUS_0_BUSY_SHIFT)
+#define I2C_I2C_STATUS_0_BUSY_RANGE 8:8
+#define I2C_I2C_STATUS_0_BUSY_WOFFSET 0x0
+#define I2C_I2C_STATUS_0_BUSY_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_STATUS_0_BUSY_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_STATUS_0_BUSY_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_STATUS_0_BUSY_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_STATUS_0_BUSY_NOT_BUSY _MK_ENUM_CONST(0)
+#define I2C_I2C_STATUS_0_BUSY_BUSY _MK_ENUM_CONST(1)
+
+// Transaction for Slave2 for x byte failed. x is 'h0 to 'ha.
+// all others invalid
+#define I2C_I2C_STATUS_0_CMD2_STAT_SHIFT _MK_SHIFT_CONST(4)
+#define I2C_I2C_STATUS_0_CMD2_STAT_FIELD (_MK_MASK_CONST(0xf) << I2C_I2C_STATUS_0_CMD2_STAT_SHIFT)
+#define I2C_I2C_STATUS_0_CMD2_STAT_RANGE 7:4
+#define I2C_I2C_STATUS_0_CMD2_STAT_WOFFSET 0x0
+#define I2C_I2C_STATUS_0_CMD2_STAT_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_STATUS_0_CMD2_STAT_DEFAULT_MASK _MK_MASK_CONST(0xf)
+#define I2C_I2C_STATUS_0_CMD2_STAT_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_STATUS_0_CMD2_STAT_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_STATUS_0_CMD2_STAT_SL2_XFER_SUCCESSFUL _MK_ENUM_CONST(0)
+#define I2C_I2C_STATUS_0_CMD2_STAT_SL2_NOACK_FOR_BYTE1 _MK_ENUM_CONST(1)
+#define I2C_I2C_STATUS_0_CMD2_STAT_SL2_NOACK_FOR_BYTE2 _MK_ENUM_CONST(2)
+#define I2C_I2C_STATUS_0_CMD2_STAT_SL2_NOACK_FOR_BYTE3 _MK_ENUM_CONST(3)
+#define I2C_I2C_STATUS_0_CMD2_STAT_SL2_NOACK_FOR_BYTE4 _MK_ENUM_CONST(4)
+#define I2C_I2C_STATUS_0_CMD2_STAT_SL2_NOACK_FOR_BYTE5 _MK_ENUM_CONST(5)
+#define I2C_I2C_STATUS_0_CMD2_STAT_SL2_NOACK_FOR_BYTE6 _MK_ENUM_CONST(6)
+#define I2C_I2C_STATUS_0_CMD2_STAT_SL2_NOACK_FOR_BYTE7 _MK_ENUM_CONST(7)
+#define I2C_I2C_STATUS_0_CMD2_STAT_SL2_NOACK_FOR_BYTE8 _MK_ENUM_CONST(8)
+#define I2C_I2C_STATUS_0_CMD2_STAT_SL2_NOACK_FOR_BYTE9 _MK_ENUM_CONST(9)
+#define I2C_I2C_STATUS_0_CMD2_STAT_SL2_NOACK_FOR_BYTE10 _MK_ENUM_CONST(10)
+
+// Transaction for Slave1 for x byte failed. x is 'h0 to 'ha
+// all others invalid
+#define I2C_I2C_STATUS_0_CMD1_STAT_SHIFT _MK_SHIFT_CONST(0)
+#define I2C_I2C_STATUS_0_CMD1_STAT_FIELD (_MK_MASK_CONST(0xf) << I2C_I2C_STATUS_0_CMD1_STAT_SHIFT)
+#define I2C_I2C_STATUS_0_CMD1_STAT_RANGE 3:0
+#define I2C_I2C_STATUS_0_CMD1_STAT_WOFFSET 0x0
+#define I2C_I2C_STATUS_0_CMD1_STAT_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_STATUS_0_CMD1_STAT_DEFAULT_MASK _MK_MASK_CONST(0xf)
+#define I2C_I2C_STATUS_0_CMD1_STAT_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_STATUS_0_CMD1_STAT_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_STATUS_0_CMD1_STAT_SL1_XFER_SUCCESSFUL _MK_ENUM_CONST(0)
+#define I2C_I2C_STATUS_0_CMD1_STAT_SL1_NOACK_FOR_BYTE1 _MK_ENUM_CONST(1)
+#define I2C_I2C_STATUS_0_CMD1_STAT_SL1_NOACK_FOR_BYTE2 _MK_ENUM_CONST(2)
+#define I2C_I2C_STATUS_0_CMD1_STAT_SL1_NOACK_FOR_BYTE3 _MK_ENUM_CONST(3)
+#define I2C_I2C_STATUS_0_CMD1_STAT_SL1_NOACK_FOR_BYTE4 _MK_ENUM_CONST(4)
+#define I2C_I2C_STATUS_0_CMD1_STAT_SL1_NOACK_FOR_BYTE5 _MK_ENUM_CONST(5)
+#define I2C_I2C_STATUS_0_CMD1_STAT_SL1_NOACK_FOR_BYTE6 _MK_ENUM_CONST(6)
+#define I2C_I2C_STATUS_0_CMD1_STAT_SL1_NOACK_FOR_BYTE7 _MK_ENUM_CONST(7)
+#define I2C_I2C_STATUS_0_CMD1_STAT_SL1_NOACK_FOR_BYTE8 _MK_ENUM_CONST(8)
+#define I2C_I2C_STATUS_0_CMD1_STAT_SL1_NOACK_FOR_BYTE9 _MK_ENUM_CONST(9)
+#define I2C_I2C_STATUS_0_CMD1_STAT_SL1_NOACK_FOR_BYTE10 _MK_ENUM_CONST(10)
+
+//IC Controller Configuration (Slave)
+//I2C_SL_CNFG register is used to configure,
+//Enable mode of slave Ack,
+//Enable mode of slave response to general call address.
+//The register should be programmed when I2c controller is configured as slave.
+
+// Register I2C_I2C_SL_CNFG_0
+#define I2C_I2C_SL_CNFG_0 _MK_ADDR_CONST(0x20)
+#define I2C_I2C_SL_CNFG_0_WORD_COUNT 0x1
+#define I2C_I2C_SL_CNFG_0_RESET_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_CNFG_0_RESET_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_SL_CNFG_0_SW_DEFAULT_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_CNFG_0_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_CNFG_0_READ_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_SL_CNFG_0_WRITE_MASK _MK_MASK_CONST(0x3)
+// Reserved = 0
+#define I2C_I2C_SL_CNFG_0_N_A5_SHIFT _MK_SHIFT_CONST(2)
+#define I2C_I2C_SL_CNFG_0_N_A5_FIELD (_MK_MASK_CONST(0x3fffffff) << I2C_I2C_SL_CNFG_0_N_A5_SHIFT)
+#define I2C_I2C_SL_CNFG_0_N_A5_RANGE 31:2
+#define I2C_I2C_SL_CNFG_0_N_A5_WOFFSET 0x0
+#define I2C_I2C_SL_CNFG_0_N_A5_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_CNFG_0_N_A5_DEFAULT_MASK _MK_MASK_CONST(0x3fffffff)
+#define I2C_I2C_SL_CNFG_0_N_A5_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_CNFG_0_N_A5_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// Disable Slave Ack. when bit set to 1 slave will not ack
+// reception of address or data byte.
+#define I2C_I2C_SL_CNFG_0_NACK_SHIFT _MK_SHIFT_CONST(1)
+#define I2C_I2C_SL_CNFG_0_NACK_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_SL_CNFG_0_NACK_SHIFT)
+#define I2C_I2C_SL_CNFG_0_NACK_RANGE 1:1
+#define I2C_I2C_SL_CNFG_0_NACK_WOFFSET 0x0
+#define I2C_I2C_SL_CNFG_0_NACK_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_CNFG_0_NACK_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_SL_CNFG_0_NACK_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_CNFG_0_NACK_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_CNFG_0_NACK_DISABLE _MK_ENUM_CONST(0)
+#define I2C_I2C_SL_CNFG_0_NACK_ENABLE _MK_ENUM_CONST(1)
+
+// Enable Slave response to general call address (zero
+// address) when bit is set to 1.
+#define I2C_I2C_SL_CNFG_0_RESP_SHIFT _MK_SHIFT_CONST(0)
+#define I2C_I2C_SL_CNFG_0_RESP_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_SL_CNFG_0_RESP_SHIFT)
+#define I2C_I2C_SL_CNFG_0_RESP_RANGE 0:0
+#define I2C_I2C_SL_CNFG_0_RESP_WOFFSET 0x0
+#define I2C_I2C_SL_CNFG_0_RESP_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_CNFG_0_RESP_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_SL_CNFG_0_RESP_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_CNFG_0_RESP_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_CNFG_0_RESP_DISABLE _MK_ENUM_CONST(0)
+#define I2C_I2C_SL_CNFG_0_RESP_ENABLE _MK_ENUM_CONST(1)
+
+//IC Controller Slave Receive/Transmit Data (Slave)
+
+// Register I2C_I2C_SL_RCVD_0
+#define I2C_I2C_SL_RCVD_0 _MK_ADDR_CONST(0x24)
+#define I2C_I2C_SL_RCVD_0_WORD_COUNT 0x1
+#define I2C_I2C_SL_RCVD_0_RESET_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_RCVD_0_RESET_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_SL_RCVD_0_SW_DEFAULT_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_RCVD_0_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_RCVD_0_READ_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_SL_RCVD_0_WRITE_MASK _MK_MASK_CONST(0xff)
+// Reserved = 0
+#define I2C_I2C_SL_RCVD_0_N_A6_SHIFT _MK_SHIFT_CONST(8)
+#define I2C_I2C_SL_RCVD_0_N_A6_FIELD (_MK_MASK_CONST(0xffffff) << I2C_I2C_SL_RCVD_0_N_A6_SHIFT)
+#define I2C_I2C_SL_RCVD_0_N_A6_RANGE 31:8
+#define I2C_I2C_SL_RCVD_0_N_A6_WOFFSET 0x0
+#define I2C_I2C_SL_RCVD_0_N_A6_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_RCVD_0_N_A6_DEFAULT_MASK _MK_MASK_CONST(0xffffff)
+#define I2C_I2C_SL_RCVD_0_N_A6_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_RCVD_0_N_A6_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+//slave Received data
+#define I2C_I2C_SL_RCVD_0_SL_DATA_SHIFT _MK_SHIFT_CONST(0)
+#define I2C_I2C_SL_RCVD_0_SL_DATA_FIELD (_MK_MASK_CONST(0xff) << I2C_I2C_SL_RCVD_0_SL_DATA_SHIFT)
+#define I2C_I2C_SL_RCVD_0_SL_DATA_RANGE 7:0
+#define I2C_I2C_SL_RCVD_0_SL_DATA_WOFFSET 0x0
+#define I2C_I2C_SL_RCVD_0_SL_DATA_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_RCVD_0_SL_DATA_DEFAULT_MASK _MK_MASK_CONST(0xff)
+#define I2C_I2C_SL_RCVD_0_SL_DATA_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_RCVD_0_SL_DATA_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+//IC Controller Slave Status (Slave)
+
+// Register I2C_I2C_SL_STATUS_0
+#define I2C_I2C_SL_STATUS_0 _MK_ADDR_CONST(0x28)
+#define I2C_I2C_SL_STATUS_0_WORD_COUNT 0x1
+#define I2C_I2C_SL_STATUS_0_RESET_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_RESET_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_SL_STATUS_0_SW_DEFAULT_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_READ_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_SL_STATUS_0_WRITE_MASK _MK_MASK_CONST(0x0)
+// Reserved = 0
+#define I2C_I2C_SL_STATUS_0_N_A7_SHIFT _MK_SHIFT_CONST(4)
+#define I2C_I2C_SL_STATUS_0_N_A7_FIELD (_MK_MASK_CONST(0xfffffff) << I2C_I2C_SL_STATUS_0_N_A7_SHIFT)
+#define I2C_I2C_SL_STATUS_0_N_A7_RANGE 31:4
+#define I2C_I2C_SL_STATUS_0_N_A7_WOFFSET 0x0
+#define I2C_I2C_SL_STATUS_0_N_A7_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_N_A7_DEFAULT_MASK _MK_MASK_CONST(0xfffffff)
+#define I2C_I2C_SL_STATUS_0_N_A7_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_N_A7_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// 1 = Interrupt has been generated by slave
+// 0 = No interrupt generated
+#define I2C_I2C_SL_STATUS_0_SL_IRQ_SHIFT _MK_SHIFT_CONST(3)
+#define I2C_I2C_SL_STATUS_0_SL_IRQ_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_SL_STATUS_0_SL_IRQ_SHIFT)
+#define I2C_I2C_SL_STATUS_0_SL_IRQ_RANGE 3:3
+#define I2C_I2C_SL_STATUS_0_SL_IRQ_WOFFSET 0x0
+#define I2C_I2C_SL_STATUS_0_SL_IRQ_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_SL_IRQ_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_SL_STATUS_0_SL_IRQ_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_SL_IRQ_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_SL_IRQ_UNSET _MK_ENUM_CONST(0)
+#define I2C_I2C_SL_STATUS_0_SL_IRQ_SET _MK_ENUM_CONST(1)
+
+// New Transaction Receieved status
+// 1 = Transaction occurred
+// 0 = No transaction occurred
+#define I2C_I2C_SL_STATUS_0_RCVD_SHIFT _MK_SHIFT_CONST(2)
+#define I2C_I2C_SL_STATUS_0_RCVD_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_SL_STATUS_0_RCVD_SHIFT)
+#define I2C_I2C_SL_STATUS_0_RCVD_RANGE 2:2
+#define I2C_I2C_SL_STATUS_0_RCVD_WOFFSET 0x0
+#define I2C_I2C_SL_STATUS_0_RCVD_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_RCVD_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_SL_STATUS_0_RCVD_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_RCVD_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_RCVD_NO_TRANSACTION_OCCURED _MK_ENUM_CONST(0)
+#define I2C_I2C_SL_STATUS_0_RCVD_TRANSACTION_OCCURED _MK_ENUM_CONST(1)
+
+// Slave Transaction status 0 = Write 1=Read
+#define I2C_I2C_SL_STATUS_0_RNW_SHIFT _MK_SHIFT_CONST(1)
+#define I2C_I2C_SL_STATUS_0_RNW_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_SL_STATUS_0_RNW_SHIFT)
+#define I2C_I2C_SL_STATUS_0_RNW_RANGE 1:1
+#define I2C_I2C_SL_STATUS_0_RNW_WOFFSET 0x0
+#define I2C_I2C_SL_STATUS_0_RNW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_RNW_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_SL_STATUS_0_RNW_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_RNW_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_RNW_WRITE _MK_ENUM_CONST(0)
+#define I2C_I2C_SL_STATUS_0_RNW_READ _MK_ENUM_CONST(1)
+
+// Zero Address Status 1 = Yes, slave responded 0 = No,
+// slave did not respond
+#define I2C_I2C_SL_STATUS_0_ZA_SHIFT _MK_SHIFT_CONST(0)
+#define I2C_I2C_SL_STATUS_0_ZA_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_SL_STATUS_0_ZA_SHIFT)
+#define I2C_I2C_SL_STATUS_0_ZA_RANGE 0:0
+#define I2C_I2C_SL_STATUS_0_ZA_WOFFSET 0x0
+#define I2C_I2C_SL_STATUS_0_ZA_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_ZA_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_SL_STATUS_0_ZA_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_ZA_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_STATUS_0_ZA_NO_SLAVE_RESPONSE _MK_ENUM_CONST(0)
+#define I2C_I2C_SL_STATUS_0_ZA_SLAVE_RESPONSE _MK_ENUM_CONST(1)
+
+//IC Controller Slave Address 1 Register (Slave)
+
+// Register I2C_I2C_SL_ADDR1_0
+#define I2C_I2C_SL_ADDR1_0 _MK_ADDR_CONST(0x2c)
+#define I2C_I2C_SL_ADDR1_0_WORD_COUNT 0x1
+#define I2C_I2C_SL_ADDR1_0_RESET_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR1_0_RESET_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_SL_ADDR1_0_SW_DEFAULT_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR1_0_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR1_0_READ_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_SL_ADDR1_0_WRITE_MASK _MK_MASK_CONST(0xff)
+// Reserved = 0
+#define I2C_I2C_SL_ADDR1_0_N_A8_SHIFT _MK_SHIFT_CONST(8)
+#define I2C_I2C_SL_ADDR1_0_N_A8_FIELD (_MK_MASK_CONST(0xffffff) << I2C_I2C_SL_ADDR1_0_N_A8_SHIFT)
+#define I2C_I2C_SL_ADDR1_0_N_A8_RANGE 31:8
+#define I2C_I2C_SL_ADDR1_0_N_A8_WOFFSET 0x0
+#define I2C_I2C_SL_ADDR1_0_N_A8_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR1_0_N_A8_DEFAULT_MASK _MK_MASK_CONST(0xffffff)
+#define I2C_I2C_SL_ADDR1_0_N_A8_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR1_0_N_A8_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// For a 10-bit slave address, this field is the
+// least significant 8 bits.
+#define I2C_I2C_SL_ADDR1_0_SL_ADDR0_SHIFT _MK_SHIFT_CONST(0)
+#define I2C_I2C_SL_ADDR1_0_SL_ADDR0_FIELD (_MK_MASK_CONST(0xff) << I2C_I2C_SL_ADDR1_0_SL_ADDR0_SHIFT)
+#define I2C_I2C_SL_ADDR1_0_SL_ADDR0_RANGE 7:0
+#define I2C_I2C_SL_ADDR1_0_SL_ADDR0_WOFFSET 0x0
+#define I2C_I2C_SL_ADDR1_0_SL_ADDR0_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR1_0_SL_ADDR0_DEFAULT_MASK _MK_MASK_CONST(0xff)
+#define I2C_I2C_SL_ADDR1_0_SL_ADDR0_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR1_0_SL_ADDR0_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+//IC Controller Slave Address 2 Register (Slave)
+
+// Register I2C_I2C_SL_ADDR2_0
+#define I2C_I2C_SL_ADDR2_0 _MK_ADDR_CONST(0x30)
+#define I2C_I2C_SL_ADDR2_0_WORD_COUNT 0x1
+#define I2C_I2C_SL_ADDR2_0_RESET_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR2_0_RESET_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_SL_ADDR2_0_SW_DEFAULT_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR2_0_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR2_0_READ_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_SL_ADDR2_0_WRITE_MASK _MK_MASK_CONST(0x7)
+// Reserved = 0
+#define I2C_I2C_SL_ADDR2_0_N_A9_SHIFT _MK_SHIFT_CONST(3)
+#define I2C_I2C_SL_ADDR2_0_N_A9_FIELD (_MK_MASK_CONST(0x1fffffff) << I2C_I2C_SL_ADDR2_0_N_A9_SHIFT)
+#define I2C_I2C_SL_ADDR2_0_N_A9_RANGE 31:3
+#define I2C_I2C_SL_ADDR2_0_N_A9_WOFFSET 0x0
+#define I2C_I2C_SL_ADDR2_0_N_A9_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR2_0_N_A9_DEFAULT_MASK _MK_MASK_CONST(0x1fffffff)
+#define I2C_I2C_SL_ADDR2_0_N_A9_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR2_0_N_A9_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// In 7 bit address mode these bits are dont care;
+// In 10 bit address mode they represent the 2 MSB of the
+// address.
+#define I2C_I2C_SL_ADDR2_0_SL_ADDR_HI_SHIFT _MK_SHIFT_CONST(1)
+#define I2C_I2C_SL_ADDR2_0_SL_ADDR_HI_FIELD (_MK_MASK_CONST(0x3) << I2C_I2C_SL_ADDR2_0_SL_ADDR_HI_SHIFT)
+#define I2C_I2C_SL_ADDR2_0_SL_ADDR_HI_RANGE 2:1
+#define I2C_I2C_SL_ADDR2_0_SL_ADDR_HI_WOFFSET 0x0
+#define I2C_I2C_SL_ADDR2_0_SL_ADDR_HI_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR2_0_SL_ADDR_HI_DEFAULT_MASK _MK_MASK_CONST(0x3)
+#define I2C_I2C_SL_ADDR2_0_SL_ADDR_HI_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR2_0_SL_ADDR_HI_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+//0 = 7-bit addressing, // 1 - 10 bit addressing
+#define I2C_I2C_SL_ADDR2_0_VLD_SHIFT _MK_SHIFT_CONST(0)
+#define I2C_I2C_SL_ADDR2_0_VLD_FIELD (_MK_MASK_CONST(0x1) << I2C_I2C_SL_ADDR2_0_VLD_SHIFT)
+#define I2C_I2C_SL_ADDR2_0_VLD_RANGE 0:0
+#define I2C_I2C_SL_ADDR2_0_VLD_WOFFSET 0x0
+#define I2C_I2C_SL_ADDR2_0_VLD_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR2_0_VLD_DEFAULT_MASK _MK_MASK_CONST(0x1)
+#define I2C_I2C_SL_ADDR2_0_VLD_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR2_0_VLD_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_ADDR2_0_VLD_SEVEN_BIT_ADDR_MODE _MK_ENUM_CONST(0)
+#define I2C_I2C_SL_ADDR2_0_VLD_TEN_BIT_ADDR_MODE _MK_ENUM_CONST(1)
+
+
+// Reserved address 52 [0x34]
+
+// Reserved address 56 [0x38]
+//IC Slave Controller Delay Count
+
+// Register I2C_I2C_SL_DELAY_COUNT_0
+#define I2C_I2C_SL_DELAY_COUNT_0 _MK_ADDR_CONST(0x3c)
+#define I2C_I2C_SL_DELAY_COUNT_0_WORD_COUNT 0x1
+#define I2C_I2C_SL_DELAY_COUNT_0_RESET_VAL _MK_MASK_CONST(0x1e)
+#define I2C_I2C_SL_DELAY_COUNT_0_RESET_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_SL_DELAY_COUNT_0_SW_DEFAULT_VAL _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_DELAY_COUNT_0_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_DELAY_COUNT_0_READ_MASK _MK_MASK_CONST(0xffffffff)
+#define I2C_I2C_SL_DELAY_COUNT_0_WRITE_MASK _MK_MASK_CONST(0xff)
+// Reserved = 0
+#define I2C_I2C_SL_DELAY_COUNT_0_N_A10_SHIFT _MK_SHIFT_CONST(8)
+#define I2C_I2C_SL_DELAY_COUNT_0_N_A10_FIELD (_MK_MASK_CONST(0xffffff) << I2C_I2C_SL_DELAY_COUNT_0_N_A10_SHIFT)
+#define I2C_I2C_SL_DELAY_COUNT_0_N_A10_RANGE 31:8
+#define I2C_I2C_SL_DELAY_COUNT_0_N_A10_WOFFSET 0x0
+#define I2C_I2C_SL_DELAY_COUNT_0_N_A10_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_DELAY_COUNT_0_N_A10_DEFAULT_MASK _MK_MASK_CONST(0xffffff)
+#define I2C_I2C_SL_DELAY_COUNT_0_N_A10_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_DELAY_COUNT_0_N_A10_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+// The value determines the timing between an address
+// cycle and a subsequent data cycle or two consecutive
+// data cycles on the bus.The I2C_SL_DELAY_COUNT is valid
+// only when internal slave is accessed.
+// I2C_SL_DELAY_COUNT has to be programmed such that
+// TIMING = T * DLY where T is period of clock source
+// selected for I2c; and DLY is I2C_SL_DELAY_COUNT ;
+// TIMING is the desired timing, A value of >= 1250 ns is
+// advisable
+#define I2C_I2C_SL_DELAY_COUNT_0_SL_DELAY_COUNT_SHIFT _MK_SHIFT_CONST(0)
+#define I2C_I2C_SL_DELAY_COUNT_0_SL_DELAY_COUNT_FIELD (_MK_MASK_CONST(0xff) << I2C_I2C_SL_DELAY_COUNT_0_SL_DELAY_COUNT_SHIFT)
+#define I2C_I2C_SL_DELAY_COUNT_0_SL_DELAY_COUNT_RANGE 7:0
+#define I2C_I2C_SL_DELAY_COUNT_0_SL_DELAY_COUNT_WOFFSET 0x0
+#define I2C_I2C_SL_DELAY_COUNT_0_SL_DELAY_COUNT_DEFAULT _MK_MASK_CONST(0x1e)
+#define I2C_I2C_SL_DELAY_COUNT_0_SL_DELAY_COUNT_DEFAULT_MASK _MK_MASK_CONST(0xff)
+#define I2C_I2C_SL_DELAY_COUNT_0_SL_DELAY_COUNT_SW_DEFAULT _MK_MASK_CONST(0x0)
+#define I2C_I2C_SL_DELAY_COUNT_0_SL_DELAY_COUNT_SW_DEFAULT_MASK _MK_MASK_CONST(0x0)
+
+
+//
+// REGISTER LIST
+//
+#define LIST_ARI2C_REGS(_op_) \
+_op_(I2C_I2C_CNFG_0) \
+_op_(I2C_I2C_CMD_ADDR0_0) \
+_op_(I2C_I2C_CMD_ADDR1_0) \
+_op_(I2C_I2C_CMD_DATA1_0) \
+_op_(I2C_I2C_CMD_DATA2_0) \
+_op_(I2C_I2C_STATUS_0) \
+_op_(I2C_I2C_SL_CNFG_0) \
+_op_(I2C_I2C_SL_RCVD_0) \
+_op_(I2C_I2C_SL_STATUS_0) \
+_op_(I2C_I2C_SL_ADDR1_0) \
+_op_(I2C_I2C_SL_ADDR2_0) \
+_op_(I2C_I2C_SL_DELAY_COUNT_0)
+
+
+//
+// ADDRESS SPACES
+//
+
+#define BASE_ADDRESS_I2C 0x00000000
+
+//
+// ARI2C REGISTER BANKS
+//
+
+#define I2C0_FIRST_REG 0x0000 // I2C_I2C_CNFG_0
+#define I2C0_LAST_REG 0x0010 // I2C_I2C_CMD_DATA2_0
+#define I2C1_FIRST_REG 0x001c // I2C_I2C_STATUS_0
+#define I2C1_LAST_REG 0x0030 // I2C_I2C_SL_ADDR2_0
+#define I2C2_FIRST_REG 0x003c // I2C_I2C_SL_DELAY_COUNT_0
+#define I2C2_LAST_REG 0x003c // I2C_I2C_SL_DELAY_COUNT_0
+
+#ifndef _MK_SHIFT_CONST
+ #define _MK_SHIFT_CONST(_constant_) _constant_
+#endif
+#ifndef _MK_MASK_CONST
+ #define _MK_MASK_CONST(_constant_) _constant_
+#endif
+#ifndef _MK_ENUM_CONST
+ #define _MK_ENUM_CONST(_constant_) (_constant_ ## UL)
+#endif
+#ifndef _MK_ADDR_CONST
+ #define _MK_ADDR_CONST(_constant_) _constant_
+#endif
+
+#endif // ifndef ___ARI2C_H_INC_