xref: /rk3399_ARM-atf/plat/imx/common/include/imx_snvs.h (revision c3cf06f1a3a9b9ee8ac7a0ae505f95c45f7dca84)
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