[linux-yocto] [PATCH 25/94] drivers/i2c: Collapse AI2C driver implementation - removing ai2c/regs

Paul Butler butler.paul at gmail.com
Thu Nov 7 17:12:39 PST 2013


Signed-off-by: Paul Butler <paul.butler at windriver.com>
---
 drivers/i2c/busses/ai2c/regs/ai2c_axi_timer_regs.h |  202 ---
 .../busses/ai2c/regs/ai2c_cfg_node_reg_defines.h   |   39 -
 drivers/i2c/busses/ai2c/regs/ai2c_cfg_node_regs.h  |  146 --
 drivers/i2c/busses/ai2c/regs/ai2c_i2c_regs.h       | 1797 --------------------
 drivers/i2c/busses/ai2c/regs/ai2c_regions.h        |   81 -
 5 files changed, 2265 deletions(-)
 delete mode 100644 drivers/i2c/busses/ai2c/regs/ai2c_axi_timer_regs.h
 delete mode 100644 drivers/i2c/busses/ai2c/regs/ai2c_cfg_node_reg_defines.h
 delete mode 100644 drivers/i2c/busses/ai2c/regs/ai2c_cfg_node_regs.h
 delete mode 100644 drivers/i2c/busses/ai2c/regs/ai2c_i2c_regs.h
 delete mode 100644 drivers/i2c/busses/ai2c/regs/ai2c_regions.h

diff --git a/drivers/i2c/busses/ai2c/regs/ai2c_axi_timer_regs.h b/drivers/i2c/busses/ai2c/regs/ai2c_axi_timer_regs.h
deleted file mode 100644
index 10adc2c..0000000
--- a/drivers/i2c/busses/ai2c/regs/ai2c_axi_timer_regs.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- *  Copyright (C) 2013 LSI Corporation
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*! @file     ai2c_axi_timer_regs.h
- *  @brief    Constants, structs, and APIs used to configure the ACP Timer
- *            associated with various hardware modules and interfaces.
- */
-
-#ifndef _AI2C_AXI_TIMER_REGS_H_
-#define _AI2C_AXI_TIMER_REGS_H_
-
-/*****************************************************************************
-* Macros & Constants                                                         *
-*****************************************************************************/
-
-/*
- * Register Group offsets
- *
- * The ACP has 8 groups of these handles at offsets 0x00, 0x20, 0x40,
- * 0x60, 0x80, 0xA0, 0xC0, and 0xE0.
- */
-#define AI2C_TIMER_SSP_OFFSET    (0x0000) /*!< Offset to start of
-						SSP timer group */
-#define AI2C_TIMER_I2C_OFFSET    (0x0020) /*!< Offset to start of
-						I2C timer group */
-#define AI2C_TIMER_UART0_CLK_OFFSET    (0x0040) /*!< Offset to start of
-						UART0 Clk timer group */
-#define AI2C_TIMER_UART1_CLK_OFFSET    (0x0060) /*!< Offset to start of
-						UART1 Clk timer group */
-#define AI2C_TIMER_WDOG_RESET_OFFSET   (0x0080) /*!< Offset to start of
-						Watchdog Reset timer group */
-#define AI2C_TIMER_GP5_OFFSET          (0x00A0) /*!< Offset to start of General
-						Purpose Timer #5 group */
-#define AI2C_TIMER_GP6_OFFSET          (0x00C0) /*!< Offset to start of General
-						Purpose Timer #6 group */
-#define AI2C_TIMER_GP7_OFFSET          (0x00E0) /*!< Offset to start of General
-						Purpose Timer #7 group */
-
-/*
- * Register handle offsets
- */
-
-#define AI2C_REG_TIMER_TLV   (0x0000) /*!< Byte offset to Timer
-					load value register */
-#define AI2C_REG_TIMER_TV    (0x0004) /*!< Byte offset to Timer
-					value register */
-#define AI2C_REG_TIMER_TC    (0x0008) /*!< Byte offset to Timer
-					control register */
-#define AI2C_REG_TIMER_TIC   (0x000C) /*!< Byte offset to Timer
-					interrupt clear register */
-#define AI2C_REG_TIMER_RIS   (0x0010) /*!< Byte offset to Timer
-					raw interrupt source register */
-#define AI2C_REG_TIMER_IS    (0x0014) /*!< Byte offset to Timer
-					interrupt source */
-#define AI2C_REG_TIMER_BLV   (0x0018) /*!< Byte offset to Timer
-					background load value register */
-
-
-/*****************************************************************************
-* Register Definitions                                                       *
-*****************************************************************************/
-
-/*! @struct  ai2c_reg_timer_tlv
- *  @brief   Timer load value register
- *           Let:
- *              Prescale=<1..4>
- *              Clk_Period=K MHz
- *              Output Freq=J MHz
- *
- *           Solve,
- *              Output Freq = (Clk_Period / Timer Prescale) /
- *                            (Timer Load Value + 1)
- *           for
- *              "Timer Load Value"
- *
- *           Example:
- *              Prescale=1, Clk_Period=400 MHz, Output Freq=4 MHz
- *              4 MHZ = (400 MHz / 1) / (TLV + 1)
- *              TLV = (400/4) - 1
- *                  = 99
- */
-struct ai2c_reg_timer_tlv {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned value:32;        /*!< bits 31:00  timer load value */
-#else
-	unsigned value:32;        /*!< bits 31:00  timer load value */
-#endif
-};
-
-/*! @struct  ai2c_reg_timer_tv
- *  @brief   Timer value register
- */
-struct ai2c_reg_timer_tv {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned value:32;         /*!< bits 31:00  timer value */
-#else
-	unsigned value:32;         /*!< bits 31:00  timer value */
-#endif
-};
-
-/*! @struct  ai2c_reg_timer_tc
- *  @brief   Timer control register
- */
-struct ai2c_reg_timer_tc {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_08:24;  /* bits 31:08  reserved */
-	unsigned te:1;               /*!< bits  7     timer enable */
-	unsigned rmode:1;            /*!< bits  6     mode */
-	unsigned ie:1;               /*!< bits  5     interrupt enable */
-	unsigned omode:1;            /*!< bits  4     output mode */
-	unsigned pres:2;             /*!< bits  3: 2  pre-scaler */
-	unsigned size:1;             /*!< bits  1     size */
-	unsigned osm:1;              /*!< bits  0     one shot mode */
-#else
-	unsigned osm:1;              /*!< bits  0     one shot mode */
-	unsigned size:1;             /*!< bits  1     size */
-	unsigned pres:2;             /*!< bits  3: 2  pre-scaler */
-	unsigned omode:1;            /*!< bits  4     output mode */
-	unsigned ie:1;               /*!< bits  5     interrupt enable */
-	unsigned rmode:1;            /*!< bits  6     mode */
-	unsigned te:1;               /*!< bits  7     timer enable */
-	unsigned reserved_31_08:24;  /* bits 31:08  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_timer_tic
- *  @brief   Timer interrupt clear register
- */
-struct ai2c_reg_timer_tic {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned value:31;      /* bits 31:01  reserved */
-	unsigned tic:1;         /*!< bits  0     timer interrupt clear */
-#else
-	unsigned tic:1;         /*!< bits  0     timer interrupt clear */
-	unsigned value:31;      /* bits 31:01  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_timer_ris
- *  @brief   Timer raw interrupt status register
- */
-struct ai2c_reg_timer_ris {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved:31;   /* bits 31:01  reserved */
-	unsigned ris:1;         /*!< bits  0     raw interrupt status */
-#else
-	unsigned ris:1;         /*!< bits  0     raw interrupt status */
-	unsigned reserved:31;   /* bits 31:01  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_timer_is
- *  @brief   Timer interrupt status register
- */
-struct ai2c_reg_timer_is {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved:31;  /* bits 31:01  reserved */
-	unsigned is:1;         /*!< bits  0 interrupt status */
-#else
-	unsigned is:1;         /*!< bits  0 interrupt status */
-	unsigned reserved:31;   /* bits 31:01 reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_timer_blv
- *  @brief   Timer background load value register
- */
-struct ai2c_reg_timer_blv {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned value:32;     /*!< bits 31:00  background load value */
-#else
-	unsigned value:32;     /*!< bits 31:00  background load value */
-#endif
-};
-
-#endif /* _AI2C_AXI_TIMER_REGS_H_ */
diff --git a/drivers/i2c/busses/ai2c/regs/ai2c_cfg_node_reg_defines.h b/drivers/i2c/busses/ai2c/regs/ai2c_cfg_node_reg_defines.h
deleted file mode 100644
index f120fed..0000000
--- a/drivers/i2c/busses/ai2c/regs/ai2c_cfg_node_reg_defines.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- *  Copyright (C) 2013 LSI Corporation
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef _AI2C_CFG_NODE_REG_DEFINES_H_
-#define _AI2C_CFG_NODE_REG_DEFINES_H_
-
-    /* NODE 0x1a , TARGET 0xff*/
-
-
-#define     AI2C_CFG_NODE_NODE_INFO_0                            (0x00000000)
-#define     AI2C_CFG_NODE_NODE_INFO_1                            (0x00000004)
-#define     AI2C_CFG_NODE_NODE_INFO_2                            (0x00000008)
-#define     AI2C_CFG_NODE_NODE_INFO_3                            (0x0000000c)
-#define     AI2C_CFG_NODE_NODE_CFG                               (0x00000010)
-#define     AI2C_CFG_NODE_WRITE_ERR_ADDR                         (0x00000014)
-#define     AI2C_CFG_NODE_NODE_ERROR                             (0x00000018)
-#define     AI2C_CFG_NODE_NODE_ERROR_DATA_R                      (0x0000001c)
-#define     AI2C_CFG_NODE_NODE_SCRATCH                           (0x00000020)
-
-#endif /* _AI2C_CFG_NODE_REG_DEFINES_H_ */
diff --git a/drivers/i2c/busses/ai2c/regs/ai2c_cfg_node_regs.h b/drivers/i2c/busses/ai2c/regs/ai2c_cfg_node_regs.h
deleted file mode 100644
index 8d2109a..0000000
--- a/drivers/i2c/busses/ai2c/regs/ai2c_cfg_node_regs.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/**************************************************************************
- **                                                                       *
- **   LSI CONFIDENTIAL                                                    *
- **                           PROPRIETARY NOTE                            *
- **                                                                       *
- **    This software contains information confidential and proprietary    *
- **    to LSI Inc.  It shall not be reproduced in whole or in             *
- **    part, or transferred to other documents, or disclosed to third     *
- **    parties, or used for any purpose other than that for which it was  *
- **    obtained, without the prior written consent of LSI Inc.            *
- **    (c) 2001-2013, LSI Inc.  All rights reserved.                      *
- **                                                                       *
- **  **********************************************************************/
-
-#ifndef _AI2C_CFG_NODE_REGS_H_
-#define _AI2C_CFG_NODE_REGS_H_
-
-/*! @struct ai2c_cfg_node_node_info_0_r_t
- *  @brief CFG Node Info Register 0
- *  @details This register contains the module type and module revision
- *  for the module containing this CFG Node.
- */
-struct ai2c_cfg_node_node_info_0_r {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned      module_type:16;
-	unsigned      module_revision:16;
-#else    /* Little Endian */
-	unsigned      module_revision:16;
-	unsigned      module_type:16;
-#endif
-};
-
-/*! @struct ai2c_cfg_node_node_info_1_r
- *  @brief CFG Node Info Register 1
- *  @details This read-only register contains the module instance
- *  and lower 24 bits of the module info field for the module
- *  containing this CFG Node.
- */
-struct ai2c_cfg_node_node_info_1_r {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned      module_info:24;
-	unsigned      module_instance:8;
-#else    /* Little Endian */
-	unsigned      module_instance:8;
-	unsigned      module_info:24;
-#endif
-};
-
-/*! @struct ai2c_cfg_node_node_info_2_r
- *  @brief CFG Node Info Register 2
- *  @details This read-only register contains bits 55:24 of the module info field for the module containing this CFG Node.
- */
-struct ai2c_cfg_node_node_info_2_r {
-	unsigned  int   module_info;
-};
-
-/*! @struct ai2c_cfg_node_node_info_3_r
- *  @brief CFG Node Info Register 3
- *  @details This read-only register contains bits 87:56 of the module info field for the module containing this CFG Node.
- */
-struct ai2c_cfg_node_node_info_3_r {
-	unsigned  int               module_info;
-};
-
-/*! @struct ai2c_cfg_node_node_cfg_r
- *  @brief CFG Node Configuration Register
- *  @details This register contains fields that control the operation of the CFG node.
- */
-struct ai2c_cfg_node_node_cfg_r {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned      fpga:1;
-	unsigned      reserved0:26;
-	unsigned      opt_fill:1;
-	unsigned      clk_apb_sel:2;
-	unsigned      parity_enable:1;
-	unsigned      parity_odd:1;
-#else    /* Little Endian */
-	unsigned      parity_odd:1;
-	unsigned      parity_enable:1;
-	unsigned      clk_apb_sel:2;
-	unsigned      opt_fill:1;
-	unsigned      reserved0:26;
-	unsigned      fpga:1;
-#endif
-};
-
-/*! @struct ai2c_cfg_node_write_err_addr_r
- *  @brief CFG Node Write Error Address Register
- *  @details This read-only register holds the address associated with the first write error for the last write command.
- */
-struct ai2c_cfg_node_write_err_addr_r {
-	unsigned  int             error_address;
-};
-
-/*! @struct ai2c_cfg_node_node_error_r
- *  @brief CFG Node Error Register
- *  @details This register holds the sticky errors detected by the CFG node.
- */
-struct ai2c_cfg_node_node_error_r {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned      reserved0:26;
-	unsigned      node_error:1;
-	unsigned      parity_error:1;
-	unsigned      afifo_overflow:1;
-	unsigned      afifo_underflow:1;
-	unsigned      dfifo_overflow:1;
-	unsigned      dfifo_underflow:1;
-#else    /* Little Endian */
-	unsigned      dfifo_underflow:1;
-	unsigned      dfifo_overflow:1;
-	unsigned      afifo_underflow:1;
-	unsigned      afifo_overflow:1;
-	unsigned      parity_error:1;
-	unsigned      node_error:1;
-	unsigned      reserved0:26;
-#endif
-};
-
-/*! @struct ai2c_cfg_node_node_error_data_r
- *  @brief CFG Node Error Data Register
- *  @details This register holds the error code associated with the first protocol error detected by the CFG node.
- */
-struct ai2c_cfg_node_node_error_data_r {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned      reserved0:28;
-	unsigned      error_code:4;
-#else    /* Little Endian */
-	unsigned      error_code:4;
-	unsigned      reserved0:28;
-#endif
-};
-
-/*! @struct ai2c_cfg_node_node_scratch_r
- *  @brief CFG Node Scratch Register
- *  @details This register is a scratch location for software's use.
- */
-struct ai2c_cfg_node_node_scratch_r {
-	unsigned int scratch;
-};
-
-#endif /* _AI2C_CFG_NODE_REGS_H_ */
diff --git a/drivers/i2c/busses/ai2c/regs/ai2c_i2c_regs.h b/drivers/i2c/busses/ai2c/regs/ai2c_i2c_regs.h
deleted file mode 100644
index 4c1954b..0000000
--- a/drivers/i2c/busses/ai2c/regs/ai2c_i2c_regs.h
+++ /dev/null
@@ -1,1797 +0,0 @@
-/*
- *  Copyright (C) 2013 LSI Corporation
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*! @file       ai2c_i2c_regs.h
- *  @brief      I2C Hardware Layer Register Map
- */
-
-#ifndef _AI2C_I2C_REGS_H_
-#define _AI2C_I2C_REGS_H_
-
-/*!
- * @defgroup _i2c_hw_regs_     I2C Hardware Register Map
- * @brief    I2C Hardware Registers (i2chwregs)
- * @details  ACP HW registers used to communicate with I2C devices on the
- *           I2C bus immediately associated with the ACP
- * @{
- * @ingroup _i2c_
- */
-
-/******************************************************************************
- * Register handle offsets (X1/X2 aka ACP3400, ACP2500)                       *
- *                                                                            *
- * Regions:0x143.0, 0x14c.0                                                   *
- ******************************************************************************/
-
-#define AI2C_REG_I2C_MAST_XMT_CFG       (0x0000)     /*!< Offset to reg Master
-							Transmit Config */
-#define AI2C_REG_I2C_MAST_RCV_CFG       (0x0004)     /*!< Offset to reg Master
-							Receive Config */
-#define AI2C_REG_I2C_MAST_XMT_STAT      (0x0008)     /*!< Offset to reg Master
-							Transmit Status */
-#define AI2C_REG_I2C_MAST_RCV_STAT      (0x000C)     /*!< Offset to reg Master
-							Receive Status */
-#define AI2C_REG_I2C_MAST_INT_ENABLE    (0x0010)     /*!< Offset to reg Master
-							Interrupt Enable */
-#define AI2C_REG_I2C_MAST_INT_CLEAR     (0x0014)     /*!< Offset to reg Master
-							Interrupt Clear */
-#define AI2C_REG_I2C_MAST_INT_STAT      (0x0018)     /*!< Offset to reg Master
-							Interrupt Status */
-#define AI2C_REG_I2C_MAST_CLK_CFG       (0x001C)     /*!< Offset to reg Master
-							Clock Config */
-#define AI2C_REG_I2C_MAST_START_HLD_CFG (0x0020)     /*!< Offset to reg Master
-							Start Hold
-							Timing Config */
-#define AI2C_REG_I2C_MAST_STOP_HLD_CFG  (0x0024)     /*!< Offset to reg Master
-							Stop Hold
-							Timing Config */
-#define AI2C_REG_I2C_MAST_DATA_HLD_CFG  (0x0028)     /*!< Offset to reg Master
-							Data Hold
-							Timing Config */
-#define AI2C_REG_I2C_MAST_BYPASS_MODE   (0x002C)     /*!< Offset to reg Master
-							Bypass Mode */
-#define AI2C_REG_I2C_MAST_SLV_ADDRESS   (0x0030)     /*!< Offset to reg Master
-							Slave Address target */
-#define AI2C_REG_I2C_MAST_TXD0          (0x0034)     /*!< Offset to reg Master
-							Transmit Data 0 */
-#define AI2C_REG_I2C_MAST_TXD1          (0x0038)     /*!< Offset to reg Master
-							Transmit Data 1 */
-#define AI2C_REG_I2C_MAST_RXD0          (0x003C)     /*!< Offset to reg Master
-							Receive Data 0 */
-#define AI2C_REG_I2C_MAST_RXD1          (0x0040)     /*!< Offset to reg Master
-							Receive Data 1 */
-#define AI2C_REG_I2C_SLV_TXRXCONFIG     (0x0044)     /*!< Offset to reg Slave
-							Transmit/Receive
-							Config */
-#define AI2C_REG_I2C_SLV_STAT           (0x0048)     /*!< Offset to reg
-							Slave Status */
-#define AI2C_REG_I2C_SLV_SELF_ADDRESS   (0x004C)     /*!< Offset to reg
-							Slave Self Address */
-#define AI2C_REG_I2C_SLV_TXD0           (0x0050)     /*!< Offset to reg Slave
-							Transmit Data 0 */
-#define AI2C_REG_I2C_SLV_TXD1           (0x0054)     /*!< Offset to reg Slave
-							Transmit Data 1 */
-#define AI2C_REG_I2C_SLV_RXD0           (0x0058)     /*!< Offset to reg Slave
-							Receive Data 0 */
-#define AI2C_REG_I2C_SLV_RXD1           (0x005C)     /*!< Offset to reg Slave
-							Receive Data 1 */
-#define AI2C_REG_I2C_SLV_INT_ENABLE     (0x0060)     /*!< Offset to reg Slave
-							Interrupt Enable */
-#define AI2C_REG_I2C_SLV_INT_CLEAR      (0x0064)     /*!< Offset to reg Slave
-							Interrupt Clear */
-#define AI2C_REG_I2C_SLV_DATA_HLD_CFG   (0x0068)     /*!< Offset to reg Slave
-							Data Hold
-							Timing Config */
-#define AI2C_REG_I2C_SLV_CLK_CFG        (0x006C)     /*!< Offset to reg
-							Slave Clock Config */
-
-
-/**********************************
- * Register Structure definitions *
- *********************************/
-
-/*! @struct  ai2c_reg_i2c_mast_xmt_cfg
- *  @brief   I2C Master XMIT Cfg register
- */
-struct ai2c_reg_i2c_mast_xmt_cfg {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:2;                 /* bits 31:30  reserved */
-	unsigned stop:1;            /*!< bits 29     Stop I2C clock */
-	unsigned:18;                /* bits 28:11  reserved */
-	unsigned zeroAll:1;         /*!< bits 10     Zero all control/data */
-	unsigned command:1;         /*!< bits  9     write=0, read=1 */
-	unsigned mastModeActive:1;  /*!< bits  8     Master mode active */
-	unsigned tenBitAddr:1;      /*!< bits  7     10-bit address mode */
-	unsigned:1;                 /* bits  6     reserved */
-	unsigned endianness:1;      /*!< bits  5     0=BE (def), 1=LE */
-	unsigned numBytes:4;        /*!< bits  4:1   number of bytes to xmit*/
-	unsigned xmtReady:1;        /*!< bits  0     Transmit Ready */
-#else
-	unsigned xmtReady:1;        /*!< bits  0     Transmit Ready */
-	unsigned numBytes:4;        /*!< bits  4:1   number of bytes to xmit*/
-	unsigned endianness:1;      /*!< bits  5     0=BE (def), 1=LE */
-	unsigned:1;                 /* bits  6     reserved */
-	unsigned tenBitAddr:1;      /*!< bits  7     10-bit address mode */
-	unsigned mastModeActive:1;  /*!< bits  8     Master mode active */
-	unsigned command:1;         /*!< bits  9     write=0, read=1 */
-	unsigned zeroAll:1;         /*!< bits 10     Zero all control/data */
-	unsigned:18;                /* bits 28:11  reserved */
-	unsigned stop:1;            /*!< bits 29     Stop I2C clock */
-	unsigned:2;                 /* bits 31:30  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_mast_rcv_cfg
- *  @brief   I2C Master RCV Cfg register
- */
-struct ai2c_reg_i2c_mast_rcv_cfg {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_8:24;  /* bits 31:8   reserved */
-	unsigned reserved_7_6:2;    /* bits  7:6   reserved */
-	unsigned chgEndianness:1;   /*!< bits  5     0=BE (def), 1=LE */
-	unsigned numBytes:4;        /*!< bits  4:1   number of bytes to rcv */
-	unsigned rcvReady:1;        /*!< bits  0     Receive Ready */
-#else
-	unsigned rcvReady:1;        /*!< bits  0     Receive Ready */
-	unsigned numBytes:4;        /*!< bits  4:1   number of bytes to rcv */
-	unsigned chgEndianness:1;   /*!< bits  5     0=BE (def), 1=LE */
-	unsigned reserved_7_6:2;    /* bits  7:6   reserved */
-	unsigned reserved_31_8:24;  /* bits 31:8   reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_mast_xmt_stat
- *  @brief   I2C Master XMIT Status register
- */
-struct ai2c_reg_i2c_mast_xmt_stat {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_8:25;  /* bits 31:8   reserved */
-	unsigned reserved_7_2:5;    /* bits  7:2   reserved */
-	unsigned xmtError:1;        /*!< bits  1     Transmission error */
-	unsigned xmtDone:1;         /*!< bits  0     Transmit done */
-#else
-	unsigned xmtDone:1;         /*!< bits  0     Transmit done */
-	unsigned xmtError:1;        /*!< bits  1     Transmission error */
-	unsigned reserved_7_2:5;    /* bits  7:2   reserved */
-	unsigned reserved_31_8:25;  /* bits 31:8   reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_mast_rcv_stat
- *  @brief   I2C Master RCV Status register
- */
-struct ai2c_reg_i2c_mast_rcv_stat {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_6:26;  /* bits 31:6   reserved */
-	unsigned numBytesRcv:4;     /*!< bits  5:2   Num Bytes received */
-	unsigned rcvError:1;        /*!< bits  1     Reception error */
-	unsigned rcvDone:1;         /*!< bits  0     Receive done */
-#else
-	unsigned rcvDone:1;         /*!< bits  0     Receive done */
-	unsigned rcvError:1;        /*!< bits  1     Reception error */
-	unsigned numBytesRcv:4;     /*!< bits  5:2   Num Bytes received */
-	unsigned reserved_31_6:26;  /* bits 31:6   reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_mast_int_enable
- *  @brief   I2C Master Interrupt Enable register
- */
-struct ai2c_reg_i2c_mast_int_enable {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_4:28;  /* bits 31:4  reserved */
-	unsigned intRcvErr:1;       /*!< bits  3    Enable int on rcv error */
-	unsigned intXmtErr:1;       /*!< bits  2    Enable int on xmt error */
-	unsigned intRcvComplete:1;  /*!< bits  1    Enable int on completion
-					of received data */
-	unsigned intXmtComplete:1;  /*!< bits  0    Enable int on completion
-					of transmitted data */
-#else
-	unsigned intXmtComplete:1;  /*!< bits  0    Enable int on completion
-					of transmitted data */
-	unsigned intRcvComplete:1;  /*!< bits  1    Enable int on completion
-					of received data */
-	unsigned intXmtErr:1;       /*!< bits  2    Enable int on xmt error */
-	unsigned intRcvErr:1;       /*!< bits  3    Enable int on rcv error */
-	unsigned reserved_31_4:28;  /* bits 31:4  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_mast_int_clear
- *  @brief   I2C Master Interrupt Clear register
- */
-struct ai2c_reg_i2c_mast_int_clear {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_4:28;  /* bits 31:4  reserved */
-	unsigned intRcvErr:1;       /*!< bits  3    Clear int on rcv error */
-	unsigned intXmtErr:1;       /*!< bits  2    Clear int on xmt error */
-	unsigned intRcvComplete:1;  /*!< bits  1    Clear int on completion
-					of received data */
-	unsigned intXmtComplete:1;  /*!< bits  0    Clear int on completion
-					of transmitted data */
-#else
-	unsigned intXmtComplete:1;  /*!< bits  0    Clear int on completion
-					of transmitted data */
-	unsigned intRcvComplete:1;  /*!< bits  1    Clear int on completion
-					of received data */
-	unsigned intXmtErr:1;       /*!< bits  2    Clear int on xmt error */
-	unsigned intRcvErr:1;       /*!< bits  3    Clear int on rcv error */
-	unsigned reserved_31_4:28;  /* bits 31:4  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_mast_int_stat
- *  @brief   I2C Master Interrupt Status register
- */
-struct ai2c_reg_i2c_mast_int_stat {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_4:28;  /* bits 31:4  reserved */
-	unsigned rcvErr:1;          /*!< bits  3    Receive error */
-	unsigned xmtDone:1;         /*!< bits  2    Transmit done */
-	unsigned rcvDataRdy:1;      /*!< bits  1    Receive data ready */
-	unsigned xmtErr:1;          /*!< bits  0    Transmit error */
-#else
-	unsigned xmtErr:1;          /*!< bits  0    Transmit error */
-	unsigned rcvDataRdy:1;      /*!< bits  1    Receive data ready */
-	unsigned xmtDone:1;         /*!< bits  2    Transmit done */
-	unsigned rcvErr:1;          /*!< bits  3    Receive error */
-	unsigned reserved_31_4:28;  /* bits 31:4  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_mast_clk_cfg
- *  @brief   I2C Master Clock Configuration register
- */
-struct ai2c_reg_i2c_mast_clk_cfg {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_26:6;  /* bits 31:26 reserved */
-	unsigned pclkHighSCL:10;    /*!< bits 25:16 # of pclk durations that
-					equal high period of SCL*/
-	unsigned reserved_15_10:6;  /* bits 15:10 reserved */
-	unsigned pclkLowSCL:10;     /*!< bits  9:0  # of pclk durations that
-					equal low period of SCL */
-#else
-	unsigned pclkLowSCL:10;     /*!< bits  9:0  # of pclk durations that
-					equal low period of SCL */
-	unsigned reserved_15_10:6;  /* bits 15:10 reserved */
-	unsigned pclkHighSCL:10;    /*!< bits 25:16 # of pclk durations that
-					equal high period of SCL*/
-	unsigned reserved_31_26:6;  /* bits 31:26 reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_mast_start_hld_cfg
- *  @brief   I2C Master Start Hold Timing Configuration register
- */
-struct ai2c_reg_i2c_mast_start_hld_cfg {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_26:6;  /* bits 31:26 reserved */
-	unsigned pclkStart:10;      /*!< bits 25:16 # of pclk durations that
-					equal start cond on SDA */
-	unsigned reserved_15_10:6;  /* bits 15:10 reserved */
-	unsigned pclkSetup:10;      /*!< bits  9:0  # of pclk durations that
-					equal setup cond on SDA */
-#else
-	unsigned pclkSetup:10;      /*!< bits  9:0  # of pclk durations that
-					equal setup cond on SDA */
-	unsigned reserved_15_10:6;  /* bits 15:10 reserved */
-	unsigned pclkStart:10;      /*!< bits 25:16 # of pclk durations that
-					equal start cond on SDA */
-	unsigned reserved_31_26:6;  /* bits 31:26 reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_mast_stop_hld_cfg
- *  @brief   I2C Master Stop Hold Timing Configuration register
- */
-struct ai2c_reg_i2c_mast_stop_hld_cfg {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_26:6;  /* bits 31:26 reserved */
-	unsigned pclkStop:10;       /*!< bits 25:16 # of pclk durations that
-					equal stop cond on SDA */
-	unsigned reserved_15_10:6;  /* bits 15:10 reserved */
-	unsigned pclkSetup:10;      /*!< bits  9:0  # of pclk durations that
-					equal setup cond on SDA */
-#else
-	unsigned pclkSetup:10;      /*!< bits  9:0  # of pclk durations that
-					equal setup cond on SDA */
-	unsigned reserved_15_10:6;  /* bits 15:10 reserved */
-	unsigned pclkStop:10;       /*!< bits 25:16 # of pclk durations that
-					equal stop cond on SDA */
-	unsigned reserved_31_26:6;  /* bits 31:26 reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_mast_data_hld_cfg
- *  @brief   I2C Master Data Hold Timing Configuration register
- */
-struct ai2c_reg_i2c_mast_data_hld_cfg {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_26:6;  /* bits 31:26 reserved */
-	unsigned pclkStop:10;       /*!< bits 25:16 # of pclk durations that
-					equal stop cond on SDA
-					for data changing */
-	unsigned reserved_15_10:6;  /* bits 15:10 reserved */
-	unsigned pclkSetup:10;      /*!< bits  9:0  # of pclk durations that
-					equal setup cond on SDA
-					for data changing */
-#else
-	unsigned pclkSetup:10;      /*!< bits  9:0  # of pclk durations that
-					equal setup cond on SDA
-					for data changing */
-	unsigned reserved_15_10:6;  /* bits 15:10 reserved */
-	unsigned pclkStop:10;       /*!< bits 25:16 # of pclk durations that
-					equal stop cond on SDA
-					for data changing */
-	unsigned reserved_31_26:6;  /* bits 31:26 reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_mast_bypass_mode
- *  @brief   I2C Master Bypass Mode register
- */
-struct ai2c_reg_i2c_mast_bypass_mode {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_3:29;  /* bits 31:3  reserved */
-	unsigned enableBypass:1;    /*!< bits  2    Enable bypass mode */
-	unsigned SCLvalue:1;        /*!< bits  1    SCL value */
-	unsigned SDAvalue:1;        /*!< bits  0    SDA value */
-#else
-	unsigned SDAvalue:1;        /*!< bits  0    SDA value */
-	unsigned SCLvalue:1;        /*!< bits  1    SCL value */
-	unsigned enableBypass:1;    /*!< bits  2    Enable bypass mode */
-	unsigned reserved_31_3:29;  /* bits 31:3  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_mast_slv_address
- *  @brief   I2C Master Slave Address register
- */
-struct ai2c_reg_i2c_mast_slv_address {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_16:16; /* bits 31:16 reserved */
-	unsigned targSlvAddr:16;    /*!< bits 16:0  Address of the slave
-					device being addressed */
-#else
-	unsigned targSlvAddr:16;    /*!< bits 16:0  Address of the slave
-					device being addressed */
-	unsigned reserved_31_16:16; /* bits 31:16 reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_mast_txd0
- *  @brief   I2C Master Transmit Data 0 register
- */
-struct ai2c_reg_i2c_mast_txd0 {
-#ifdef AI2C_BIG_ENDIAN
-	unsigned data:32;           /*!< bits 31:0  Data to be transmitted */
-#else
-	unsigned data:32;           /*!< bits 31:0  Data to be transmitted */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_mast_rxd0_t
- *  @brief   I2C Master Receive Data 0 register
- */
-struct ai2c_reg_i2c_mast_rxd0 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned data:32;           /*!< bits 31:0  Data received */
-#else
-	unsigned data:32;           /*!< bits 31:0  Data received */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_slv_txrxconfig
- *  @brief   I2C Slave Transmit/Receive Config register
- */
-struct ai2c_reg_i2c_slv_txrxconfig {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_11:21; /* bits 31:11  reserved */
-	unsigned zeroAll:1;         /*!< bits 10     Zero all control/data */
-	unsigned rcvEndianness:1;   /*!< bits  9     0=BE (def), 1=LE */
-	unsigned slvModeActive:1;   /*!< bits  8     Slave mode active */
-	unsigned tenBitAddr:1;      /*!< bits  7     10-bit address mode */
-	unsigned xmtEndianness:1;   /*!< bits  6     0=BE (def), 1=LE */
-	unsigned numBytes:5;        /*!< bits  5:1   number of bytes to xmit*/
-	unsigned xmtReady:1;        /*!< bits  0     Transmit Ready */
-#else
-	unsigned xmtReady:1;        /*!< bits  0     Transmit Ready */
-	unsigned numBytes:5;        /*!< bits  5:1   number of bytes to xmit*/
-	unsigned xmtEndianness:1;   /*!< bits  6     0=BE (def), 1=LE */
-	unsigned tenBitAddr:1;      /*!< bits  7     10-bit address mode */
-	unsigned slvModeActive:1;   /*!< bits  8     Slave mode active */
-	unsigned rcvEndianness:1;   /*!< bits  9     0=BE (def), 1=LE */
-	unsigned zeroAll:1;         /*!< bits 10     Zero all control/data */
-	unsigned reserved_31_11:21; /* bits 31:11  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_slv_stat
- *  @brief   I2C Slave Status register
- */
-struct ai2c_reg_i2c_slv_stat {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_10:23; /* bits 31:10  reserved */
-	unsigned numBytesRcv:4;     /*!< bits  9:5   # bytes rcved on slave
-					transaction */
-	unsigned slvXmtErr:1;       /*!< bits  4     Slave xmit in error */
-	unsigned slvXmtDone:1;      /*!< bits  3     Slave done xmit data */
-	unsigned rcvErr:1;          /*!< bits  2     Rcv data in error */
-	unsigned cmdRcv:1;          /*!< bits  1     Command received by slv*/
-	unsigned slvRcvRdy:1;       /*!< bits  0     Slv rcved data ready */
-#else
-	unsigned slvRcvRdy:1;       /*!< bits  0     Slv rcved data ready */
-	unsigned cmdRcv:1;          /*!< bits  1     Command received by slv*/
-	unsigned rcvErr:1;          /*!< bits  2     Rcv data in error */
-	unsigned slvXmtDone:1;      /*!< bits  3     Slave done xmit data */
-	unsigned slvXmtErr:1;       /*!< bits  4     Slave xmit in error */
-	unsigned numBytesRcv:4;     /*!< bits  9:5   # bytes rcved on slave
-					transaction */
-	unsigned reserved_31_10:23; /* bits 31:10  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_slv_self_address
- *  @brief   I2C Slave Self Address register
- */
-struct ai2c_reg_i2c_slv_self_address {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned address:32;        /*!< bits 31:0   address of APPI2C */
-#else
-	unsigned address:32;        /*!< bits 31:0   address of APPI2C */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_slv_txd0
- *  @brief   I2C Slave Transmit Data 0 register
- */
-struct ai2c_reg_i2c_slv_txd0 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned data:32;           /*!< bits 31:0  Data to be transmitted */
-#else
-	unsigned data:32;           /*!< bits 31:0  Data to be transmitted */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_slv_rxd0
- *  @brief   I2C Slave Receive Data 0 register
- */
-struct ai2c_reg_i2c_slv_rxd0 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned data:32;           /*!< bits 31:0  Data received */
-#else
-	unsigned data:32;           /*!< bits 31:0  Data received */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_slv_int_enable
- *  @brief   I2C Slave Interrupt Enable register
- */
-struct ai2c_reg_i2c_slv_int_enable {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_4:28;  /* bits 31:4  reserved */
-	unsigned intRcvErr:1;       /*!< bits  3    Enable int on rcv error */
-	unsigned intRcvDataRdy:1;   /*!< bits  2    Enable int on rcv ready */
-	unsigned intXmtErr:1;       /*!< bits  1    Enable int on xmt error */
-	unsigned intXmtComplete:1;  /*!< bits  0    Enable int on completion
-					of transmitted data */
-#else
-	unsigned intXmtComplete:1;  /*!< bits  0    Enable int on completion
-					of transmitted data */
-	unsigned intXmtErr:1;       /*!< bits  1    Enable int on xmt error */
-	unsigned intRcvDataRdy:1;   /*!< bits  2    Enable int on rcv ready */
-	unsigned intRcvErr:1;       /*!< bits  3    Enable int on rcv error */
-	unsigned reserved_31_4:28;  /* bits 31:4  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_slv_int_clear
- *  @brief   I2C Slave Interrupt Clear register
- */
-struct ai2c_reg_i2c_slv_int_clear {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_4:28;  /* bits 31:4  reserved */
-	unsigned intRcvErr:1;       /*!< bits  3    Clear int on rcv error */
-	unsigned intRcvDataRdy:1;   /*!< bits  2    Clear int on rcv ready */
-	unsigned intXmtErr:1;       /*!< bits  1    Clear int on xmt error */
-	unsigned intXmtComplete:1;  /*!< bits  0    Clear int on completion
-					of transmitted data */
-#else
-	unsigned intXmtComplete:1;  /*!< bits  0    Clear int on completion
-					of transmitted data */
-	unsigned intXmtErr:1;       /*!< bits  1    Clear int on xmt error */
-	unsigned intRcvDataRdy:1;   /*!< bits  2    Clear int on rcv ready */
-	unsigned intRcvErr:1;       /*!< bits  3    Clear int on rcv error */
-	unsigned reserved_31_4:28;  /* bits 31:4  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_slv_data_hld_cfg
- *  @brief   I2C Slave Data Hold Timing Config register
- */
-struct ai2c_reg_i2c_slv_data_hld_cfg {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_26:6;  /* bits 31:26 reserved */
-	unsigned pclkHold:10;       /*!< bits 25:16 # of pclk durations that
-					equal hold cond on SDA */
-	unsigned reserved_15_10:6;  /*!< bits 15:10 reserved */
-	unsigned pclkSetup:10;      /*!< bits  9:0  # of pclk durations that
-					equal setup cond on SDA */
-#else
-	unsigned pclkSetup:10;      /*!< bits  9:0  # of pclk durations that
-					equal setup cond on SDA */
-	unsigned reserved_15_10:6;  /*!< bits 15:10 reserved */
-	unsigned pclkHold:10;       /*!< bits 25:16 # of pclk durations that
-					equal hold cond on SDA */
-	unsigned reserved_31_26:6;  /* bits 31:26 reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_slv_clk_cfg
- *  @brief   I2C Slave Clock Config register
- */
-struct ai2c_reg_i2c_slv_clk_cfg {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned reserved_31_26:6;  /* bits 31:26 reserved */
-	unsigned pclkLowSCL:10;     /*!< bits 25:16 # of pclk durations that
-					equal low period of SCL*/
-	unsigned reserved_15_10:6;  /* bits 15:10 reserved */
-	unsigned pclkHighSCL:10;    /*!< bits  9:0  # of pclk durations that
-					equal high period of SCL*/
-#else
-	unsigned pclkHighSCL:10;    /*!< bits  9:0  # of pclk durations that
-					equal high period of SCL*/
-	unsigned reserved_15_10:6;  /* bits 15:10 reserved */
-	unsigned pclkLowSCL:10;     /*!< bits 25:16 # of pclk durations that
-					equal low period of SCL*/
-	unsigned reserved_31_26:6;  /* bits 31:26 reserved */
-#endif
-};
-
-
-/******************************************************************************
- * Register handle offsets (X7 aka AXM55xx)                                   *
- *                                                                            *
- * Regions:0x143.0, 0x14c.0, 0x152.0                                          *
- *                                                                            *
- * Regerence: AMBA (tm) Peripheral I2c Bus Controller with SMB Functions      *
- *                (API2C) Reference Manual, Version 0.1, April 2011,          *
- *                DB13-00329-00.                                              *
- ******************************************************************************/
-
-#define AI2C_REG_I2C_X7_GLOBAL_CONTROL     (0x0000)   /*!< Offset to reg
-							Global Control */
-#define AI2C_REG_I2C_X7_INTERRUPT_STATUS   (0x0004)   /*!< Offset to reg
-							Interrupt Status */
-#define AI2C_REG_I2C_X7_INTERRUPT_ENABLE   (0x0008)   /*!< Offset to reg
-							Interrupt Enable */
-#define AI2C_REG_I2C_X7_WAIT_TIMER_CONTROL (0x000C)   /*!< Offset to reg
-							Wait Timer Control */
-#define AI2C_REG_I2C_X7_IBML_TIMEOUT       (0x0010)   /*!< Offset to reg
-							IBML Timeout */
-#define AI2C_REG_I2C_X7_IBML_LOW_MEXT      (0x0014)   /*!< Offset to reg
-							IBML Low MEXT */
-#define AI2C_REG_I2C_X7_IBML_LOW_SEXT      (0x0018)   /*!< Offset to reg
-							IBML Low SEXT */
-#define AI2C_REG_I2C_X7_TIMER_CLOCK_DIV    (0x001C)   /*!< Offset to reg
-							Timer Clock Division */
-#define AI2C_REG_I2C_X7_I2C_BUS_MONITOR    (0x0020)   /*!< Offset to reg I2C
-							Bus Monitor */
-#define AI2C_REG_I2C_X7_SOFT_RESET         (0x0024)   /*!< Offset to reg Soft
-							Reset */
-#define AI2C_REG_I2C_X7_MST_COMMAND        (0x0028)   /*!< Offset to reg
-							Master Command */
-#define AI2C_REG_I2C_X7_MST_RX_XFER        (0x002C)   /*!< Offset to reg
-							Master Receive
-							Transfer */
-#define AI2C_REG_I2C_X7_MST_TX_XFER        (0x0030)   /*!< Offset to reg
-							Master Transmit
-							Transfer */
-#define AI2C_REG_I2C_X7_MST_ADDR_1         (0x0034)   /*!< Offset to reg
-							Master Address 1 */
-#define AI2C_REG_I2C_X7_MST_ADDR_2         (0x0038)   /*!< Offset to reg
-							Master Address 2 */
-#define AI2C_REG_I2C_X7_MST_DATA           (0x003C)   /*!< Offset to reg
-							Master Data */
-#define AI2C_REG_I2C_X7_MST_TX_FIFO        (0x0040)   /*!< Offset to reg
-							Master Transmit FIFO */
-#define AI2C_REG_I2C_X7_MST_RX_FIFO        (0x0044)   /*!< Offset to reg
-							Master Receive FIFO */
-#define AI2C_REG_I2C_X7_MST_INT_ENABLE     (0x0048)   /*!< Offset to reg
-							Master Interrupt
-							Enable */
-#define AI2C_REG_I2C_X7_MST_INT_STATUS     (0x004C)   /*!< Offset to reg
-							Master Interrupt
-							Status */
-#define AI2C_REG_I2C_X7_MST_TX_BYTES_XFRD  (0x0050)   /*!< Offset to reg
-							Master TX Bytes
-							Transferred */
-#define AI2C_REG_I2C_X7_MST_RX_BYTES_XFRD  (0x0054)   /*!< Offset to reg
-							Master RX Bytes
-							Transferred */
-#define AI2C_REG_I2C_X7_SLV_ADDR_DEC_CTL   (0x0058)   /*!< Offset to reg
-							Slave Address
-							Decrement Ctl */
-#define AI2C_REG_I2C_X7_SLV_ADDR_1         (0x005C)   /*!< Offset to reg
-							Slave Address 1 */
-#define AI2C_REG_I2C_X7_SLV_ADDR_2         (0x0060)   /*!< Offset to reg
-							Slave Address 2 */
-#define AI2C_REG_I2C_X7_SLV_RX_CTL         (0x0064)   /*!< Offset to reg
-							Slave Receive Control */
-#define AI2C_REG_I2C_X7_SLV_DATA           (0x0068)   /*!< Offset to reg
-							Slave Data */
-#define AI2C_REG_I2C_X7_SLV_RX_FIFO        (0x006C)   /*!< Offset to reg
-							Slave Receive FIFO */
-#define AI2C_REG_I2C_X7_SLV_INT_ENABLE     (0x0070)   /*!< Offset to reg
-							Slave Interrupt
-							Enable */
-#define AI2C_REG_I2C_X7_SLV_INT_STATUS     (0x0074)   /*!< Offset to reg
-							Slave Interrupt
-							Status */
-#define AI2C_REG_I2C_X7_SLV_READ_DUMMY     (0x0078)   /*!< Offset to reg
-							Slave Read Dummy */
-#define AI2C_REG_I2C_X7_SCL_HIGH_PERIOD    (0x0080)   /*!< Offset to reg
-							SCL High Period */
-#define AI2C_REG_I2C_X7_SCL_LOW_PERIOD     (0x0084)   /*!< Offset to reg
-							SCL Low Period */
-#define AI2C_REG_I2C_X7_SPIKE_FLTR_LEN     (0x0088)   /*!< Offset to reg
-							Spike Filter Length */
-#define AI2C_REG_I2C_X7_SDA_SETUP_TIME     (0x008C)   /*!< Offset to reg
-							SDA Setup Time */
-#define AI2C_REG_I2C_X7_SDA_HOLD_TIME      (0x0090)   /*!< Offset to reg
-							SDA Hold Time */
-#define AI2C_REG_I2C_X7_SMB_ALERT          (0x0094)   /*!< Offset to reg
-							SMB Alert */
-#define AI2C_REG_I2C_X7_UDID_W7            (0x0098)   /*!< Offset to reg
-							UDID W7 */
-#define AI2C_REG_I2C_X7_UDID_W7_DEFAULT    (0x00000008) /*!< Def value reg
-							UDID W7 */
-#define AI2C_REG_I2C_X7_UDID_W6            (0x009C)   /*!< Offset to reg
-							UDID W6 */
-#define AI2C_REG_I2C_X7_UDID_W5            (0x00A0)   /*!< Offset to reg
-							UDID W5 */
-#define AI2C_REG_I2C_X7_UDID_W4            (0x00A4)   /*!< Offset to reg
-							UDID W4 */
-#define AI2C_REG_I2C_X7_UDID_W4_DEFAULT    (0x00000004) /*!< Def value reg
-							UDID W4 */
-#define AI2C_REG_I2C_X7_UDID_W3            (0x00A8)   /*!< Offset to reg
-							UDID W3 */
-#define AI2C_REG_I2C_X7_UDID_W2            (0x00AC)   /*!< Offset to reg
-							UDID W2 */
-#define AI2C_REG_I2C_X7_UDID_W1            (0x00B0)   /*!< Offset to reg
-							UDID W1 */
-#define AI2C_REG_I2C_X7_UDID_W0            (0x00B4)   /*!< Offset to reg
-							UDID W0 */
-#define AI2C_REG_I2C_X7_ARPPEC_CFG_STAT    (0x00B8)   /*!< Offset to reg
-							ARPPEC Cfg Status */
-#define AI2C_REG_I2C_X7_SLV_ARP_INT_ENABLE (0x00BC)   /*!< Offset to reg
-							Slave ARP Interrupt
-							Enable */
-#define AI2C_REG_I2C_X7_SLV_ARP_INT_STATUS (0x00C0)   /*!< Offset to reg
-							Slave ARP Interrupt
-							Status */
-#define AI2C_REG_I2C_X7_MST_ARP_INT_ENABLE (0x00C4)   /*!< Offset to reg
-							Master ARP Interrupt
-							Enable */
-#define AI2C_REG_I2C_X7_MST_ARP_INT_STATUS (0x00C8)   /*!< Offset to reg
-							Master ARP Interrupt
-							Status */
-/*
-** Unused                                  0x00CC - 0x00FC
-*/
-
-
-/**********************************
- * Register Structure definitions *
- *********************************/
-
-/*! @struct  ai2c_reg_i2c_x7_global_control
- *  @brief   I2C Global Control register (X7)
- */
-struct ai2c_reg_i2c_x7_global_control {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:29;     /*!< bits 31:3  reserved */
-	unsigned IE:1;   /*!< bits  2     enable/disable IBML timers:
-						0=disable (def), 1=enable */
-	unsigned SE:1;   /*!< bits  1     enable/disable SSM address
-						decode:0=disable, 1=enable */
-	unsigned ME:1;   /*!< bits  0     enable/disable MSM:
-						0=disable, 1=enable */
-#else
-	unsigned ME:1;   /*!< bits  0     enable/disable MSM:
-						0=disable, 1=enable */
-	unsigned SE:1;   /*!< bits  1     enable/disable SSM address
-						decode:0=disable, 1=enable */
-	unsigned IE:1;   /*!< bits  2     enable/disable IBML timers:
-						=disable (def), 1=enable */
-	unsigned:29;     /* bits 31:3  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_interrupt_status
- *  @brief   I2C Interrupt Status register (X7)
- */
-struct ai2c_reg_i2c_x7_interrupt_status {
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:28;         /*!< bits 31:4  reserved */
-	unsigned mai:1;      /*!< bits  3     OR of all master ARP
-				interrupt sources */
-	unsigned sai:1;      /*!< bits  2     OR of all slave ARP
-				interrupt sources */
-	unsigned si:1;       /*!< bits  1     slave interrupt source(s) OR */
-	unsigned mi:1;       /*!< bits  0     master interrupt source(s) OR */
-#else
-	unsigned mi:1;       /*!< bits  0     master interrupt source(s) OR */
-	unsigned si:1;       /*!< bits  1     slave interrupt source(s) OR */
-	unsigned sai:1;      /*!< bits  2     OR of all slave ARP
-				interrupt sources */
-	unsigned mai:1;      /*!< bits  3     OR of all master ARP
-				interrupt sources */
-	unsigned:28;         /*!< bits 31:4  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_interrupt_enable
- *  @brief   I2C Interrupt Enable register (X7)
- */
-struct ai2c_reg_i2c_x7_interrupt_enable {
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:28;         /*!< bits 31:4  reserved */
-	unsigned maie:1;     /*!< bits  3     enable of all master ARP
-				interrupt sources */
-	unsigned saie:1;     /*!< bits  2     enable of all slave ARP
-				interrupt sources */
-	unsigned sie:1;      /*!< bits  1     enable of slave interrupt
-				source(s) */
-	unsigned mie:1;      /*!< bits  0     enable of master interrupt
-				source(s) */
-#else
-	unsigned mie:1;      /*!< bits  0     enable of master interrupt
-				source(s) */
-	unsigned sie:1;      /*!< bits  1     enable of slave interrupt
-				source(s) */
-	unsigned saie:1;     /*!< bits  2     enable of all slave ARP
-				interrupt sources */
-	unsigned maie:1;     /*!< bits  3     enable of all master ARP
-				interrupt sources */
-	unsigned:28;         /*!< bits 31:4  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_wait_timer_control
- *  @brief   I2C Master XMIT Status register (X7)
- */
-struct ai2c_reg_i2c_x7_wait_timer_control {
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;         /*!< bits 31:16  reserved */
-	unsigned te:1;       /*!< bits 15     enable master/slave wait timer */
-	unsigned tlv:15;     /*!< bits 14:0   timer load value to extend the
-				SCL low timer */
-#else
-	unsigned tlv:15;     /*!< bits 14:0   timer load value to extend the
-				SCL low timer */
-	unsigned te:1;       /*!< bits 15     enable master/slave wait timer */
-	unsigned:16;         /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_ibml_timeout
- *  @brief   I2C Master RCV Status register (X7)
- */
-struct ai2c_reg_i2c_x7_ibml_timeout {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;         /*!< bits 31:16  reserved */
-	unsigned te:1;       /*!< bits 15     enable/disable IBML Timeout */
-	unsigned itlv:15;    /*!< bits 14:0   timer load value to extend
-				the SCL low timer after high */
-#else
-	unsigned itlv:15;    /*!< bits 14:0   timer load value to extend
-				the SCL low timer after high */
-	unsigned te:1;       /*!< bits 15     enable/disable IBML Timeout */
-	unsigned:16;         /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_ibml_low_mext
- *  @brief   I2C IBML Low MEXT register (X7)
- */
-struct ai2c_reg_i2c_x7_ibml_low_mext {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;         /*!< bits 31:16  reserved */
-	unsigned te:1;       /*!< bits 15     enable/disable IBML
-				Low MEXT flag*/
-	unsigned imtlv:15;   /*!< bits 14:0   timer load value at
-				begin of every master data byte transfer */
-#else
-	unsigned imtlv:15;   /*!< bits 14:0   timer load value at begin
-				of every master data byte transfer */
-	unsigned te:1;       /*!< bits 15     enable master/slave wait timer */
-	unsigned:16;         /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_low_sext
- *  @brief   I2C Master Interrupt Clear register (X7)
- */
-struct ai2c_reg_i2c_x7_low_sext {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;         /*!< bits 31:16  reserved */
-	unsigned te:1;       /*!< bits 15     enable/disable IBML
-				Low MEXT flag*/
-	unsigned istlv:15;   /*!< bits 14:0   timer load value at
-				begin of every slave data byte transfer */
-#else
-	unsigned istlv:15;   /*!< bits 14:0   timer load value at begin
-				of every slave data byte transfer */
-	unsigned te:1;       /*!< bits 15     enable master/slave wait timer */
-	unsigned:16;         /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_i2c_bus_monitor
- *  @brief   I2C Master Interrupt Status register (X7)
- */
-struct ai2c_reg_i2c_x7_i2c_bus_monitor {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:26;         /*!< bits 31:6  reserved */
-	unsigned sdae:1;     /*!< bits  5     At least 1 high-to-low
-				transition occurred on SDA status line */
-	unsigned scle:1;     /*!< bits  4     At least 1 high-to-low
-				transition occurred on SCL status line */
-	unsigned sdac:1;     /*!< bits  3     Controls SDA signal */
-	unsigned sclc:1;     /*!< bits  2     Controls SCL signal */
-	unsigned sdas:1;     /*!< bits  1     Current value of SDA signal
-				on I2C bus */
-	unsigned scls:1;     /*!< bits  0     Current value of SCL signal
-				on I2C bus */
-#else
-	unsigned scls:1;     /*!< bits  0     Current value of SCL signal
-				on I2C bus */
-	unsigned sdas:1;     /*!< bits  1     Current value of SDA signal
-				on I2C bus */
-	unsigned sclc:1;     /*!< bits  2     Controls SCL signal */
-	unsigned sdac:1;     /*!< bits  3     Controls SDA signal */
-	unsigned scle:1;     /*!< bits  4     At least 1 high-to-low
-				transition occurred on SCL status line */
-	unsigned sdae:1;     /*!< bits  5     At least 1 high-to-low
-				transition occurred on SDA status line */
-	unsigned:26;         /*!< bits 31:6  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_soft_reset
- *  @brief   I2C Soft Reset register (X7)
- */
-struct ai2c_reg_i2c_x7_soft_reset {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:31;       /*!< bits 31:1  reserved */
-	unsigned i2cr:1;   /*!< bits  0     Reset the entire API2C module
-				when set to 1 */
-#else
-	unsigned i2cr:1;   /*!< bits  0     Reset the entire API2C module
-				when set to 1 */
-	unsigned:31;       /*!< bits 31:1  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_mst_command
- *  @brief   I2C Master Command register (X7)
- */
-struct ai2c_reg_i2c_x7_mst_command {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:28;         /*!< bits 31:4  reserved */
-	unsigned sc:1;       /*!< bits  3     Issue command when set to 1 */
-	unsigned cmdtype:3;  /*!< bits  2:0  Command type:
-				000: Manual Mode Transfer
-				001: Automatic Mode Transfer
-				010: Sequence Mode Transfer
-				011: Issue master Stop
-				111: Flush Master Transmit FIFO */
-#else
-	unsigned cmdtype:3;  /*!< bits  2:0  Command type:
-				000: Manual Mode Transfer
-				001: Automatic Mode Transfer
-				010: Sequence Mode Transfer
-				011: Issue master Stop
-				111: Flush Master Transmit FIFO */
-	unsigned sc:1;         /*!< bits  3     Issue command when set to 1 */
-	unsigned:28;         /*!< bits 31:4  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_mst_rx_xfer
- *  @brief   I2C Master Receive Transfer Length register (X7)
- */
-struct ai2c_reg_i2c_x7_mst_rx_xfer {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:24;         /*!< bits 31:8  reserved */
-	unsigned length:8;   /*!< bits  7:0  Number of bytes master receives
-				during read xfer */
-#else
-	unsigned length:8;   /*!< bits  7:0  Number of bytes master receives
-				during read xfer */
-	unsigned:24;         /*!< bits 31:8  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_mst_tx_xfer
- *  @brief   I2C Master Transmit Transfer Length register (X7)
- */
-struct ai2c_reg_i2c_x7_mst_tx_xfer {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:24;         /*!< bits 31:8  reserved */
-	unsigned length:8;   /*!< bits  7:0  Number of bytes master sends
-				during write xfer */
-#else
-	unsigned length:8;   /*!< bits  7:0  Number of bytes master sends
-				during write xfer */
-	unsigned:24;         /*!< bits 31:8  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_mst_addr_1
- *  @brief   I2C Master Address 1 register (X7)
- */
-struct ai2c_reg_i2c_x7_mst_addr_1 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:24;         /*!< bits 31:8  reserved */
-	unsigned i2ca1:7;    /*!< bits  7:1  First 7 bits of the address phase
-				of transaction. If bits [7:3] = 11110, then
-				10-bit addressing is selected, and bits [2:1]
-				become the two most significant bits of a
-				10-bit address. */
-	unsigned ad:1;       /*!< bits  0     Data direction:0=write, 1=read */
-#else
-	unsigned ad:1;       /*!< bits  0     Data direction:0=write, 1=read */
-	unsigned i2ca1:7;    /*!< bits  7:1  First 7 bits of the address phase
-				of transaction. If bits [7:3] = 11110, then
-				10-bit addressing is selected, and bits [2:1]
-				become the two most significant bits of a
-				10-bit address. */
-	unsigned:24;         /*!< bits 31:8  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_mst_addr_2
- *  @brief   I2C Master Address 2 register (X7)
- */
-struct ai2c_reg_i2c_x7_mst_addr_2 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:24;         /*!< bits 31:8  reserved */
-	unsigned i2ca2:8;    /*!< bits  7:0  I2C Address bits of a 10-bit
-				I2C address when
-				selected.  If 10-bit addressing is enabled, this
-				field is sent as the second byte in the address
-				phase of an I2C transaction. */
-#else
-	unsigned i2ca2:8;    /*!< bits  7:0  I2C Address bits of a 10-bit
-				I2C address when selected.
-				If 10-bit addressing is enabled, this
-				field is sent as the second byte in the address
-				phase of an I2C transaction. */
-	unsigned:24;         /*!< bits 31:8  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_mst_data
- *  @brief   I2C Master Data register (X7)
- */
-struct ai2c_reg_i2c_x7_mst_data {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:24;         /*!< bits 31:8  reserved */
-	unsigned data:8;     /*!< bits  7:0  Each byte written goes to the
-				Master Transmit FIFO.
-				Each byte read returned from the
-				Master Transmit FIFO. */
-#else
-	unsigned data:8;     /*!< bits  7:0  Each byte written goes to the
-				Master Transmit FIFO.
-				Each byte read returned from the
-				Master Transmit FIFO. */
-	unsigned:24;         /*!< bits 31:8  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_mst_tx_fifo
- *  @brief   I2C Master Transmit FIFO Status register (X7)
- */
-struct ai2c_reg_i2c_x7_mst_tx_fifo {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:28;         /*!< bits 31:4  reserved */
-	unsigned depth:4;    /*!< bits  3:0  Number of bytes in
-				master Transmit FIFO */
-#else
-	unsigned depth:4;    /*!< bits  3:0  Number of bytes in
-				master Transmit FIFO */
-	unsigned:28;         /*!< bits 31:4  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_mst_rx_fifo
- *  @brief   I2C Master Receive FIFO Status register (X7)
- */
-struct ai2c_reg_i2c_x7_mst_rx_fifo {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:28;         /*!< bits 31:4  reserved */
-	unsigned depth:4;    /*!< bits  3:0  Number of bytes in master
-				Receive FIFO */
-#else
-	unsigned depth:4;    /*!< bits  3:0  Number of bytes in master
-				Receive FIFO */
-	unsigned:28;         /*!< bits 31:4  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_mst_int_enable
- *  @brief   I2C Master Interrupt Enable register (X7)
- */
-struct ai2c_reg_i2c_x7_mst_int_enable {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;        /*!< bits 31:16  reserved */
-	unsigned mie:12;    /*!< bits 15:4  Bits to enable individual
-				interrupt resources */
-	unsigned:4;         /*!< bits  3:0  reserved */
-#else
-	unsigned:4;         /*!< bits  3:0  reserved */
-	unsigned mie:12;    /*!< bits 15:4  Bits to enable individual
-				interrupt resources */
-	unsigned:16;        /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_mst_int_status
- *  @brief   I2C Master Interrupt Status register (X7)
- */
-struct ai2c_reg_i2c_x7_mst_int_status {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;         /*!< bits 31:16  reserved */
-	unsigned itt:1;         /*!< bits 15     */
-	unsigned itlm:1;         /*!< bits 14     */
-	unsigned rfl:1;         /*!< bits 13     */
-	unsigned tfl:1;         /*!< bits 12     */
-	unsigned sns:1;         /*!< bits 11     */
-	unsigned ss:1;         /*!< bits 10     */
-	unsigned scc:1;         /*!< bits  9     */
-	unsigned ip:1;         /*!< bits  8     */
-	unsigned tss:1;         /*!< bits  7     */
-	unsigned al:1;         /*!< bits  6     */
-	unsigned nd:1;         /*!< bits  5     */
-	unsigned na:1;         /*!< bits  4     */
-	unsigned ts:1;         /*!< bits  3     */
-	unsigned stp:1;         /*!< bits  2     */
-	unsigned ttp:1;         /*!< bits  1     */
-	unsigned rtp:1;         /*!< bits  0     */
-#else
-	unsigned rtp:1;         /*!< bits  0     */
-	unsigned ttp:1;         /*!< bits  1     */
-	unsigned stp:1;         /*!< bits  2     */
-	unsigned ts:1;         /*!< bits  3     */
-	unsigned na:1;         /*!< bits  4     */
-	unsigned nd:1;         /*!< bits  5     */
-	unsigned al:1;         /*!< bits  6     */
-	unsigned tss:1;         /*!< bits  7     */
-	unsigned ip:1;         /*!< bits  8     */
-	unsigned scc:1;         /*!< bits  9     */
-	unsigned ss:1;         /*!< bits 10     */
-	unsigned sns:1;         /*!< bits 11     */
-	unsigned tfl:1;         /*!< bits 12     */
-	unsigned rfl:1;         /*!< bits 13     */
-	unsigned itlm:1;         /*!< bits 14     */
-	unsigned itt:1;         /*!< bits 15     */
-	unsigned:16;         /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_mst_tx_bytes_xfrd
- *  @brief   I2C Master Transmit Bytes Transferred register (X7)
- */
-struct ai2c_reg_i2c_x7_mst_tx_bytes_xfrd {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:24;         /*!< bits 31:8  reserved */
-	unsigned num:8;      /*!< bits  7:0  Number of bytes
-				transferred successfully */
-#else
-	unsigned num:8;      /*!< bits  7:0  Number of bytes
-				transferred successfully */
-	unsigned:24;         /*!< bits 31:8  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_mst_rx_bytes_xfrd
- *  @brief   I2C Master Receive Bytes Transferred register (X7)
- */
-struct ai2c_reg_i2c_x7_mst_rx_bytes_xfrd {
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:24;         /*!< bits 31:8  reserved */
-	unsigned num:8;      /*!< bits  7:0  Number of bytes
-				received successfully */
-#else
-	unsigned num:8;      /*!< bits  7:0  Number of bytes
-				received successfully */
-	unsigned:24;         /*!< bits 31:8  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_slv_addr_dec_ctl
- *  @brief   I2C Master Transmit Transfer Length register (X7)
- */
-struct ai2c_reg_i2c_x7_slv_addr_dec_ctl {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:26;      /*!< bits 31:6  reserved */
-	unsigned sa2m:8;  /*!< bits  5     7-bit or 10-bit slave addressing
-				for Slave Addr Decoder 2 */
-	unsigned sa2e:8;  /*!< bits  4     Slave State machine to ACK during
-				addr phase of trans for Slave Addr 2 */
-	unsigned sa1m:8;  /*!< bits  3     7-bit or 10-bit slave addressing
-				for Slave Addr Decoder 1 */
-	unsigned sa1e:8;  /*!< bits  2     Slave State machine to ACK during
-				addr phase of trans for Slave Addr 1 */
-	unsigned ogce:8;  /*!< bits  1     Slave State machine to ACK to
-				General Call Address from its master */
-	unsigned gce:8;   /*!< bits  0     Slave State machine to ACK to
-				General Call Address from other masters */
-#else
-	unsigned gce:8;   /*!< bits  0     Slave State machine to ACK to
-				General Call Address from other masters */
-	unsigned ogce:8;  /*!< bits  1     Slave State machine to ACK to
-				General Call Address from its master */
-	unsigned sa1e:8;  /*!< bits  2     Slave State machine to ACK during
-				addr phase of trans for Slave Addr 1 */
-	unsigned sa1m:8;  /*!< bits  3     7-bit or 10-bit slave addressing
-				for Slave Addr Decoder 1 */
-	unsigned sa2e:8;  /*!< bits  4     Slave State machine to ACK during
-				addr phase of trans for Slave Addr 2 */
-	unsigned sa2m:8;  /*!< bits  5     7-bit or 10-bit slave addressing
-				for Slave Addr Decoder 2 */
-	unsigned:24;      /*!< bits 31:8  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_slv_addr_1
- *  @brief   I2C Slave Address 1 register (X7)
- */
-struct ai2c_reg_i2c_x7_slv_addr_1 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:22;         /*!< bits 31:10  reserved */
-	unsigned sa1:10;         /*!< bits  9:0  7-bit or 10-bit address */
-#else
-	unsigned sa1:10;         /*!< bits  9:0  7-bit or 10-bit address */
-	unsigned:22;         /*!< bits 31:10  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_slv_addr_2
- *  @brief   I2C Slave Address 2 register (X7)
- */
-struct ai2c_reg_i2c_x7_slv_addr_2 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:22;         /*!< bits 31:10  reserved */
-	unsigned sa2:10;         /*!< bits  9:0  7-bit or 10-bit address */
-#else
-	unsigned sa2:10;         /*!< bits  9:0  7-bit or 10-bit address */
-	unsigned:22;         /*!< bits 31:10  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_slv_rx_ctl
- *  @brief   I2C Slave Receive Control register (X7)
- */
-struct ai2c_reg_i2c_x7_slv_rx_ctl {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:29;         /*!< bits 31:3  reserved */
-	unsigned acgca:1;    /*!< bits  2     ACK data (write) phase to GCA */
-	unsigned acsa2:1;    /*!< bits  1     ACK for data (write) phase
-				to Slave Addr 2 */
-	unsigned acsa1:1;    /*!< bits  0     ACK for data (write) phase
-				to Slave Addr 1 */
-#else
-	unsigned acsa1:1;         /*!< bits  0     ACK for data (write) phase
-					to Slave Addr 1 */
-	unsigned acsa2:1;         /*!< bits  1     ACK for data (write) phase
-					to Slave Addr 2 */
-	unsigned acgca:1;         /*!< bits  2     ACK data (write) phase
-					to GCA */
-	unsigned:29;         /*!< bits 31:3  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_slv_data
- *  @brief   I2C Slave Data register (X7)
- */
-struct ai2c_reg_i2c_x7_slv_data {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:23;         /*!< bits 31:9  reserved */
-	unsigned pec:1;      /*!< bits  8     Set to subst PEC data
-				for transmission */
-	unsigned strd:8;     /*!< bits  7:0  Read data from top
-				of Receive FIFO
-				Write places transmit data into Slave Read
-				Data Register. */
-#else
-	unsigned strd:8;     /*!< bits  7:0  Read data from top
-				of Receive FIFO
-				Write places transmit data into Slave Read
-				Data Register. */
-	unsigned pec:1;      /*!< bits  8     Set to subst PEC data
-				for transmission */
-	unsigned:24;         /*!< bits 31:8  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_slv_rx_fifo
- *  @brief   I2C Slave Receive FIFO Status register (X7)
- */
-struct ai2c_reg_i2c_x7_slv_rx_fifo {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:24;         /*!< bits 31:8  reserved */
-	unsigned pec:1;      /*!< bits  7     PEC good or not */
-	unsigned stpc:1;     /*!< bits  6     Data transfer termined due to
-				stop condition */
-	unsigned rsc:1;      /*!< bits  4     Received byte was first after
-				repeated start */
-	unsigned strc:1;     /*!< bits  4     This is first data byte for a
-				slave addr after start */
-	unsigned tnak:1;     /*!< bits  3     NAK sent due to timeout */
-	unsigned as:1;       /*!< bits  2     Data byte valid (0=ACK, 1=NAK) */
-	unsigned dv:2;       /*!< bits  1:0  Data in FIFO is valid and for
-				which slave
-				*               00: empty
-				*               01: Valid for slave addr 1
-				*               10: Valid for slave addr 2
-				*               11: General call address
-						data valid */
-#else
-	unsigned dv:2;       /*!< bits  1:0  Data in FIFO is valid and for
-				which slave
-				*               00: empty
-				*               01: Valid for slave addr 1
-				*               10: Valid for slave addr 2
-				*               11: General call address
-						data valid */
-	unsigned as:1;       /*!< bits  2     Data byte valid (0=ACK, 1=NAK) */
-	unsigned tnak:1;     /*!< bits  3     NAK sent due to timeout */
-	unsigned strc:1;     /*!< bits  4     This is first data byte for a
-				slave addr after start */
-	unsigned rsc:1;      /*!< bits  4     Received byte was first after
-				repeated start */
-	unsigned stpc:1;     /*!< bits  6     Data transfer termined due to
-				stop condition */
-	unsigned pec:1;      /*!< bits  7     PEC good or not */
-	unsigned:24;         /*!< bits 31:8  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_slv_int_enable
- *  @brief   I2C Slave Interrupt Enable register (X7)
- */
-struct ai2c_reg_i2c_x7_slv_int_enable {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;        /*!< bits 31:16  reserved */
-	unsigned sie2:8;    /*!< bits 15:10  Bit enable individual sources in
-				corresponding status reg */
-	unsigned:1;         /*!< bits  9     reserved */
-	unsigned sie1:5;    /*!< bits  8:4  Bit enable individual sources in
-				corresponding status reg */
-	unsigned:1;         /*!< bits  3     reserved */
-	unsigned sie0:3;    /*!< bits  2:0  Bit enable individual sources in
-				corresponding status reg */
-#else
-	unsigned sie0:3;    /*!< bits  2:0  Bit enable individual sources in
-				corresponding status reg */
-	unsigned:1;         /*!< bits  3     reserved */
-	unsigned sie1:5;    /*!< bits  8:4  Bit enable individual sources in
-				corresponding status reg */
-	unsigned:1;         /*!< bits  9     reserved */
-	unsigned sie2:8;    /*!< bits 15:10  Bit enable individual sources in
-				corresponding status reg */
-	unsigned:16;        /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_slv_int_status
- *  @brief   I2C Slave Interrupt Status register (X7)
- */
-struct ai2c_reg_i2c_x7_slv_int_status {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;         /*!< bits 31:16  reserved */
-	unsigned it:1;       /*!< bits 15     See spec for details */
-	unsigned itls:1;     /*!< bits 14     See spec for details */
-	unsigned srdre2:1;   /*!< bits 13     See spec for details */
-	unsigned srat2:1;    /*!< bits 12     See spec for details */
-	unsigned src2:1;     /*!< bits 11     See spec for details */
-	unsigned srnd2:1;    /*!< bits 10     See spec for details */
-	unsigned srrs2:1;    /*!< bits  9     See spec for details */
-	unsigned srs2:1;     /*!< bits  8     See spec for details */
-	unsigned srdre1:1;   /*!< bits  7     See spec for details */
-	unsigned srat1:1;    /*!< bits  6     See spec for details */
-	unsigned src1:1;     /*!< bits  5     See spec for details */
-	unsigned srnd1:1;    /*!< bits  4     See spec for details */
-	unsigned srrs1:1;    /*!< bits  3     See spec for details */
-	unsigned srs1:1;     /*!< bits  2     See spec for details */
-	unsigned wtc:1;      /*!< bits  1     See spec for details */
-	unsigned rfh:1;      /*!< bits  0     See spec for details */
-#else
-	unsigned rfh:1;      /*!< bits  0     See spec for details */
-	unsigned wtc:1;      /*!< bits  1     See spec for details */
-	unsigned srs1:1;     /*!< bits  2     See spec for details */
-	unsigned srrs1:1;    /*!< bits  3     See spec for details */
-	unsigned srnd1:1;    /*!< bits  4     See spec for details */
-	unsigned src1:1;     /*!< bits  5     See spec for details */
-	unsigned srat1:1;    /*!< bits  6     See spec for details */
-	unsigned srdre1:1;   /*!< bits  7     See spec for details */
-	unsigned srs2:1;     /*!< bits  8     See spec for details */
-	unsigned srrs2:1;    /*!< bits  9     See spec for details */
-	unsigned srnd2:1;    /*!< bits 10     See spec for details */
-	unsigned src2:1;     /*!< bits 11     See spec for details */
-	unsigned srat2:1;    /*!< bits 12     See spec for details */
-	unsigned srdre2:1;   /*!< bits 13     See spec for details */
-	unsigned itls:1;     /*!< bits 14     See spec for details */
-	unsigned it:1;       /*!< bits 15     See spec for details */
-	unsigned:16;         /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_slv_read_dummy
- *  @brief   I2C Slave Read Dummy register (X7)
- */
-struct ai2c_reg_i2c_x7_slv_read_dummy {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:23;      /*!< bits 31:9  reserved */
-	unsigned srte:1;  /*!< bits  8    Disable/Enable slave read time-out */
-	unsigned dd:8;    /*!< bits  7:0  Incoming slave read data */
-#else
-	unsigned dd:8;    /*!< bits  7:0  Incoming slave read data */
-	unsigned srte:1;  /*!< bits  8    Disable/Enable slave read time-out */
-	unsigned:23;      /*!< bits 31:9  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_scl_high_period
- *  @brief   I2C SCL High Period register (X7)
- */
-struct ai2c_reg_i2c_x7_scl_high_period {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;         /*!< bits 31:16  reserved */
-	unsigned period:16;  /*!< bits 15:0  (Desired SCL High Time /
-				PCLK period) - 1 */
-#else
-	unsigned period:16;  /*!< bits 15:0  (Desired SCL High Time /r
-i				 PCLK period) - 1 */
-	unsigned:16;         /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_scl_low_period
- *  @brief   I2C SCL Low Period register (X7)
- */
-struct ai2c_reg_i2c_x7_scl_low_period {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;         /*!< bits 31:16  reserved */
-	unsigned period:16;  /*!< bits 15:0  (Desired SCL Low Time /
-				PCLK period) - 1 */
-#else
-	unsigned period:16;  /*!< bits 15:0  (Desired SCL Low Time /
-				PCLK period) - 1 */
-	unsigned:16;         /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_spike_fltr_len
- *  @brief   I2C Spike Filter Length register (X7)
- */
-struct ai2c_reg_i2c_x7_spike_fltr_len {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:27;         /*!< bits 31:5  reserved */
-	unsigned fs:5;       /*!< bits  4:0  Num of spike filter stages */
-#else
-	unsigned fs:5;       /*!< bits  4:0  Num of spike filter stages */
-	unsigned:27;         /*!< bits 31:5  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_scl_sda_setup_time
- *  @brief   I2C SDA Setup Time register (X7)
- */
-struct ai2c_reg_i2c_x7_sda_setup_time {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;         /*!< bits 31:16  reserved */
-	unsigned period:16;  /*!< bits 15:0  Suitable period */
-#else
-	unsigned period:16;  /*!< bits 15:0  Suitable period */
-	unsigned:16;         /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_sda_hold_time
- *  @brief   I2C SDA Hold Time register (X7)
- */
-struct ai2c_reg_i2c_x7_sda_hold_time {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;         /*!< bits 31:16  reserved */
-	unsigned period:16;  /*!< bits 15:0  Suitable period */
-#else
-	unsigned period:16;  /*!< bits 15:0  Suitable period */
-	unsigned:16;         /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_smb_alert
- *  @brief   I2C SMB Alert register (X7)
- */
-struct ai2c_reg_i2c_x7_smb_alert {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:28;                      /*!< bits 31:4  reserved */
-	unsigned slave_addr_sel:1;        /*!< bits  3     Select a slave
-					   address register to use in alerts */
-	unsigned smb_alert_pec_enable:1;  /*!< bits  2     Suitable period */
-	unsigned smb_alert_enable:1;      /*!< bits  1     Suitable period */
-	unsigned smb_alert:1;             /*!< bits  0     Suitable period */
-#else
-	unsigned smb_alert:1;             /*!< bits  0     Suitable period */
-	unsigned smb_alert_enable:1;      /*!< bits  1     Suitable period */
-	unsigned smb_alert_pec_enable:1;  /*!< bits  2     Suitable period */
-	unsigned slave_addr_sel:1;        /*!< bits  3     Select a slave
-					   address register to use in alerts */
-	unsigned:28;                      /*!< bits 31:4  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_udid_w7
- *  @brief   I2C UDID 127:112 register (X7)
- */
-struct ai2c_reg_i2c_x7_udid_w7 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;               /*!< bits 31:16  reserved */
-	unsigned addr_type:2;      /*!< bits 15:14  Types of address */
-	unsigned:5;                /*!< bits 13:9  reserved */
-	unsigned pec_supported:1;  /*!< bits  8     Ability to support
-					slave PEC check/gen for non-ARP cmd */
-	unsigned:2;                /*!< bits  7:6  reserved */
-	unsigned version:3;        /*!< bits  5:3  UDID Version 1 */
-	unsigned revision:3;       /*!< bits  2:0  Silicon Revision 0 */
-#else
-	unsigned revision:3;       /*!< bits  2:0  Silicon Revision 0 */
-	unsigned version:3;        /*!< bits  5:3  UDID Version 1 */
-	unsigned:2;                /*!< bits  7:6  reserved */
-	unsigned pec_supported:1;  /*!< bits  8     Ability to support
-					slave PEC check/gen for non-ARP cmd */
-	unsigned:5;                /*!< bits 13:9  reserved */
-	unsigned addr_type:2;      /*!< bits 15:14  Types of address */
-	unsigned:16;               /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_udid_w6
- *  @brief   I2C UDID 111:96 register (X7)
- */
-struct ai2c_reg_i2c_x7_udid_w6 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;         /*!< bits 31:16  reserved */
-	unsigned vendorId:16;         /*!< bits 15:0  Unique Vendor Id */
-#else
-	unsigned vendorId:16;         /*!< bits 15:0  Unique Vendor Id */
-	unsigned:16;         /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_udid_w5
- *  @brief   I2C UDID 95:80 register (X7)
- */
-struct ai2c_reg_i2c_x7_udid_w5 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;         /*!< bits 31:16  reserved */
-	unsigned deviceId:16;         /*!< bits 15:0  Unique Device Id */
-#else
-	unsigned deviceId:16;         /*!< bits 15:0  Unique Device Id */
-	unsigned:16;         /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_udid_w4
- *  @brief   I2C UDID 79:64 register (X7)
- */
-struct ai2c_reg_i2c_x7_udid_w4 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:25;             /*!< bits 31:7  reserved */
-	unsigned ipmi:1;         /*!< bits  6     Extra capab per IPMI specs */
-	unsigned asf:1;          /*!< bits  5     Extra capab per ASF specs */
-	unsigned oem:1;          /*!< bits  4     Extra capab per OEM
-				subsystem specs */
-	unsigned smbus_ver:4;    /*!< bits  3:0  SMBus Version 2.0 */
-#else
-	unsigned smbus_ver:4;   /*!< bits  3:0  SMBus Version 2.0 */
-	unsigned oem:1;         /*!< bits  4     Extra capab per OEM
-				subsystem specs */
-	unsigned asf:1;         /*!< bits  5     Extra capab per ASF specs */
-	unsigned ipmi:1;        /*!< bits  6     Extra capab per IPMI specs */
-	unsigned:25;            /*!< bits 31:7  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_udid_w3
- *  @brief   I2C UDID 63:48 register (X7)
- */
-struct ai2c_reg_i2c_x7_udid_w3 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;             /*!< bits 31:16  reserved */
-	unsigned subVendorId:16; /*!< bits 15:0  Subsystem Vendor Id */
-#else
-	unsigned subVendorId:16; /*!< bits 15:0  Subsystem Vendor Id */
-	unsigned:16;             /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_udid_w2
- *  @brief   I2C UDID 47:32 register (X7)
- */
-struct ai2c_reg_i2c_x7_udid_w2 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;             /*!< bits 31:16  reserved */
-	unsigned subDeviceId:16; /*!< bits 15:0  Subsystem Device Id */
-#else
-	unsigned subDeviceId:16; /*!< bits 15:0  Subsystem Device Id */
-	unsigned:16;             /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_udid_w1
- *  @brief   I2C UDID 31:16 register (X7)
- */
-struct ai2c_reg_i2c_x7_udid_w1 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;         /*!< bits 31:16  reserved */
-	unsigned vendorIDHI:16;
-		/*!< bits 15:0  Upper 16-bits of 32-bit unique value
-		*               to differentiate between the same
-		*               type of device.  This field must be
-		*               loaded to correct value before ARP
-		*               is enabled. */
-#else
-	unsigned vendorIDHI:16;
-		/*!< bits 15:0  Upper 16-bits of 32-bit unique value
-		*               to differentiate between the same
-		*               type of device.  This field must be
-		*               loaded to correct value before ARP
-		*               is enabled. */
-	unsigned:16;         /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_udid_w0
- *  @brief   I2C UDID 15:0 register (X7)
- */
-struct ai2c_reg_i2c_x7_udid_w0 {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:16;         /*!< bits 31:16  reserved */
-	unsigned vendorIDLO:16;
-		/*!< bits 15:0  Lower 16-bits of 32-bit unique value
-		*               to differentiate between the same
-		*               type of device.  This field must be
-		*               loaded to correct value before ARP
-		*               is enabled. */
-#else
-	unsigned vendorIDLO:16;
-		/*!< bits 15:0  Lower 16-bits of 32-bit unique value
-		*               to differentiate between the same
-		*               type of device.  This field must be
-		*               loaded to correct value before ARP
-		*               is enabled. */
-unsigned:16;         /*!< bits 31:16  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_arppec_cfg_stat
- *  @brief   I2C ARP/PEC Configuration & Status register (X7)
- */
-struct ai2c_reg_i2c_x7_arppec_cfg_stat {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:26;                  /*!< bits 31:6  reserved */
-	unsigned slavePECEnable:1;    /*!< bits  5     PEC gen/check
-					enabled for non-ARP cmds for slave */
-	unsigned masterPECEnable:1;   /*!< bits  4     PEC gen/check enabled
-					for non-ARP cmds for master */
-	unsigned PSAEnable:1;         /*!< bits  3     Persistent Slave
-					Address Enabled */
-	unsigned ARPEnable:1;         /*!< bits  2     SMBus logic may
-					respond to ARP Slave Commands */
-	unsigned AVFlag:1;            /*!< bits  2     Address valid
-					for ARP slave commands */
-	unsigned ARFlag:1;            /*!< bits  0     Device address
-					resolved with ARP master */
-#else
-	unsigned ARFlag:1;            /*!< bits  0     Device address
-					resolved with ARP master */
-	unsigned AVFlag:1;            /*!< bits  2     Address valid
-					for ARP slave commands */
-	unsigned ARPEnable:1;         /*!< bits  2     SMBus logic may
-					respond to ARP Slave Commands */
-	unsigned PSAEnable:1;         /*!< bits  3     Persistent Slave
-					Address Enabled */
-	unsigned masterPECEnable:1;   /*!< bits  4     PEC gen/check enabled
-					for non-ARP cmds for master */
-	unsigned slavePECEnable:1;    /*!< bits  5     PEC gen/check enabled
-					for non-ARP cmds for slave */
-	unsigned:26;                  /*!< bits 31:6  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_slv_arp_int_enable
- *  @brief   I2C Slave ARP Interrupt Enable register (X7)
- */
-struct ai2c_reg_i2c_x7_slv_arp_int_enable {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:25;         /*!< bits 31:7  reserved */
-	unsigned arpie:7;    /*!< bits  6:0  Bit enable individual
-				interrupt sources for ARP Slave Int Stat reg */
-#else
-	unsigned arpie:7;    /*!< bits  6:0  Bit enable individual interrupt
-				sources for ARP Slave Int Stat reg */
-	unsigned:25;         /*!< bits 31:7  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_slv_arp_int_status
- *  @brief   I2C Slave ARP Interrupt Status register (X7)
- */
-struct ai2c_reg_i2c_x7_slv_arp_int_status {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:25;                  /*!< bits 31:7  reserved */
-	unsigned SMBAlertResp:7;      /*!< bits  6     After receive/reply
-					to Alert Response message */
-	unsigned PrepARPRcv:7;        /*!< bits  5     When decode/receive
-					a Prep to ARP command */
-	unsigned RstDevRcv:7;         /*!< bits  4     When decode/receive a
-					Reset Device General Command */
-	unsigned GetUDIDRcv:7;        /*!< bits  3     After receive/reply to
-					Get UDID General command */
-	unsigned AssignAddrRcv:7;     /*!< bits  2     When receive an Assign
-					Address command */
-	unsigned GetUDIDDirectRcv:7;  /*!< bits  1     After receive/reply
-					Get UDID Directed Command */
-	unsigned ResetDevDirect:7;    /*!< bits  0     When slave receives
-					areset device directed command */
-#else
-	unsigned ResetDevDirect:7;    /*!< bits  0     When slave receives
-					areset device directed command */
-	unsigned GetUDIDDirectRcv:7;  /*!< bits  1     After receive/reply
-					Get UDID Directed Command */
-	unsigned AssignAddrRcv:7;     /*!< bits  2     When receive an
-					Assign Address command */
-	unsigned GetUDIDRcv:7;        /*!< bits  3     After receive/reply
-					to Get UDID General command */
-	unsigned RstDevRcv:7;         /*!< bits  4     When decode/receive
-					a Reset Device General Command */
-	unsigned PrepARPRcv:7;        /*!< bits  5     When decode/receive
-					a Prep to ARP command */
-	unsigned SMBAlertResp:7;      /*!< bits  6     After receive/reply
-					to Alert Response message */
-	unsigned:25;                  /*!< bits 31:7  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_mst_arp_int_enable
- *  @brief   I2C Master ARP Interrupt Enable register (X7)
- */
-struct ai2c_reg_i2c_x7_mst_arp_int_enable {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:30;         /*!< bits 31:2  reserved */
-	unsigned armmstie:2;         /*!< bits  1:0  Bit enable individual
-					interrupt sources for ARP Master
-					Int Stat reg */
-#else
-	unsigned armmstie:2;         /*!< bits  1:0  Bit enable individual
-					interrupt sources for ARP Master
-					Int Stat reg */
-	unsigned:30;         /*!< bits 31:2  reserved */
-#endif
-};
-
-/*! @struct  ai2c_reg_i2c_x7_mst_arp_int_status
- *  @brief   I2C Master ARP Interrupt Status register (X7)
- */
-struct ai2c_reg_i2c_x7_mst_arp_int_status {
-
-#ifdef AI2C_BIG_ENDIAN
-	unsigned:30;         /*!< bits 31:2  reserved */
-	unsigned PECRdErr:1;         /*!< bits  1     Master Read msg with PECr
-					enabled has detected a PEC error with
-					Slave response */
-	unsigned SMBAlert:1;         /*!< bits  0     State of SMB_Alert#
-					signal on the SM Bus */
-#else
-	unsigned SMBAlert:1;         /*!< bits  0     State of SMB_Alert#r
-					 signal on the SM Bus */
-	unsigned PECRdErr:1;         /*!< bits  1     Master Read msg with
-					PEC enabled has detected a PEC error
-					with Slave response */
-	unsigned:30;         /*!< bits 31:2  reserved */
-#endif
-};
-
-#endif /* _AI2C_I2C_REGS_H_ */
diff --git a/drivers/i2c/busses/ai2c/regs/ai2c_regions.h b/drivers/i2c/busses/ai2c/regs/ai2c_regions.h
deleted file mode 100644
index 97e41e2..0000000
--- a/drivers/i2c/busses/ai2c/regs/ai2c_regions.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- *  Copyright (C) 2013 LSI Corporation
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*! @file      ai2c_regions.h
-    @brief     Defines to access induvidual regions within the NCP.
-*/
-
-#ifndef __AI2C_REGIONS_H__
-#define __AI2C_REGIONS_H__
-
-
-/*!
- * Node definitions for all nodes/engines in NCP/X1.
- * This needs to be kept in-sync with HW.
- */
-
-#define AI2C_NODE_X1_ECID             0x0A
-
-
-/* ---------------------------------- */
-/* --- AI2C Region ID Support     --- */
-/* ---------------------------------- */
-
-
-#define AI2C_NODE_MASK             (0xFFFF)
-#define AI2C_TARGET_MASK           (0xFFFF)
-
-#define AI2C_NODE_ID(regionId)    (((regionId) >> 16) & AI2C_NODE_MASK)
-#define AI2C_TARGET_ID(regionId)  ((regionId) & AI2C_TARGET_MASK)
-
-
-#define AI2C_REGION_ID(node, target) \
-	((((node) & AI2C_NODE_MASK) << 16) | ((target) & AI2C_TARGET_MASK))
-
-
-/* ---------------------------------- */
-/* --- AI2C Region ID Definitions --- */
-/* ---------------------------------- */
-
-/* Temporary dummy regions */
-#define AI2C_REGION_NULL       (AI2C_REGION_ID(0xffff, 0xffff))
-
-
-#define AI2C_REGION_NCA_CFG    (AI2C_REGION_ID(0x16,  0xff))
-
-
-#define AI2C_REGION_GPIO_0     (AI2C_REGION_ID(0x140,  0)) /* 320.0 */
-#define AI2C_REGION_I2C_0      (AI2C_REGION_ID(0x143,  0)) /* 323.0 */
-#define AI2C_REGION_TIMER      (AI2C_REGION_ID(0x146,  0)) /* 326.0 */
-#define AI2C_REGION_GPREG      (AI2C_REGION_ID(0x149,  0)) /* 329.0 */
-#define AI2C_REGION_I2C_1      (AI2C_REGION_ID(0x14c,  0)) /* 332.0 */
-#define AI2C_REGION_I2C_2      (AI2C_REGION_ID(0x152,  0)) /* 338.0 */
-
-#define AI2C_REGION_SMB        (AI2C_REGION_ID(0x15c,  0)) /* 348.0 */
-#define AI2C_REGION_I2C_3      AI2C_REGION_SMB
-
-#define AI2C_REGION_CLK_CTRL   (AI2C_REGION_ID(0x18d,  0)) /* 397.0 */
-
-#define AI2C_REGION_RESET_CTRL (AI2C_REGION_ID(0x18e,  0)) /* 398.0 */
-
-
-#endif /* __AI2C_REGIONS_H__ */
-- 
1.8.3.4




More information about the linux-yocto mailing list