Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:39

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /**
0004  * @file
0005  *
0006  * @ingroup RTEMSBSPsARMTMS570
0007  *
0008  * @brief This header file provides PMM interfaces.
0009  */
0010 
0011 /* The header file is generated by make_header.py from PMM.json */
0012 /* Current script's version can be found at: */
0013 /* https://github.com/AoLaD/rtems-tms570-utils/tree/headers/headers/python */
0014 
0015 /*
0016  * Copyright (c) 2014-2015, Premysl Houdek <kom541000@gmail.com>
0017  *
0018  * Czech Technical University in Prague
0019  * Zikova 1903/4
0020  * 166 36 Praha 6
0021  * Czech Republic
0022  *
0023  * All rights reserved.
0024  *
0025  * Redistribution and use in source and binary forms, with or without
0026  * modification, are permitted provided that the following conditions are met:
0027  *
0028  * 1. Redistributions of source code must retain the above copyright notice, this
0029  *    list of conditions and the following disclaimer.
0030  * 2. Redistributions in binary form must reproduce the above copyright notice,
0031  *    this list of conditions and the following disclaimer in the documentation
0032  *    and/or other materials provided with the distribution.
0033  *
0034  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
0035  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
0036  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
0037  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
0038  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
0039  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
0040  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
0041  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
0042  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
0043  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
0044  *
0045  * The views and conclusions contained in the software and documentation are those
0046  * of the authors and should not be interpreted as representing official policies,
0047  * either expressed or implied, of the FreeBSD Project.
0048 */
0049 #ifndef LIBBSP_ARM_TMS570_PMM
0050 #define LIBBSP_ARM_TMS570_PMM
0051 
0052 #include <bsp/utility.h>
0053 
0054 typedef struct{
0055   uint32_t LOGICPDPWRCTRL0;   /*Logic Power Domain Control Register 0*/
0056   uint8_t reserved1 [12];
0057   uint32_t MEMPDPWRCTRL0;     /*Memory Power Domain Control Register 0*/
0058   uint8_t reserved2 [12];
0059   uint32_t PDCLKDISREG;       /*Power Domain Clock Disable Register*/
0060   uint32_t PDCLKDISSETREG;    /*Power Domain Clock Disable Set Register*/
0061   uint32_t PDCLKDISCLRREG;    /*Power Domain Clock Disable Clear Register*/
0062   uint8_t reserved3 [20];
0063   uint32_t LOGICPDPWRSTAT[4]; /*Logic Power Domain PD2 Power Status Registers*/
0064   uint8_t reserved4 [48];
0065   uint32_t MEMPDPWRSTAT[3];   /*Memory Power Domain RAM_PD1 Power Status Registers*/
0066   uint8_t reserved5 [20];
0067   uint32_t GLOBALCTRL1;       /*Global Control Register 1*/
0068   uint8_t reserved6 [4];
0069   uint32_t GLOBALSTAT;        /*Global Status Register*/
0070   uint32_t PRCKEYREG;         /*PSCON Diagnostic Compare Key Register*/
0071   uint32_t LPDDCSTAT1;        /*LogicPD PSCON Diagnostic Compare Status Register 1*/
0072   uint32_t LPDDCSTAT2;        /*LogicPD PSCON Diagnostic Compare Status Register 2*/
0073   uint32_t MPDDCSTAT1;        /*Memory PD PSCON Diagnostic Compare Status Register 1*/
0074   uint32_t MPDDCSTAT2;        /*Memory PD PSCON Diagnostic Compare Status Register 2*/
0075   uint32_t ISODIAGSTAT;       /*Isolation Diagnostic Status Register*/
0076 } tms570_pmm_t;
0077 
0078 
0079 /*-----------------TMS570_PMM_LOGICPDPWRCTRL0-----------------*/
0080 /* field: LOGICPDON0 - Read in User and Privileged Mode. Write in Privileged Mode only. */
0081 #define TMS570_PMM_LOGICPDPWRCTRL0_LOGICPDON0(val) BSP_FLD32(val,24, 27)
0082 #define TMS570_PMM_LOGICPDPWRCTRL0_LOGICPDON0_GET(reg) BSP_FLD32GET(reg,24, 27)
0083 #define TMS570_PMM_LOGICPDPWRCTRL0_LOGICPDON0_SET(reg,val) BSP_FLD32SET(reg, val,24, 27)
0084 
0085 /* field: LOGICPDON1 - Read in User and Privileged Mode. Write in Privileged Mode only. */
0086 #define TMS570_PMM_LOGICPDPWRCTRL0_LOGICPDON1(val) BSP_FLD32(val,16, 19)
0087 #define TMS570_PMM_LOGICPDPWRCTRL0_LOGICPDON1_GET(reg) BSP_FLD32GET(reg,16, 19)
0088 #define TMS570_PMM_LOGICPDPWRCTRL0_LOGICPDON1_SET(reg,val) BSP_FLD32SET(reg, val,16, 19)
0089 
0090 /* field: LOGICPDON2 - Read in User and Privileged Mode. Write in Privileged Mode only. */
0091 #define TMS570_PMM_LOGICPDPWRCTRL0_LOGICPDON2(val) BSP_FLD32(val,8, 11)
0092 #define TMS570_PMM_LOGICPDPWRCTRL0_LOGICPDON2_GET(reg) BSP_FLD32GET(reg,8, 11)
0093 #define TMS570_PMM_LOGICPDPWRCTRL0_LOGICPDON2_SET(reg,val) BSP_FLD32SET(reg, val,8, 11)
0094 
0095 /* field: LOGICPDON3 - Read in User and Privileged Mode. Write in Privileged Mode only. */
0096 #define TMS570_PMM_LOGICPDPWRCTRL0_LOGICPDON3(val) BSP_FLD32(val,0, 3)
0097 #define TMS570_PMM_LOGICPDPWRCTRL0_LOGICPDON3_GET(reg) BSP_FLD32GET(reg,0, 3)
0098 #define TMS570_PMM_LOGICPDPWRCTRL0_LOGICPDON3_SET(reg,val) BSP_FLD32SET(reg, val,0, 3)
0099 
0100 
0101 /*------------------TMS570_PMM_MEMPDPWRCTRL0------------------*/
0102 /* field: MEMPDON0 - Read in User and Privileged Mode. Write in Privileged Mode only. */
0103 #define TMS570_PMM_MEMPDPWRCTRL0_MEMPDON0(val) BSP_FLD32(val,24, 27)
0104 #define TMS570_PMM_MEMPDPWRCTRL0_MEMPDON0_GET(reg) BSP_FLD32GET(reg,24, 27)
0105 #define TMS570_PMM_MEMPDPWRCTRL0_MEMPDON0_SET(reg,val) BSP_FLD32SET(reg, val,24, 27)
0106 
0107 /* field: MEMPDON1 - Read in User and Privileged Mode. Write in Privileged Mode only. */
0108 #define TMS570_PMM_MEMPDPWRCTRL0_MEMPDON1(val) BSP_FLD32(val,16, 19)
0109 #define TMS570_PMM_MEMPDPWRCTRL0_MEMPDON1_GET(reg) BSP_FLD32GET(reg,16, 19)
0110 #define TMS570_PMM_MEMPDPWRCTRL0_MEMPDON1_SET(reg,val) BSP_FLD32SET(reg, val,16, 19)
0111 
0112 /* field: MEMPDON2 - Read in User and Privileged Mode. Write in Privileged Mode only. */
0113 #define TMS570_PMM_MEMPDPWRCTRL0_MEMPDON2(val) BSP_FLD32(val,8, 11)
0114 #define TMS570_PMM_MEMPDPWRCTRL0_MEMPDON2_GET(reg) BSP_FLD32GET(reg,8, 11)
0115 #define TMS570_PMM_MEMPDPWRCTRL0_MEMPDON2_SET(reg,val) BSP_FLD32SET(reg, val,8, 11)
0116 
0117 
0118 /*-------------------TMS570_PMM_PDCLKDISREG-------------------*/
0119 /* field: PDCLK_DIS_3 - Read in User and Privileged Mode returns the current value of PDCLK_DIS[3]. */
0120 #define TMS570_PMM_PDCLKDISREG_PDCLK_DIS_3 BSP_BIT32(3)
0121 
0122 /* field: PDCLK_DIS_2 - Read in User and Privileged Mode returns the current value of PDCLK_DIS[2]. */
0123 #define TMS570_PMM_PDCLKDISREG_PDCLK_DIS_2 BSP_BIT32(2)
0124 
0125 /* field: PDCLK_DIS_1 - ead in User and Privileged Mode returns the current value of PDCLK_DIS[1]. */
0126 #define TMS570_PMM_PDCLKDISREG_PDCLK_DIS_1 BSP_BIT32(1)
0127 
0128 /* field: PDCLK_DIS_0 - Read in User and Privileged Mode returns the current value of PDCLK_DIS[0]. */
0129 #define TMS570_PMM_PDCLKDISREG_PDCLK_DIS_0 BSP_BIT32(0)
0130 
0131 
0132 /*-----------------TMS570_PMM_PDCLKDISSETREG-----------------*/
0133 /* field: PDCLK_DISSET_3 - Read in User and Privileged Mode returns the current value of PDCLK_DISSET[3]. */
0134 #define TMS570_PMM_PDCLKDISSETREG_PDCLK_DISSET_3 BSP_BIT32(3)
0135 
0136 /* field: PDCLK_DISSET_2 - Privileged Mode only. */
0137 #define TMS570_PMM_PDCLKDISSETREG_PDCLK_DISSET_2 BSP_BIT32(2)
0138 
0139 /* field: PDCLK_DISSET_1 - Read in User and Privileged Mode returns the current value of PDCLK_DISSET[1]. */
0140 #define TMS570_PMM_PDCLKDISSETREG_PDCLK_DISSET_1 BSP_BIT32(1)
0141 
0142 /* field: PDCLK_DISSET_0 - Read in User and Privileged Mode returns the current value of PDCLK_DISSET[0]. */
0143 #define TMS570_PMM_PDCLKDISSETREG_PDCLK_DISSET_0 BSP_BIT32(0)
0144 
0145 
0146 /*-----------------TMS570_PMM_PDCLKDISCLRREG-----------------*/
0147 /* field: PDCLK_DISCLR_3 - PDCLK_DISCLR[3] */
0148 #define TMS570_PMM_PDCLKDISCLRREG_PDCLK_DISCLR_3 BSP_BIT32(3)
0149 
0150 /* field: PDCLK_DISCLR_2 - Read in User and Privileged Mode returns the current value of PDCLK_DIS[2]. */
0151 #define TMS570_PMM_PDCLKDISCLRREG_PDCLK_DISCLR_2 BSP_BIT32(2)
0152 
0153 /* field: PDCLK_DISCLR_1 - Read in User and Privileged Mode returns the current value of PDCLK_DIS[1]. */
0154 #define TMS570_PMM_PDCLKDISCLRREG_PDCLK_DISCLR_1 BSP_BIT32(1)
0155 
0156 /* field: PDCLK_DISCLR_0 - Read in User and Privileged Mode returns the current value of PDCLK_DIS[0]. */
0157 #define TMS570_PMM_PDCLKDISCLRREG_PDCLK_DISCLR_0 BSP_BIT32(0)
0158 
0159 
0160 /*-----------------TMS570_PMM_LOGICPDPWRSTAT-----------------*/
0161 /* field: LOGIC_IN_TRANS0 - Logic in transition status for power domain PD2. */
0162 #define TMS570_PMM_LOGICPDPWRSTAT_LOGIC_IN_TRANS0 BSP_BIT32(24)
0163 
0164 /* field: MEM_IN_TRANS0 - Memory in transition status for power domain PD2. */
0165 #define TMS570_PMM_LOGICPDPWRSTAT_MEM_IN_TRANS0 BSP_BIT32(16)
0166 
0167 /* field: DOMAIN_ON0 - Current state of power domain PD2. */
0168 #define TMS570_PMM_LOGICPDPWRSTAT_DOMAIN_ON0 BSP_BIT32(8)
0169 
0170 /* field: LOGICPDPWR_STAT0 - Logic power domain PD2 power state. */
0171 #define TMS570_PMM_LOGICPDPWRSTAT_LOGICPDPWR_STAT0(val) BSP_FLD32(val,0, 1)
0172 #define TMS570_PMM_LOGICPDPWRSTAT_LOGICPDPWR_STAT0_GET(reg) BSP_FLD32GET(reg,0, 1)
0173 #define TMS570_PMM_LOGICPDPWRSTAT_LOGICPDPWR_STAT0_SET(reg,val) BSP_FLD32SET(reg, val,0, 1)
0174 
0175 
0176 /*------------------TMS570_PMM_MEMPDPWRSTAT------------------*/
0177 /* field: LOGIC_IN_TRANS0 - Logic in transition status for power domain RAM_PD1. */
0178 #define TMS570_PMM_MEMPDPWRSTAT_LOGIC_IN_TRANS0 BSP_BIT32(24)
0179 
0180 /* field: MEM_IN_TRANS0 - Memory in transition status for power domain RAM_PD1. */
0181 #define TMS570_PMM_MEMPDPWRSTAT_MEM_IN_TRANS0 BSP_BIT32(16)
0182 
0183 /* field: DOMAIN_ON0 - Current state of power domain RAM_PD1. */
0184 #define TMS570_PMM_MEMPDPWRSTAT_DOMAIN_ON0 BSP_BIT32(8)
0185 
0186 /* field: MEMPDPWR_STAT0 - Memory power domain RAM_PD1 power state. */
0187 #define TMS570_PMM_MEMPDPWRSTAT_MEMPDPWR_STAT0(val) BSP_FLD32(val,0, 1)
0188 #define TMS570_PMM_MEMPDPWRSTAT_MEMPDPWR_STAT0_GET(reg) BSP_FLD32GET(reg,0, 1)
0189 #define TMS570_PMM_MEMPDPWRSTAT_MEMPDPWR_STAT0_SET(reg,val) BSP_FLD32SET(reg, val,0, 1)
0190 
0191 
0192 /*-------------------TMS570_PMM_GLOBALCTRL1-------------------*/
0193 /* field: PMCTRL_PWRDN - PMC/PSCON Power Down */
0194 #define TMS570_PMM_GLOBALCTRL1_PMCTRL_PWRDN BSP_BIT32(8)
0195 
0196 /* field: AUTO_CLK_WAKE_ENA - Automatic Clock Enable on Wake Up */
0197 #define TMS570_PMM_GLOBALCTRL1_AUTO_CLK_WAKE_ENA BSP_BIT32(0)
0198 
0199 
0200 /*-------------------TMS570_PMM_GLOBALSTAT-------------------*/
0201 /* field: PMCTRL_IDLE - State of PMC and all PSCONs. */
0202 #define TMS570_PMM_GLOBALSTAT_PMCTRL_IDLE BSP_BIT32(0)
0203 
0204 
0205 /*--------------------TMS570_PMM_PRCKEYREG--------------------*/
0206 /* field: MKEY - Diagnostic PSCON Mode Key. The mode key is applied to all individual PSCON compare units. */
0207 #define TMS570_PMM_PRCKEYREG_MKEY(val) BSP_FLD32(val,0, 3)
0208 #define TMS570_PMM_PRCKEYREG_MKEY_GET(reg) BSP_FLD32GET(reg,0, 3)
0209 #define TMS570_PMM_PRCKEYREG_MKEY_SET(reg,val) BSP_FLD32SET(reg, val,0, 3)
0210 
0211 
0212 /*-------------------TMS570_PMM_LPDDCSTAT1-------------------*/
0213 /* field: LCMPE - Logic Power Domain Compare Error */
0214 #define TMS570_PMM_LPDDCSTAT1_LCMPE(val) BSP_FLD32(val,16, 19)
0215 #define TMS570_PMM_LPDDCSTAT1_LCMPE_GET(reg) BSP_FLD32GET(reg,16, 19)
0216 #define TMS570_PMM_LPDDCSTAT1_LCMPE_SET(reg,val) BSP_FLD32SET(reg, val,16, 19)
0217 
0218 /* field: LSTC - Logic Power Domain Self-test Complete */
0219 #define TMS570_PMM_LPDDCSTAT1_LSTC(val) BSP_FLD32(val,0, 3)
0220 #define TMS570_PMM_LPDDCSTAT1_LSTC_GET(reg) BSP_FLD32GET(reg,0, 3)
0221 #define TMS570_PMM_LPDDCSTAT1_LSTC_SET(reg,val) BSP_FLD32SET(reg, val,0, 3)
0222 
0223 
0224 /*-------------------TMS570_PMM_LPDDCSTAT2-------------------*/
0225 /* field: LSTET - Logic Power Domain Self-test Error Type */
0226 #define TMS570_PMM_LPDDCSTAT2_LSTET(val) BSP_FLD32(val,16, 19)
0227 #define TMS570_PMM_LPDDCSTAT2_LSTET_GET(reg) BSP_FLD32GET(reg,16, 19)
0228 #define TMS570_PMM_LPDDCSTAT2_LSTET_SET(reg,val) BSP_FLD32SET(reg, val,16, 19)
0229 
0230 /* field: LSTE - Logic Power Domain Self-test Error */
0231 #define TMS570_PMM_LPDDCSTAT2_LSTE(val) BSP_FLD32(val,0, 3)
0232 #define TMS570_PMM_LPDDCSTAT2_LSTE_GET(reg) BSP_FLD32GET(reg,0, 3)
0233 #define TMS570_PMM_LPDDCSTAT2_LSTE_SET(reg,val) BSP_FLD32SET(reg, val,0, 3)
0234 
0235 
0236 /*-------------------TMS570_PMM_MPDDCSTAT1-------------------*/
0237 /* field: MCMPE - Memory Power Domain Compare Error */
0238 #define TMS570_PMM_MPDDCSTAT1_MCMPE(val) BSP_FLD32(val,16, 18)
0239 #define TMS570_PMM_MPDDCSTAT1_MCMPE_GET(reg) BSP_FLD32GET(reg,16, 18)
0240 #define TMS570_PMM_MPDDCSTAT1_MCMPE_SET(reg,val) BSP_FLD32SET(reg, val,16, 18)
0241 
0242 /* field: MSTC - Memory Power Domain Self-test Complete */
0243 #define TMS570_PMM_MPDDCSTAT1_MSTC(val) BSP_FLD32(val,0, 2)
0244 #define TMS570_PMM_MPDDCSTAT1_MSTC_GET(reg) BSP_FLD32GET(reg,0, 2)
0245 #define TMS570_PMM_MPDDCSTAT1_MSTC_SET(reg,val) BSP_FLD32SET(reg, val,0, 2)
0246 
0247 
0248 /*-------------------TMS570_PMM_MPDDCSTAT2-------------------*/
0249 /* field: MSTET - Memory Power Domain Self-test Error Type */
0250 #define TMS570_PMM_MPDDCSTAT2_MSTET(val) BSP_FLD32(val,16, 18)
0251 #define TMS570_PMM_MPDDCSTAT2_MSTET_GET(reg) BSP_FLD32GET(reg,16, 18)
0252 #define TMS570_PMM_MPDDCSTAT2_MSTET_SET(reg,val) BSP_FLD32SET(reg, val,16, 18)
0253 
0254 /* field: MSTE - Memory Power Domain Self-test Error */
0255 #define TMS570_PMM_MPDDCSTAT2_MSTE(val) BSP_FLD32(val,0, 2)
0256 #define TMS570_PMM_MPDDCSTAT2_MSTE_GET(reg) BSP_FLD32GET(reg,0, 2)
0257 #define TMS570_PMM_MPDDCSTAT2_MSTE_SET(reg,val) BSP_FLD32SET(reg, val,0, 2)
0258 
0259 
0260 /*-------------------TMS570_PMM_ISODIAGSTAT-------------------*/
0261 /* field: ISO_DIAG - Isolation Diagnostic */
0262 #define TMS570_PMM_ISODIAGSTAT_ISO_DIAG(val) BSP_FLD32(val,0, 3)
0263 #define TMS570_PMM_ISODIAGSTAT_ISO_DIAG_GET(reg) BSP_FLD32GET(reg,0, 3)
0264 #define TMS570_PMM_ISODIAGSTAT_ISO_DIAG_SET(reg,val) BSP_FLD32SET(reg, val,0, 3)
0265 
0266 
0267 
0268 #endif /* LIBBSP_ARM_TMS570_PMM */