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