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