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