1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright 2010 Freescale Semiconductor, Inc.
4  */
5 #ifndef __PIXIS_H_
6 #define __PIXIS_H_	1
7 
8 /* PIXIS register set. */
9 #if defined(CONFIG_TARGET_MPC8536DS)
10 typedef struct pixis {
11 	u8 id;
12 	u8 ver;
13 	u8 pver;
14 	u8 csr;
15 	u8 rst;
16 	u8 rst2;
17 	u8 aux1;
18 	u8 spd;
19 	u8 aux2;
20 	u8 csr2;
21 	u8 watch;
22 	u8 led;
23 	u8 pwr;
24 	u8 res[3];
25 	u8 vctl;
26 	u8 vstat;
27 	u8 vcfgen0;
28 	u8 vcfgen1;
29 	u8 vcore0;
30 	u8 res1;
31 	u8 vboot;
32 	u8 vspeed[3];
33 	u8 sclk[3];
34 	u8 dclk[3];
35 	u8 i2cdacr;
36 	u8 vcoreacc[4];
37 	u8 vcorecnt[3];
38 	u8 vcoremax[2];
39 	u8 vplatacc[4];
40 	u8 vplatcnt[3];
41 	u8 vplatmax[2];
42 	u8 vtempacc[4];
43 	u8 vtempcnt[3];
44 	u8 vtempmax[2];
45 	u8 res2[4];
46 } __attribute__ ((packed)) pixis_t;
47 
48 #elif defined(CONFIG_TARGET_MPC8544DS)
49 typedef struct pixis {
50 	u8 id;
51 	u8 ver;
52 	u8 pver;
53 	u8 csr;
54 	u8 rst;
55 	u8 pwr;
56 	u8 aux1;
57 	u8 spd;
58 	u8 res[8];
59 	u8 vctl;
60 	u8 vstat;
61 	u8 vcfgen0;
62 	u8 vcfgen1;
63 	u8 vcore0;
64 	u8 res1;
65 	u8 vboot;
66 	u8 vspeed[2];
67 	u8 vclkh;
68 	u8 vclkl;
69 	u8 watch;
70 	u8 led;
71 	u8 vspeed2;
72 	u8 res2[34];
73 } __attribute__ ((packed)) pixis_t;
74 
75 #elif defined(CONFIG_TARGET_MPC8572DS)
76 typedef struct pixis {
77 	u8 id;
78 	u8 ver;
79 	u8 pver;
80 	u8 csr;
81 	u8 rst;
82 	u8 pwr1;
83 	u8 aux1;
84 	u8 spd;
85 	u8 aux2;
86 	u8 res[7];
87 	u8 vctl;
88 	u8 vstat;
89 	u8 vcfgen0;
90 	u8 vcfgen1;
91 	u8 vcore0;
92 	u8 res1;
93 	u8 vboot;
94 	u8 vspeed[3];
95 	u8 res2[2];
96 	u8 sclk[3];
97 	u8 dclk[3];
98 	u8 res3[2];
99 	u8 watch;
100 	u8 led;
101 	u8 res4[25];
102 } __attribute__ ((packed)) pixis_t;
103 
104 #elif defined(CONFIG_TARGET_MPC8610HPCD)
105 typedef struct pixis {
106 	u8 id;
107 	u8 ver;	/* also called arch */
108 	u8 pver;
109 	u8 csr;
110 	u8 rst;
111 	u8 pwr;
112 	u8 aux;
113 	u8 spd;
114 	u8 brdcfg0;
115 	u8 brdcfg1;
116 	u8 res[4];
117 	u8 led;
118 	u8 serno;
119 	u8 vctl;
120 	u8 vstat;
121 	u8 vcfgen0;
122 	u8 vcfgen1;
123 	u8 vcore0;
124 	u8 res1;
125 	u8 vboot;
126 	u8 vspeed[2];
127 	u8 res2;
128 	u8 sclk[3];
129 	u8 res3;
130 	u8 watch;
131 	u8 res4[33];
132 } __attribute__ ((packed)) pixis_t;
133 
134 #elif defined(CONFIG_TARGET_MPC8641HPCN)
135 typedef struct pixis {
136 	u8 id;
137 	u8 ver;
138 	u8 pver;
139 	u8 csr;
140 	u8 rst;
141 	u8 pwr;
142 	u8 aux;
143 	u8 spd;
144 	u8 res[8];
145 	u8 vctl;
146 	u8 vstat;
147 	u8 vcfgen0;
148 	u8 vcfgen1;
149 	u8 vcore0;
150 	u8 res1;
151 	u8 vboot;
152 	u8 vspeed[2];
153 	u8 vclkh;
154 	u8 vclkl;
155 	u8 watch;
156 	u8 res3[36];
157 } __attribute__ ((packed)) pixis_t;
158 #else
159 #error Need to define pixis_t for this board
160 #endif
161 
162 /* Pointer to the PIXIS register set */
163 #define pixis ((pixis_t *)PIXIS_BASE)
164 
165 #endif	/* __PIXIS_H_ */
166