1*a60ca3b4SBryan O'Donoghue /* 2*a60ca3b4SBryan O'Donoghue * Copyright (C) 2018, ARM Limited and Contributors. All rights reserved. 3*a60ca3b4SBryan O'Donoghue * 4*a60ca3b4SBryan O'Donoghue * SPDX-License-Identifier: BSD-3-Clause 5*a60ca3b4SBryan O'Donoghue */ 6*a60ca3b4SBryan O'Donoghue #ifndef __IMX_SNVS_H__ 7*a60ca3b4SBryan O'Donoghue #define __IMX_SNVS_H__ 8*a60ca3b4SBryan O'Donoghue 9*a60ca3b4SBryan O'Donoghue #include <stdint.h> 10*a60ca3b4SBryan O'Donoghue #include <arch.h> 11*a60ca3b4SBryan O'Donoghue 12*a60ca3b4SBryan O'Donoghue struct snvs { 13*a60ca3b4SBryan O'Donoghue uint32_t hplr; 14*a60ca3b4SBryan O'Donoghue uint32_t hpcomr; 15*a60ca3b4SBryan O'Donoghue uint32_t hpcr; 16*a60ca3b4SBryan O'Donoghue uint32_t hpsicr; 17*a60ca3b4SBryan O'Donoghue uint32_t hpsvcr; 18*a60ca3b4SBryan O'Donoghue uint32_t hpsr; 19*a60ca3b4SBryan O'Donoghue uint32_t hpsvsr; 20*a60ca3b4SBryan O'Donoghue uint32_t hphacivr; 21*a60ca3b4SBryan O'Donoghue uint32_t hphacr; 22*a60ca3b4SBryan O'Donoghue uint32_t hprtcmr; 23*a60ca3b4SBryan O'Donoghue uint32_t hprtclr; 24*a60ca3b4SBryan O'Donoghue uint32_t hptamr; 25*a60ca3b4SBryan O'Donoghue uint32_t hptalr; 26*a60ca3b4SBryan O'Donoghue uint32_t lplr; 27*a60ca3b4SBryan O'Donoghue uint32_t lpcr; 28*a60ca3b4SBryan O'Donoghue uint32_t lpmkcr; 29*a60ca3b4SBryan O'Donoghue uint32_t lpsvcr; 30*a60ca3b4SBryan O'Donoghue uint32_t lptgfcr; 31*a60ca3b4SBryan O'Donoghue uint32_t lptdcr; 32*a60ca3b4SBryan O'Donoghue uint32_t lpsr; 33*a60ca3b4SBryan O'Donoghue uint32_t lpsrtcmr; 34*a60ca3b4SBryan O'Donoghue uint32_t lpsrtclr; 35*a60ca3b4SBryan O'Donoghue uint32_t lptar; 36*a60ca3b4SBryan O'Donoghue uint32_t lpsmcmr; 37*a60ca3b4SBryan O'Donoghue uint32_t lpsmclr; 38*a60ca3b4SBryan O'Donoghue uint32_t lppgdr; 39*a60ca3b4SBryan O'Donoghue uint32_t lpgpr0_alias; 40*a60ca3b4SBryan O'Donoghue uint8_t lpzmkr[32]; 41*a60ca3b4SBryan O'Donoghue uint16_t res0; 42*a60ca3b4SBryan O'Donoghue uint32_t lpgpr0[4]; 43*a60ca3b4SBryan O'Donoghue uint32_t lptdc2r; 44*a60ca3b4SBryan O'Donoghue uint32_t lptdsr; 45*a60ca3b4SBryan O'Donoghue uint32_t lptgf1cr; 46*a60ca3b4SBryan O'Donoghue uint32_t lptgf2cr; 47*a60ca3b4SBryan O'Donoghue uint32_t res1[4]; 48*a60ca3b4SBryan O'Donoghue uint32_t lpat1cr; 49*a60ca3b4SBryan O'Donoghue uint32_t lpat2cr; 50*a60ca3b4SBryan O'Donoghue uint32_t lpat3cr; 51*a60ca3b4SBryan O'Donoghue uint32_t lpat4cr; 52*a60ca3b4SBryan O'Donoghue uint32_t lpat5cr; 53*a60ca3b4SBryan O'Donoghue uint32_t res2[3]; 54*a60ca3b4SBryan O'Donoghue uint32_t lpatctlr; 55*a60ca3b4SBryan O'Donoghue uint32_t lpatclkr; 56*a60ca3b4SBryan O'Donoghue uint32_t lpatrc1r; 57*a60ca3b4SBryan O'Donoghue uint32_t lpatrc2r; 58*a60ca3b4SBryan O'Donoghue uint32_t res3[706]; 59*a60ca3b4SBryan O'Donoghue uint32_t hpvidr1; 60*a60ca3b4SBryan O'Donoghue uint32_t hpvidr2; 61*a60ca3b4SBryan O'Donoghue } __packed; 62*a60ca3b4SBryan O'Donoghue 63*a60ca3b4SBryan O'Donoghue /* Define the HPCOMR bits */ 64*a60ca3b4SBryan O'Donoghue #define HPCOMR_NPSWA_EN BIT(31) 65*a60ca3b4SBryan O'Donoghue #define HPCOMR_HAC_STOP BIT(19) 66*a60ca3b4SBryan O'Donoghue #define HPCOMR_HAC_CLEAR BIT(18) 67*a60ca3b4SBryan O'Donoghue #define HPCOMR_HAC_LOAD BIT(17) 68*a60ca3b4SBryan O'Donoghue #define HPCOMR_HAC_EN BIT(16) 69*a60ca3b4SBryan O'Donoghue #define HPCOMR_MKS_EN BIT(13) 70*a60ca3b4SBryan O'Donoghue #define HPCOMR_PROG_ZMK BIT(12) 71*a60ca3b4SBryan O'Donoghue #define HPCOMR_SW_LPSV BIT(10) 72*a60ca3b4SBryan O'Donoghue #define HPCOMR_SW_FSV BIT(9) 73*a60ca3b4SBryan O'Donoghue #define HPCOMR_SW_SV BIT(8) 74*a60ca3b4SBryan O'Donoghue #define HPCOMR_LP_SWR_DIS BIT(5) 75*a60ca3b4SBryan O'Donoghue #define HPCOMR_LP_SWR BIT(4) 76*a60ca3b4SBryan O'Donoghue #define HPCOMR_SSM_SFNS_DIS BIT(2) 77*a60ca3b4SBryan O'Donoghue #define HPCOMR_SSM_ST_DIS BIT(1) 78*a60ca3b4SBryan O'Donoghue #define HPCOMR_SSM_ST BIT(0) 79*a60ca3b4SBryan O'Donoghue 80*a60ca3b4SBryan O'Donoghue void imx_snvs_init(void); 81*a60ca3b4SBryan O'Donoghue 82*a60ca3b4SBryan O'Donoghue #endif /* __IMX_SNVS_H__ */ 83