/***************************************************************************//**
* \file cyip_smartio_v2.h
*
* \brief
* SMARTIO IP definitions
*
* \note
* Generator version: 1.3.0.1146
* Database revision: rev#1050929
*
********************************************************************************
* \copyright
* Copyright 2016-2018, Cypress Semiconductor Corporation. All rights reserved.
* SPDX-License-Identifier: Apache-2.0



*******************************************************************************/

#ifndef _CYIP_SMARTIO_V2_H_
#define _CYIP_SMARTIO_V2_H_

#include "cyip_headers.h"

/*******************************************************************************
*                                   SMARTIO
*******************************************************************************/

#define SMARTIO_PRT_V2_SECTION_SIZE             0x00000100UL
#define SMARTIO_V2_SECTION_SIZE                 0x00010000UL

/**
  * \brief Programmable IO port registers (SMARTIO_PRT)
  */
typedef struct {
  __IOM uint32_t CTL;                           /*!< 0x00000000 Control register */
   __IM uint32_t RESERVED[3];
  __IOM uint32_t SYNC_CTL;                      /*!< 0x00000010 Synchronization control register */
   __IM uint32_t RESERVED1[3];
  __IOM uint32_t LUT_SEL[8];                    /*!< 0x00000020 LUT component input selection */
  __IOM uint32_t LUT_CTL[8];                    /*!< 0x00000040 LUT component control register */
   __IM uint32_t RESERVED2[24];
  __IOM uint32_t DU_SEL;                        /*!< 0x000000C0 Data unit component input selection */
  __IOM uint32_t DU_CTL;                        /*!< 0x000000C4 Data unit component control register */
   __IM uint32_t RESERVED3[10];
  __IOM uint32_t DATA;                          /*!< 0x000000F0 Data register */
   __IM uint32_t RESERVED4[3];
} SMARTIO_PRT_V2_Type;                          /*!< Size = 256 (0x100) */

/**
  * \brief Programmable IO configuration (SMARTIO)
  */
typedef struct {
        SMARTIO_PRT_V2_Type PRT[128];           /*!< 0x00000000 Programmable IO port registers */
} SMARTIO_V2_Type;                              /*!< Size = 32768 (0x8000) */


/* SMARTIO_PRT.CTL */
#define SMARTIO_PRT_V2_CTL_BYPASS_Pos           0UL
#define SMARTIO_PRT_V2_CTL_BYPASS_Msk           0xFFUL
#define SMARTIO_PRT_V2_CTL_CLOCK_SRC_Pos        8UL
#define SMARTIO_PRT_V2_CTL_CLOCK_SRC_Msk        0x1F00UL
#define SMARTIO_PRT_V2_CTL_HLD_OVR_Pos          24UL
#define SMARTIO_PRT_V2_CTL_HLD_OVR_Msk          0x1000000UL
#define SMARTIO_PRT_V2_CTL_PIPELINE_EN_Pos      25UL
#define SMARTIO_PRT_V2_CTL_PIPELINE_EN_Msk      0x2000000UL
#define SMARTIO_PRT_V2_CTL_ENABLED_Pos          31UL
#define SMARTIO_PRT_V2_CTL_ENABLED_Msk          0x80000000UL
/* SMARTIO_PRT.SYNC_CTL */
#define SMARTIO_PRT_V2_SYNC_CTL_IO_SYNC_EN_Pos  0UL
#define SMARTIO_PRT_V2_SYNC_CTL_IO_SYNC_EN_Msk  0xFFUL
#define SMARTIO_PRT_V2_SYNC_CTL_CHIP_SYNC_EN_Pos 8UL
#define SMARTIO_PRT_V2_SYNC_CTL_CHIP_SYNC_EN_Msk 0xFF00UL
/* SMARTIO_PRT.LUT_SEL */
#define SMARTIO_PRT_V2_LUT_SEL_LUT_TR0_SEL_Pos  0UL
#define SMARTIO_PRT_V2_LUT_SEL_LUT_TR0_SEL_Msk  0xFUL
#define SMARTIO_PRT_V2_LUT_SEL_LUT_TR1_SEL_Pos  8UL
#define SMARTIO_PRT_V2_LUT_SEL_LUT_TR1_SEL_Msk  0xF00UL
#define SMARTIO_PRT_V2_LUT_SEL_LUT_TR2_SEL_Pos  16UL
#define SMARTIO_PRT_V2_LUT_SEL_LUT_TR2_SEL_Msk  0xF0000UL
/* SMARTIO_PRT.LUT_CTL */
#define SMARTIO_PRT_V2_LUT_CTL_LUT_Pos          0UL
#define SMARTIO_PRT_V2_LUT_CTL_LUT_Msk          0xFFUL
#define SMARTIO_PRT_V2_LUT_CTL_LUT_OPC_Pos      8UL
#define SMARTIO_PRT_V2_LUT_CTL_LUT_OPC_Msk      0x300UL
/* SMARTIO_PRT.DU_SEL */
#define SMARTIO_PRT_V2_DU_SEL_DU_TR0_SEL_Pos    0UL
#define SMARTIO_PRT_V2_DU_SEL_DU_TR0_SEL_Msk    0xFUL
#define SMARTIO_PRT_V2_DU_SEL_DU_TR1_SEL_Pos    8UL
#define SMARTIO_PRT_V2_DU_SEL_DU_TR1_SEL_Msk    0xF00UL
#define SMARTIO_PRT_V2_DU_SEL_DU_TR2_SEL_Pos    16UL
#define SMARTIO_PRT_V2_DU_SEL_DU_TR2_SEL_Msk    0xF0000UL
#define SMARTIO_PRT_V2_DU_SEL_DU_DATA0_SEL_Pos  24UL
#define SMARTIO_PRT_V2_DU_SEL_DU_DATA0_SEL_Msk  0x3000000UL
#define SMARTIO_PRT_V2_DU_SEL_DU_DATA1_SEL_Pos  28UL
#define SMARTIO_PRT_V2_DU_SEL_DU_DATA1_SEL_Msk  0x30000000UL
/* SMARTIO_PRT.DU_CTL */
#define SMARTIO_PRT_V2_DU_CTL_DU_SIZE_Pos       0UL
#define SMARTIO_PRT_V2_DU_CTL_DU_SIZE_Msk       0x7UL
#define SMARTIO_PRT_V2_DU_CTL_DU_OPC_Pos        8UL
#define SMARTIO_PRT_V2_DU_CTL_DU_OPC_Msk        0xF00UL
/* SMARTIO_PRT.DATA */
#define SMARTIO_PRT_V2_DATA_DATA_Pos            0UL
#define SMARTIO_PRT_V2_DATA_DATA_Msk            0xFFUL


#endif /* _CYIP_SMARTIO_V2_H_ */


/* [] END OF FILE */
