1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * System Global Control Register definitions
4  * Copyright (c) 2022 Nuvoton Technology Corp.
5  */
6 
7 #ifndef _NPCM_GCR_H_
8 #define _NPCM_GCR_H_
9 
10 #define NPCM_GCR_BA		0xF0800000
11 
12 /* On-Chip ARBEL NPCM8XX VERSIONS */
13 #define ARBEL_Z1			0x00A35850
14 #define ARBEL_A1			0x04a35850
15 #define ARBEL_NPCM845			0x00000000
16 #define ARBEL_NPCM830			0x00300395
17 #define ARBEL_NPCM810			0x00000220
18 
19 #define MFSEL4_ESPISEL		BIT(8)
20 #define MFSEL1_LPCSEL		BIT(26)
21 #define INTCR2_WDC		BIT(21)
22 
23 struct npcm_gcr {
24 	unsigned int  pdid;
25 	unsigned int  pwron;
26 	unsigned int  swstrps;
27 	unsigned int  rsvd1[2];
28 	unsigned int  miscpe;
29 	unsigned int  spldcnt;
30 	unsigned int  rsvd2[1];
31 	unsigned int  flockr2;
32 	unsigned int  flockr3;
33 	unsigned int  rsvd3[3];
34 	unsigned int  a35_mode;
35 	unsigned int  spswc;
36 	unsigned int  intcr;
37 	unsigned int  intsr;
38 	unsigned int  obscr1;
39 	unsigned int  obsdr1;
40 	unsigned int  rsvd4[1];
41 	unsigned int  hifcr;
42 	unsigned int  rsvd5[3];
43 	unsigned int  intcr2;
44 	unsigned int  rsvd6[1];
45 	unsigned int  srcnt;
46 	unsigned int  ressr;
47 	unsigned int  rlockr1;
48 	unsigned int  flockr1;
49 	unsigned int  dscnt;
50 	unsigned int  mdlr;
51 	unsigned int  scrpad_c;
52 	unsigned int  scrpad_b;
53 	unsigned int  rsvd7[4];
54 	unsigned int  daclvlr;
55 	unsigned int  intcr3;
56 	unsigned int  pcirctl;
57 	unsigned int  rsvd8[2];
58 	unsigned int  vsintr;
59 	unsigned int  rsvd9[1];
60 	unsigned int  sd2sur1;
61 	unsigned int  sd2sur2;
62 	unsigned int  sd2irv3;
63 	unsigned int  intcr4;
64 	unsigned int  obscr2;
65 	unsigned int  obsdr2;
66 	unsigned int  rsvd10[5];
67 	unsigned int  i2csegsel;
68 	unsigned int  i2csegctl;
69 	unsigned int  vsrcr;
70 	unsigned int  mlockr;
71 	unsigned int  rsvd11[8];
72 	unsigned int  etsr;
73 	unsigned int  dft1r;
74 	unsigned int  dft2r;
75 	unsigned int  dft3r;
76 	unsigned int  edffsr;
77 	unsigned int  rsvd12[1];
78 	unsigned int  intcrpce3;
79 	unsigned int  intcrpce2;
80 	unsigned int  intcrpce0;
81 	unsigned int  intcrpce1;
82 	unsigned int  dactest;
83 	unsigned int  scrpad;
84 	unsigned int  usb1phyctl;
85 	unsigned int  usb2phyctl;
86 	unsigned int  usb3phyctl;
87 	unsigned int  intsr2;
88 	unsigned int  intcrpce2b;
89 	unsigned int  intcrpce0b;
90 	unsigned int  intcrpce1b;
91 	unsigned int  intcrpce3b;
92 	unsigned int  rsvd13[4];
93 	unsigned int  intcrpce2c;
94 	unsigned int  intcrpce0c;
95 	unsigned int  intcrpce1c;
96 	unsigned int  intcrpce3c;
97 	unsigned int  rsvd14[40];
98 	unsigned int  sd2irv4;
99 	unsigned int  sd2irv5;
100 	unsigned int  sd2irv6;
101 	unsigned int  sd2irv7;
102 	unsigned int  sd2irv8;
103 	unsigned int  sd2irv9;
104 	unsigned int  sd2irv10;
105 	unsigned int  sd2irv11;
106 	unsigned int  rsvd15[8];
107 	unsigned int  mfsel1;
108 	unsigned int  mfsel2;
109 	unsigned int  mfsel3;
110 	unsigned int  mfsel4;
111 	unsigned int  mfsel5;
112 	unsigned int  mfsel6;
113 	unsigned int  mfsel7;
114 	unsigned int  rsvd16[1];
115 	unsigned int  mfsel_lk1;
116 	unsigned int  mfsel_lk2;
117 	unsigned int  mfsel_lk3;
118 	unsigned int  mfsel_lk4;
119 	unsigned int  mfsel_lk5;
120 	unsigned int  mfsel_lk6;
121 	unsigned int  mfsel_lk7;
122 	unsigned int  rsvd17[1];
123 	unsigned int  mfsel_set1;
124 	unsigned int  mfsel_set2;
125 	unsigned int  mfsel_set3;
126 	unsigned int  mfsel_set4;
127 	unsigned int  mfsel_set5;
128 	unsigned int  mfsel_set6;
129 	unsigned int  mfsel_set7;
130 	unsigned int  rsvd18[1];
131 	unsigned int  mfsel_clr1;
132 	unsigned int  mfsel_clr2;
133 	unsigned int  mfsel_clr3;
134 	unsigned int  mfsel_clr4;
135 	unsigned int  mfsel_clr5;
136 	unsigned int  mfsel_clr6;
137 	unsigned int  mfsel_clr7;
138 	};
139 
140 #endif
141