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