From e6cef3c547e8f73cbf2d3c7ba639cb7d9934c475 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 18 Jul 2022 11:25:27 +0200 Subject: Add Hercules RM46L8 Launchpad support (Cortex R4F) --- include/arch/rm46l8lp/halcogen/reg_het.h | 203 +++++++++++++++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 include/arch/rm46l8lp/halcogen/reg_het.h (limited to 'include/arch/rm46l8lp/halcogen/reg_het.h') diff --git a/include/arch/rm46l8lp/halcogen/reg_het.h b/include/arch/rm46l8lp/halcogen/reg_het.h new file mode 100644 index 0000000..f2d70eb --- /dev/null +++ b/include/arch/rm46l8lp/halcogen/reg_het.h @@ -0,0 +1,203 @@ +/** @file reg_het.h +* @brief HET Register Layer Header File +* @date 11-Dec-2018 +* @version 04.07.01 +* +* This file contains: +* - Definitions +* - Types +* - Interface Prototypes +* . +* which are relevant for the HET driver. +*/ + +/* +* Copyright (C) 2009-2018 Texas Instruments Incorporated - www.ti.com +* +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* +* Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the +* distribution. +* +* Neither the name of Texas Instruments Incorporated nor the names of +* its contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + + +#ifndef __REG_HET_H__ +#define __REG_HET_H__ + +#include "sys_common.h" +#include "reg_gio.h" + +/* USER CODE BEGIN (0) */ +/* USER CODE END */ + +/* Het Register Frame Definition */ +/** @struct hetBase +* @brief HET Base Register Definition +* +* This structure is used to access the HET module registers. +*/ +/** @typedef hetBASE_t +* @brief HET Register Frame Type Definition +* +* This type is used to access the HET Registers. +*/ + +typedef volatile struct hetBase +{ + uint32 GCR; /**< 0x0000: Global control register */ + uint32 PFR; /**< 0x0004: Prescale factor register */ + uint32 ADDR; /**< 0x0008: Current address register */ + uint32 OFF1; /**< 0x000C: Interrupt offset register 1 */ + uint32 OFF2; /**< 0x0010: Interrupt offset register 2 */ + uint32 INTENAS; /**< 0x0014: Interrupt enable set register */ + uint32 INTENAC; /**< 0x0018: Interrupt enable clear register */ + uint32 EXC1; /**< 0x001C: Exception control register 1 */ + uint32 EXC2; /**< 0x0020: Exception control register 2 */ + uint32 PRY; /**< 0x0024: Interrupt priority register */ + uint32 FLG; /**< 0x0028: Interrupt flag register */ + uint32 AND; /**< 0x002C: AND share control register */ + uint32 rsvd1; /**< 0x0030: Reserved */ + uint32 HRSH; /**< 0x0034: High resolution share register */ + uint32 XOR; /**< 0x0038: XOR share register */ + uint32 REQENS; /**< 0x003C: Request enable set register */ + uint32 REQENC; /**< 0x0040: Request enable clear register */ + uint32 REQDS; /**< 0x0044: Request destination select register */ + uint32 rsvd2; /**< 0x0048: Reserved */ + uint32 DIR; /**< 0x004C: Direction register */ + uint32 DIN; /**< 0x0050: Data input register */ + uint32 DOUT; /**< 0x0054: Data output register */ + uint32 DSET; /**< 0x0058: Data output set register */ + uint32 DCLR; /**< 0x005C: Data output clear register */ + uint32 PDR; /**< 0x0060: Open drain register */ + uint32 PULDIS; /**< 0x0064: Pull disable register */ + uint32 PSL; /**< 0x0068: Pull select register */ + uint32 rsvd3; /**< 0x006C: Reserved */ + uint32 rsvd4; /**< 0x0070: Reserved */ + uint32 PCR; /**< 0x0074: Parity control register */ + uint32 PAR; /**< 0x0078: Parity address register */ + uint32 PPR; /**< 0x007C: Parity pin select register */ + uint32 SFPRLD; /**< 0x0080: Suppression filter preload register */ + uint32 SFENA; /**< 0x0084: Suppression filter enable register */ + uint32 rsvd5; /**< 0x0088: Reserved */ + uint32 LBPSEL; /**< 0x008C: Loop back pair select register */ + uint32 LBPDIR; /**< 0x0090: Loop back pair direction register */ + uint32 PINDIS; /**< 0x0094: Pin disable register */ +} hetBASE_t; + + +/** @struct hetInstructionBase +* @brief HET Instruction Definition +* +* This structure is used to access the HET RAM. +*/ +/** @typedef hetINSTRUCTION_t +* @brief HET Instruction Type Definition +* +* This type is used to access a HET Instruction. +*/ +typedef volatile struct hetInstructionBase +{ + uint32 Program; + uint32 Control; + uint32 Data; + uint32 rsvd1; +} hetINSTRUCTION_t; + + +/** @struct hetRamBase +* @brief HET RAM Definition +* +* This structure is used to access the HET RAM. +*/ +/** @typedef hetRAMBASE_t +* @brief HET RAM Type Definition +* +* This type is used to access the HET RAM. +*/ +typedef volatile struct het1RamBase +{ + hetINSTRUCTION_t Instruction[160U]; +} hetRAMBASE_t; + + +/** @def hetREG1 +* @brief HET Register Frame Pointer +* +* This pointer is used by the HET driver to access the het module registers. +*/ +#define hetREG1 ((hetBASE_t *)0xFFF7B800U) + + +/** @def hetPORT1 +* @brief HET GIO Port Register Pointer +* +* Pointer used by the GIO driver to access I/O PORT of HET1 +* (use the GIO drivers to access the port pins). +*/ +#define hetPORT1 ((gioPORT_t *)0xFFF7B84CU) + +/** @def hetRAM1 +* @brief NHET1 RAM Pointer +* +* This pointer is used by the HET driver to access the NHET1 memory. +*/ +#define hetRAM1 ((hetRAMBASE_t *)0xFF460000U) + +#define NHET1RAMPARLOC (*(volatile uint32 *)0xFF462000U) +#define NHET1RAMLOC (*(volatile uint32 *)0xFF460000U) + +/** @def hetREG2 +* @brief HET2 Register Frame Pointer +* +* This pointer is used by the HET driver to access the het module registers. +*/ +#define hetREG2 ((hetBASE_t *)0xFFF7B900U) + +/** @def hetPORT2 +* @brief HET2 GIO Port Register Pointer +* +* Pointer used by the GIO driver to access I/O PORT of HET2 +* (use the GIO drivers to access the port pins). +*/ +#define hetPORT2 ((gioPORT_t *)0xFFF7B94CU) + +/** @def hetRAM2 +* @brief NHET1 RAM Pointer +* +* This pointer is used by the HET driver to access the NHET2 memory. +*/ +#define hetRAM2 ((hetRAMBASE_t *)0xFF440000U) + +#define NHET2RAMPARLOC (*(volatile uint32 *)0xFF442000U) +#define NHET2RAMLOC (*(volatile uint32 *)0xFF440000U) + +/* USER CODE BEGIN (1) */ +/* USER CODE END */ + + +#endif -- cgit v1.2.3