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