Files
xiuos/Ubiquitous/XiZi_AIoT/services/boards/imx6q-sabrelite/include/registers/regsvpu.h
T
2023-04-07 16:23:09 +08:00

494 lines
17 KiB
C

/*
* Copyright (c) 2012, Freescale Semiconductor, Inc.
* All rights reserved.
*
* THIS SOFTWARE IS PROVIDED BY FREESCALE "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 FREESCALE 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.
*/
/*
* WARNING! DO NOT EDIT THIS FILE DIRECTLY!
*
* This file was generated automatically and any changes may be lost.
*/
#ifndef __HW_VPU_REGISTERS_H__
#define __HW_VPU_REGISTERS_H__
#include "regs.h"
/*
* i.MX6DQ VPU
*
* vpu
*
* Registers defined in this header file:
* - HW_VPU_CODERUN - BIT Processor run start
* - HW_VPU_CODEDOWN - BIT Boot Code Download Data register
* - HW_VPU_HOSTINTREQ - Host Interrupt Request to BIT
* - HW_VPU_BITINTCLEAR - BIT Interrupt Clear
* - HW_VPU_BITINTSTS - BIT Interrupt Status
* - HW_VPU_BITCURPC - BIT Current PC
* - HW_VPU_BITCODECBUSY - BIT CODEC Busy
*
* - hw_vpu_t - Struct containing all module registers.
*/
//! @name Module base addresses
//@{
#ifndef REGS_VPU_BASE
#define HW_VPU_INSTANCE_COUNT (1) //!< Number of instances of the VPU module.
#define REGS_VPU_BASE (0x02040000) //!< Base address for VPU.
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_VPU_CODERUN - BIT Processor run start
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_VPU_CODERUN - BIT Processor run start (WO)
*
* Reset value: 0x00000000
*
* See the figure below for illustration of valid bits in VPU Code Run Register and the table below
* for description of the bit fields in the register.
*/
typedef union _hw_vpu_coderun
{
reg32_t U;
struct _hw_vpu_coderun_bitfields
{
unsigned CODERUN : 1; //!< [0] VPU_CodeRun.
unsigned RESERVED0 : 31; //!< [31:1] Reserved
} B;
} hw_vpu_coderun_t;
#endif
/*!
* @name Constants and macros for entire VPU_CODERUN register
*/
//@{
#define HW_VPU_CODERUN_ADDR (REGS_VPU_BASE + 0x0)
#ifndef __LANGUAGE_ASM__
#define HW_VPU_CODERUN (*(volatile hw_vpu_coderun_t *) HW_VPU_CODERUN_ADDR)
#define HW_VPU_CODERUN_WR(v) (HW_VPU_CODERUN.U = (v))
#endif
//@}
/*
* constants & macros for individual VPU_CODERUN bitfields
*/
/*! @name Register VPU_CODERUN, field CODERUN[0] (WO)
*
* VPU_CodeRun. BIT processor run start bit.
*
* Values:
* - 0 - BIT Processor stop execution.
* - 1 - BIT Processor start execution.
*/
//@{
#define BP_VPU_CODERUN_CODERUN (0) //!< Bit position for VPU_CODERUN_CODERUN.
#define BM_VPU_CODERUN_CODERUN (0x00000001) //!< Bit mask for VPU_CODERUN_CODERUN.
//! @brief Get value of VPU_CODERUN_CODERUN from a register value.
#define BG_VPU_CODERUN_CODERUN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_VPU_CODERUN_CODERUN) >> BP_VPU_CODERUN_CODERUN)
//! @brief Format value for bitfield VPU_CODERUN_CODERUN.
#define BF_VPU_CODERUN_CODERUN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_VPU_CODERUN_CODERUN) & BM_VPU_CODERUN_CODERUN)
//@}
//-------------------------------------------------------------------------------------------
// HW_VPU_CODEDOWN - BIT Boot Code Download Data register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_VPU_CODEDOWN - BIT Boot Code Download Data register (WO)
*
* Reset value: 0x00000000
*
* See the figure below for illustration of valid bits in VPU BIT Boot Code Download Data Register
* and the following table for description of the bit fields in the register.
*/
typedef union _hw_vpu_codedown
{
reg32_t U;
struct _hw_vpu_codedown_bitfields
{
unsigned CODEDATA : 16; //!< [15:0] CodeData[15:0]
unsigned CODEADDR : 13; //!< [28:16] CodeAddr[12:0]
unsigned RESERVED0 : 3; //!< [31:29] Reserved
} B;
} hw_vpu_codedown_t;
#endif
/*!
* @name Constants and macros for entire VPU_CODEDOWN register
*/
//@{
#define HW_VPU_CODEDOWN_ADDR (REGS_VPU_BASE + 0x4)
#ifndef __LANGUAGE_ASM__
#define HW_VPU_CODEDOWN (*(volatile hw_vpu_codedown_t *) HW_VPU_CODEDOWN_ADDR)
#define HW_VPU_CODEDOWN_WR(v) (HW_VPU_CODEDOWN.U = (v))
#endif
//@}
/*
* constants & macros for individual VPU_CODEDOWN bitfields
*/
/*! @name Register VPU_CODEDOWN, field CODEDATA[15:0] (WO)
*
* CodeData[15:0] Download data of VPU BIT boot code.
*/
//@{
#define BP_VPU_CODEDOWN_CODEDATA (0) //!< Bit position for VPU_CODEDOWN_CODEDATA.
#define BM_VPU_CODEDOWN_CODEDATA (0x0000ffff) //!< Bit mask for VPU_CODEDOWN_CODEDATA.
//! @brief Get value of VPU_CODEDOWN_CODEDATA from a register value.
#define BG_VPU_CODEDOWN_CODEDATA(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_VPU_CODEDOWN_CODEDATA) >> BP_VPU_CODEDOWN_CODEDATA)
//! @brief Format value for bitfield VPU_CODEDOWN_CODEDATA.
#define BF_VPU_CODEDOWN_CODEDATA(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_VPU_CODEDOWN_CODEDATA) & BM_VPU_CODEDOWN_CODEDATA)
//@}
/*! @name Register VPU_CODEDOWN, field CODEADDR[28:16] (WO)
*
* CodeAddr[12:0] Download address of VPU BIT boot code, which is VPU internal address of BIT
* processor.
*/
//@{
#define BP_VPU_CODEDOWN_CODEADDR (16) //!< Bit position for VPU_CODEDOWN_CODEADDR.
#define BM_VPU_CODEDOWN_CODEADDR (0x1fff0000) //!< Bit mask for VPU_CODEDOWN_CODEADDR.
//! @brief Get value of VPU_CODEDOWN_CODEADDR from a register value.
#define BG_VPU_CODEDOWN_CODEADDR(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_VPU_CODEDOWN_CODEADDR) >> BP_VPU_CODEDOWN_CODEADDR)
//! @brief Format value for bitfield VPU_CODEDOWN_CODEADDR.
#define BF_VPU_CODEDOWN_CODEADDR(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_VPU_CODEDOWN_CODEADDR) & BM_VPU_CODEDOWN_CODEADDR)
//@}
//-------------------------------------------------------------------------------------------
// HW_VPU_HOSTINTREQ - Host Interrupt Request to BIT
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_VPU_HOSTINTREQ - Host Interrupt Request to BIT (WO)
*
* Reset value: 0x00000000
*
* See the figure below for illustration of valid bits in VPU Host Interrupt Request Register and
* the following table for description of the bit fields in the register.
*/
typedef union _hw_vpu_hostintreq
{
reg32_t U;
struct _hw_vpu_hostintreq_bitfields
{
unsigned INTREQ : 1; //!< [0] IntReq.
unsigned RESERVED0 : 31; //!< [31:1] Reserved
} B;
} hw_vpu_hostintreq_t;
#endif
/*!
* @name Constants and macros for entire VPU_HOSTINTREQ register
*/
//@{
#define HW_VPU_HOSTINTREQ_ADDR (REGS_VPU_BASE + 0x8)
#ifndef __LANGUAGE_ASM__
#define HW_VPU_HOSTINTREQ (*(volatile hw_vpu_hostintreq_t *) HW_VPU_HOSTINTREQ_ADDR)
#define HW_VPU_HOSTINTREQ_WR(v) (HW_VPU_HOSTINTREQ.U = (v))
#endif
//@}
/*
* constants & macros for individual VPU_HOSTINTREQ bitfields
*/
/*! @name Register VPU_HOSTINTREQ, field INTREQ[0] (WO)
*
* IntReq. The host interrupt request bit.
*
* Values:
* - 0 - No host interrupt is requested.
* - 1 - The host processor request interrupt to the BIT processor.
*/
//@{
#define BP_VPU_HOSTINTREQ_INTREQ (0) //!< Bit position for VPU_HOSTINTREQ_INTREQ.
#define BM_VPU_HOSTINTREQ_INTREQ (0x00000001) //!< Bit mask for VPU_HOSTINTREQ_INTREQ.
//! @brief Get value of VPU_HOSTINTREQ_INTREQ from a register value.
#define BG_VPU_HOSTINTREQ_INTREQ(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_VPU_HOSTINTREQ_INTREQ) >> BP_VPU_HOSTINTREQ_INTREQ)
//! @brief Format value for bitfield VPU_HOSTINTREQ_INTREQ.
#define BF_VPU_HOSTINTREQ_INTREQ(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_VPU_HOSTINTREQ_INTREQ) & BM_VPU_HOSTINTREQ_INTREQ)
//@}
//-------------------------------------------------------------------------------------------
// HW_VPU_BITINTCLEAR - BIT Interrupt Clear
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_VPU_BITINTCLEAR - BIT Interrupt Clear (WO)
*
* Reset value: 0x00000000
*
* See the figure below for illustration of valid bits in VPU BIT Interrupt Clear Register and the
* following table for description of the bit fields in the register.
*/
typedef union _hw_vpu_bitintclear
{
reg32_t U;
struct _hw_vpu_bitintclear_bitfields
{
unsigned INTCLEAR : 1; //!< [0] IntClear.
unsigned RESERVED0 : 31; //!< [31:1] Reserved
} B;
} hw_vpu_bitintclear_t;
#endif
/*!
* @name Constants and macros for entire VPU_BITINTCLEAR register
*/
//@{
#define HW_VPU_BITINTCLEAR_ADDR (REGS_VPU_BASE + 0xc)
#ifndef __LANGUAGE_ASM__
#define HW_VPU_BITINTCLEAR (*(volatile hw_vpu_bitintclear_t *) HW_VPU_BITINTCLEAR_ADDR)
#define HW_VPU_BITINTCLEAR_WR(v) (HW_VPU_BITINTCLEAR.U = (v))
#endif
//@}
/*
* constants & macros for individual VPU_BITINTCLEAR bitfields
*/
/*! @name Register VPU_BITINTCLEAR, field INTCLEAR[0] (WO)
*
* IntClear. BIT interrupt clear bit.
*
* Values:
* - 0 - No operation is issued.
* - 1 - Clear the BIT interrupt to the host.
*/
//@{
#define BP_VPU_BITINTCLEAR_INTCLEAR (0) //!< Bit position for VPU_BITINTCLEAR_INTCLEAR.
#define BM_VPU_BITINTCLEAR_INTCLEAR (0x00000001) //!< Bit mask for VPU_BITINTCLEAR_INTCLEAR.
//! @brief Get value of VPU_BITINTCLEAR_INTCLEAR from a register value.
#define BG_VPU_BITINTCLEAR_INTCLEAR(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_VPU_BITINTCLEAR_INTCLEAR) >> BP_VPU_BITINTCLEAR_INTCLEAR)
//! @brief Format value for bitfield VPU_BITINTCLEAR_INTCLEAR.
#define BF_VPU_BITINTCLEAR_INTCLEAR(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_VPU_BITINTCLEAR_INTCLEAR) & BM_VPU_BITINTCLEAR_INTCLEAR)
//@}
//-------------------------------------------------------------------------------------------
// HW_VPU_BITINTSTS - BIT Interrupt Status
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_VPU_BITINTSTS - BIT Interrupt Status (RO)
*
* Reset value: 0x00000000
*
* See the figure below for illustration of valid bits in VPU BIT Interrupt Status Register and the
* following table for description of the bit fields in the register.
*/
typedef union _hw_vpu_bitintsts
{
reg32_t U;
struct _hw_vpu_bitintsts_bitfields
{
unsigned INTSTS : 1; //!< [0] IntSts.
unsigned RESERVED0 : 31; //!< [31:1] Reserved
} B;
} hw_vpu_bitintsts_t;
#endif
/*!
* @name Constants and macros for entire VPU_BITINTSTS register
*/
//@{
#define HW_VPU_BITINTSTS_ADDR (REGS_VPU_BASE + 0x10)
#ifndef __LANGUAGE_ASM__
#define HW_VPU_BITINTSTS (*(volatile hw_vpu_bitintsts_t *) HW_VPU_BITINTSTS_ADDR)
#define HW_VPU_BITINTSTS_RD() (HW_VPU_BITINTSTS.U)
#endif
//@}
/*
* constants & macros for individual VPU_BITINTSTS bitfields
*/
/*! @name Register VPU_BITINTSTS, field INTSTS[0] (RO)
*
* IntSts. BIT interrupt status bit.
*
* Values:
* - 0 - No BIT interrupt is asserted.
* - 1 - The BIT interrupt is asserted to the host. It is cleared when the host processor write "1" to
* VPU_BitIntClear register.
*/
//@{
#define BP_VPU_BITINTSTS_INTSTS (0) //!< Bit position for VPU_BITINTSTS_INTSTS.
#define BM_VPU_BITINTSTS_INTSTS (0x00000001) //!< Bit mask for VPU_BITINTSTS_INTSTS.
//! @brief Get value of VPU_BITINTSTS_INTSTS from a register value.
#define BG_VPU_BITINTSTS_INTSTS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_VPU_BITINTSTS_INTSTS) >> BP_VPU_BITINTSTS_INTSTS)
//@}
//-------------------------------------------------------------------------------------------
// HW_VPU_BITCURPC - BIT Current PC
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_VPU_BITCURPC - BIT Current PC (RO)
*
* Reset value: 0x00000000
*
* See the figure below for illustration of valid bits in VPU BIT Current PC Register and the
* following table for description of the bit fields in the register.
*/
typedef union _hw_vpu_bitcurpc
{
reg32_t U;
struct _hw_vpu_bitcurpc_bitfields
{
unsigned CURPC : 14; //!< [13:0] CurPc[13:0].
unsigned RESERVED0 : 18; //!< [31:14] Reserved
} B;
} hw_vpu_bitcurpc_t;
#endif
/*!
* @name Constants and macros for entire VPU_BITCURPC register
*/
//@{
#define HW_VPU_BITCURPC_ADDR (REGS_VPU_BASE + 0x18)
#ifndef __LANGUAGE_ASM__
#define HW_VPU_BITCURPC (*(volatile hw_vpu_bitcurpc_t *) HW_VPU_BITCURPC_ADDR)
#define HW_VPU_BITCURPC_RD() (HW_VPU_BITCURPC.U)
#endif
//@}
/*
* constants & macros for individual VPU_BITCURPC bitfields
*/
/*! @name Register VPU_BITCURPC, field CURPC[13:0] (RO)
*
* CurPc[13:0]. BIT current PC value. Returns the current program counter of BIT processor by
* reading this register.
*/
//@{
#define BP_VPU_BITCURPC_CURPC (0) //!< Bit position for VPU_BITCURPC_CURPC.
#define BM_VPU_BITCURPC_CURPC (0x00003fff) //!< Bit mask for VPU_BITCURPC_CURPC.
//! @brief Get value of VPU_BITCURPC_CURPC from a register value.
#define BG_VPU_BITCURPC_CURPC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_VPU_BITCURPC_CURPC) >> BP_VPU_BITCURPC_CURPC)
//@}
//-------------------------------------------------------------------------------------------
// HW_VPU_BITCODECBUSY - BIT CODEC Busy
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_VPU_BITCODECBUSY - BIT CODEC Busy (RO)
*
* Reset value: 0x00000000
*
* See the figure below for illustration of valid bits in VPU BIT Codec Busy Register and the
* following table for description of the bit fields in the register.
*/
typedef union _hw_vpu_bitcodecbusy
{
reg32_t U;
struct _hw_vpu_bitcodecbusy_bitfields
{
unsigned CODECBUSY : 1; //!< [0] Codec busy flag for Bit processor.BIT processor write "1"to this register when the processor is running."0"means processor is waiting for a command.This value is connected to the o_vpu_idle.
unsigned RESERVED0 : 31; //!< [31:1] Reserved
} B;
} hw_vpu_bitcodecbusy_t;
#endif
/*!
* @name Constants and macros for entire VPU_BITCODECBUSY register
*/
//@{
#define HW_VPU_BITCODECBUSY_ADDR (REGS_VPU_BASE + 0x20)
#ifndef __LANGUAGE_ASM__
#define HW_VPU_BITCODECBUSY (*(volatile hw_vpu_bitcodecbusy_t *) HW_VPU_BITCODECBUSY_ADDR)
#define HW_VPU_BITCODECBUSY_RD() (HW_VPU_BITCODECBUSY.U)
#endif
//@}
/*
* constants & macros for individual VPU_BITCODECBUSY bitfields
*/
/*! @name Register VPU_BITCODECBUSY, field CODECBUSY[0] (RO)
*
* Codec busy flag for Bit processor.BIT processor write "1"to this register when the processor is
* running."0"means processor is waiting for a command.This value is connected to the o_vpu_idle.
*/
//@{
#define BP_VPU_BITCODECBUSY_CODECBUSY (0) //!< Bit position for VPU_BITCODECBUSY_CODECBUSY.
#define BM_VPU_BITCODECBUSY_CODECBUSY (0x00000001) //!< Bit mask for VPU_BITCODECBUSY_CODECBUSY.
//! @brief Get value of VPU_BITCODECBUSY_CODECBUSY from a register value.
#define BG_VPU_BITCODECBUSY_CODECBUSY(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_VPU_BITCODECBUSY_CODECBUSY) >> BP_VPU_BITCODECBUSY_CODECBUSY)
//@}
//-------------------------------------------------------------------------------------------
// hw_vpu_t - module struct
//-------------------------------------------------------------------------------------------
/*!
* @brief All VPU module registers.
*/
#ifndef __LANGUAGE_ASM__
#pragma pack(1)
typedef struct _hw_vpu
{
volatile hw_vpu_coderun_t CODERUN; //!< BIT Processor run start
volatile hw_vpu_codedown_t CODEDOWN; //!< BIT Boot Code Download Data register
volatile hw_vpu_hostintreq_t HOSTINTREQ; //!< Host Interrupt Request to BIT
volatile hw_vpu_bitintclear_t BITINTCLEAR; //!< BIT Interrupt Clear
volatile hw_vpu_bitintsts_t BITINTSTS; //!< BIT Interrupt Status
reg32_t _reserved0;
volatile hw_vpu_bitcurpc_t BITCURPC; //!< BIT Current PC
reg32_t _reserved1;
volatile hw_vpu_bitcodecbusy_t BITCODECBUSY; //!< BIT CODEC Busy
} hw_vpu_t;
#pragma pack()
//! @brief Macro to access all VPU registers.
//! @return Reference (not a pointer) to the registers struct. To get a pointer to the struct,
//! use the '&' operator, like <code>&HW_VPU</code>.
#define HW_VPU (*(hw_vpu_t *) REGS_VPU_BASE)
#endif
#endif // __HW_VPU_REGISTERS_H__
// v18/121106/1.2.2
// EOF