You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.6 KiB
99 lines
2.6 KiB
/*
|
|
* KB3310.h
|
|
*
|
|
* Author : liujl <liujl@lemote.com>
|
|
* Date : 2008-04-15
|
|
*/
|
|
|
|
/* We should make ec rom content and pmon port number equal. */
|
|
/* if you use MX serial EC ROM, please select the option, otherwise mask it */
|
|
//#define USING_MX_ROM
|
|
|
|
#if 0
|
|
#define HIGH_PORT 0xff2d
|
|
#define LOW_PORT 0xff2e
|
|
#define DATA_PORT 0xff2f
|
|
#else
|
|
#define HIGH_PORT 0x0381
|
|
#define LOW_PORT 0x0382
|
|
#define DATA_PORT 0x0383
|
|
#endif
|
|
|
|
/* xbi register in kb3310 */
|
|
#define XBI_BANK 0xFE00
|
|
#define XBISEG0 0xA0
|
|
#define XBISEG1 0xA1
|
|
#define XBIRSV2 0xA2
|
|
#define XBIRSV3 0xA3
|
|
#define XBIRSV4 0xA4
|
|
#define XBICFG 0xA5
|
|
#define XBICS 0xA6
|
|
#define XBIWE 0xA7
|
|
#define XBISPIA0 0xA8
|
|
#define XBISPIA1 0xA9
|
|
#define XBISPIA2 0xAA
|
|
#define XBISPIDAT 0xAB
|
|
#define XBISPICMD 0xAC
|
|
#define XBISPICFG 0xAD
|
|
#define XBISPIDATR 0xAE
|
|
#define XBISPICFG2 0xAF
|
|
|
|
/* SMBUS relative register block according to the EC datasheet. */
|
|
#define REG_SMBTCRC 0xff92
|
|
#define REG_SMBPIN 0xff93
|
|
#define REG_SMBCFG 0xff94
|
|
#define REG_SMBEN 0xff95
|
|
#define REG_SMBPF 0xff96
|
|
#define REG_SMBRCRC 0xff97
|
|
#define REG_SMBPRTCL 0xff98
|
|
#define REG_SMBSTS 0xff99
|
|
#define REG_SMBADR 0xff9a
|
|
#define REG_SMBCMD 0xff9b
|
|
#define REG_SMBDAT_START 0xff9c
|
|
#define REG_SMBDAT_END 0xffa3
|
|
#define SMBDAT_SIZE 8
|
|
#define REG_SMBRSA 0xffa4
|
|
#define REG_SMBCNT 0xffbc
|
|
#define REG_SMBAADR 0xffbd
|
|
#define REG_SMBADAT0 0xffbe
|
|
#define REG_SMBADAT1 0xffbf
|
|
|
|
/* watchdog timer registers */
|
|
#define REG_WDTCFG 0xfe80
|
|
#define REG_WDTPF 0xfe81
|
|
|
|
/* lpc configure register */
|
|
#define REG_LPCCFG 0xfe95
|
|
|
|
/* 8051 reg */
|
|
#define REG_PXCFG 0xff14
|
|
|
|
/* Fan register in KB3310 */
|
|
#define REG_ECFAN_SPEED_LEVEL 0xf4e4
|
|
#define REG_ECFAN_SWITCH 0xf4d2
|
|
|
|
#define EC_ROM_PRODUCT_ID_SPANSION 0x01
|
|
#define EC_ROM_PRODUCT_ID_MXIC 0xC2
|
|
#define EC_ROM_PRODUCT_ID_AMIC 0x37
|
|
#define EC_ROM_PRODUCT_ID_EONIC 0x1C
|
|
|
|
/* version burned address */
|
|
#define VER_ADDR 0xf7a2 //0xf300
|
|
#define VER_MAX_SIZE 7 //0x40
|
|
#define EC_ROM_MAX_SIZE 0xf7a8 //0xf400
|
|
|
|
/* access ec register content */
|
|
static inline void wrec(unsigned short reg, unsigned char val)
|
|
{
|
|
*( (volatile unsigned char *)(BONITO_PCIIO_BASE_VA | HIGH_PORT) ) = (reg & 0xff00) >> 8;
|
|
*( (volatile unsigned char *)(BONITO_PCIIO_BASE_VA | LOW_PORT) ) = (reg & 0x00ff);
|
|
*( (volatile unsigned char *)(BONITO_PCIIO_BASE_VA | DATA_PORT) ) = val;
|
|
}
|
|
|
|
static inline unsigned char rdec(unsigned short reg)
|
|
{
|
|
*( (volatile unsigned char *)(BONITO_PCIIO_BASE_VA | HIGH_PORT) ) = (reg & 0xff00) >> 8;
|
|
*( (volatile unsigned char *)(BONITO_PCIIO_BASE_VA | LOW_PORT) ) = (reg & 0x00ff);
|
|
return (*( (volatile unsigned char *)(BONITO_PCIIO_BASE_VA | DATA_PORT) ));
|
|
}
|
|
|
|
|