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