1 /***************************************************************************//** 2 * \file cyip_hsiom.h 3 * 4 * \brief 5 * HSIOM IP definitions 6 * 7 ******************************************************************************** 8 * \copyright 9 * (c) (2016-2024), Cypress Semiconductor Corporation (an Infineon company) or 10 * an affiliate of Cypress Semiconductor Corporation. 11 * 12 * SPDX-License-Identifier: Apache-2.0 13 * 14 * Licensed under the Apache License, Version 2.0 (the "License"); 15 * you may not use this file except in compliance with the License. 16 * You may obtain a copy of the License at 17 * 18 * http://www.apache.org/licenses/LICENSE-2.0 19 * 20 * Unless required by applicable law or agreed to in writing, software 21 * distributed under the License is distributed on an "AS IS" BASIS, 22 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 23 * See the License for the specific language governing permissions and 24 * limitations under the License. 25 *******************************************************************************/ 26 27 #ifndef _CYIP_HSIOM_H_ 28 #define _CYIP_HSIOM_H_ 29 30 #include "cyip_headers.h" 31 32 /******************************************************************************* 33 * HSIOM 34 *******************************************************************************/ 35 36 #define HSIOM_PRT_SECTION_SIZE 0x00000010UL 37 #define HSIOM_SECURE_PRT_SECTION_SIZE 0x00000010UL 38 #define HSIOM_SECTION_SIZE 0x00004000UL 39 40 /** 41 * \brief HSIOM port registers (HSIOM_PRT) 42 */ 43 typedef struct { 44 __IOM uint32_t PORT_SEL0; /*!< 0x00000000 Port selection 0 */ 45 __IOM uint32_t PORT_SEL1; /*!< 0x00000004 Port selection 1 */ 46 __IM uint32_t RESERVED[2]; 47 } HSIOM_PRT_Type; /*!< Size = 16 (0x10) */ 48 49 /** 50 * \brief HSIOM secure attribute port registers (HSIOM_SECURE_PRT) 51 */ 52 typedef struct { 53 __IOM uint32_t NONSECURE_MASK; /*!< 0x00000000 Non-Secure Mask */ 54 __IM uint32_t RESERVED[3]; 55 } HSIOM_SECURE_PRT_Type; /*!< Size = 16 (0x10) */ 56 57 /** 58 * \brief IO Matrix (IOM) (HSIOM) 59 */ 60 typedef struct { 61 HSIOM_PRT_Type PRT[128]; /*!< 0x00000000 HSIOM port registers */ 62 __IM uint32_t RESERVED[512]; 63 HSIOM_SECURE_PRT_Type SECURE_PRT[128]; /*!< 0x00001000 HSIOM secure attribute port registers */ 64 __IM uint32_t RESERVED1[512]; 65 __IOM uint32_t AMUX_SPLIT_CTL[64]; /*!< 0x00002000 AMUX splitter cell control */ 66 __IM uint32_t RESERVED2[64]; 67 __IOM uint32_t MONITOR_CTL_0; /*!< 0x00002200 Power/Ground Monitor cell control 0 */ 68 __IOM uint32_t MONITOR_CTL_1; /*!< 0x00002204 Power/Ground Monitor cell control 1 */ 69 __IOM uint32_t MONITOR_CTL_2; /*!< 0x00002208 Power/Ground Monitor cell control 2 */ 70 __IOM uint32_t MONITOR_CTL_3; /*!< 0x0000220C Power/Ground Monitor cell control 3 */ 71 } HSIOM_Type; /*!< Size = 8720 (0x2210) */ 72 73 74 /* HSIOM_PRT.PORT_SEL0 */ 75 #define HSIOM_PRT_PORT_SEL0_IO0_SEL_Pos 0UL 76 #define HSIOM_PRT_PORT_SEL0_IO0_SEL_Msk 0x1FUL 77 #define HSIOM_PRT_PORT_SEL0_IO1_SEL_Pos 8UL 78 #define HSIOM_PRT_PORT_SEL0_IO1_SEL_Msk 0x1F00UL 79 #define HSIOM_PRT_PORT_SEL0_IO2_SEL_Pos 16UL 80 #define HSIOM_PRT_PORT_SEL0_IO2_SEL_Msk 0x1F0000UL 81 #define HSIOM_PRT_PORT_SEL0_IO3_SEL_Pos 24UL 82 #define HSIOM_PRT_PORT_SEL0_IO3_SEL_Msk 0x1F000000UL 83 /* HSIOM_PRT.PORT_SEL1 */ 84 #define HSIOM_PRT_PORT_SEL1_IO4_SEL_Pos 0UL 85 #define HSIOM_PRT_PORT_SEL1_IO4_SEL_Msk 0x1FUL 86 #define HSIOM_PRT_PORT_SEL1_IO5_SEL_Pos 8UL 87 #define HSIOM_PRT_PORT_SEL1_IO5_SEL_Msk 0x1F00UL 88 #define HSIOM_PRT_PORT_SEL1_IO6_SEL_Pos 16UL 89 #define HSIOM_PRT_PORT_SEL1_IO6_SEL_Msk 0x1F0000UL 90 #define HSIOM_PRT_PORT_SEL1_IO7_SEL_Pos 24UL 91 #define HSIOM_PRT_PORT_SEL1_IO7_SEL_Msk 0x1F000000UL 92 93 94 /* HSIOM_SECURE_PRT.NONSECURE_MASK */ 95 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE0_Pos 0UL 96 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE0_Msk 0x1UL 97 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE1_Pos 1UL 98 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE1_Msk 0x2UL 99 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE2_Pos 2UL 100 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE2_Msk 0x4UL 101 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE3_Pos 3UL 102 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE3_Msk 0x8UL 103 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE4_Pos 4UL 104 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE4_Msk 0x10UL 105 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE5_Pos 5UL 106 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE5_Msk 0x20UL 107 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE6_Pos 6UL 108 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE6_Msk 0x40UL 109 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE7_Pos 7UL 110 #define HSIOM_SECURE_PRT_NONSECURE_MASK_NONSECURE7_Msk 0x80UL 111 112 113 /* HSIOM.AMUX_SPLIT_CTL */ 114 #define HSIOM_AMUX_SPLIT_CTL_SWITCH_AA_SL_Pos 0UL 115 #define HSIOM_AMUX_SPLIT_CTL_SWITCH_AA_SL_Msk 0x1UL 116 #define HSIOM_AMUX_SPLIT_CTL_SWITCH_AA_SR_Pos 1UL 117 #define HSIOM_AMUX_SPLIT_CTL_SWITCH_AA_SR_Msk 0x2UL 118 #define HSIOM_AMUX_SPLIT_CTL_SWITCH_AA_S0_Pos 2UL 119 #define HSIOM_AMUX_SPLIT_CTL_SWITCH_AA_S0_Msk 0x4UL 120 #define HSIOM_AMUX_SPLIT_CTL_SWITCH_BB_SL_Pos 4UL 121 #define HSIOM_AMUX_SPLIT_CTL_SWITCH_BB_SL_Msk 0x10UL 122 #define HSIOM_AMUX_SPLIT_CTL_SWITCH_BB_SR_Pos 5UL 123 #define HSIOM_AMUX_SPLIT_CTL_SWITCH_BB_SR_Msk 0x20UL 124 #define HSIOM_AMUX_SPLIT_CTL_SWITCH_BB_S0_Pos 6UL 125 #define HSIOM_AMUX_SPLIT_CTL_SWITCH_BB_S0_Msk 0x40UL 126 /* HSIOM.MONITOR_CTL_0 */ 127 #define HSIOM_MONITOR_CTL_0_MONITOR_EN_Pos 0UL 128 #define HSIOM_MONITOR_CTL_0_MONITOR_EN_Msk 0xFFFFFFFFUL 129 /* HSIOM.MONITOR_CTL_1 */ 130 #define HSIOM_MONITOR_CTL_1_MONITOR_EN_Pos 0UL 131 #define HSIOM_MONITOR_CTL_1_MONITOR_EN_Msk 0xFFFFFFFFUL 132 /* HSIOM.MONITOR_CTL_2 */ 133 #define HSIOM_MONITOR_CTL_2_MONITOR_EN_Pos 0UL 134 #define HSIOM_MONITOR_CTL_2_MONITOR_EN_Msk 0xFFFFFFFFUL 135 /* HSIOM.MONITOR_CTL_3 */ 136 #define HSIOM_MONITOR_CTL_3_MONITOR_EN_Pos 0UL 137 #define HSIOM_MONITOR_CTL_3_MONITOR_EN_Msk 0xFFFFFFFFUL 138 139 140 #endif /* _CYIP_HSIOM_H_ */ 141 142 143 /* [] END OF FILE */ 144