blob: 6eb14faefb27a18b0fc6851ea61650b62d821ac8 [file] [log] [blame]
/** @file
Base SMBUS library implementation built upon I/O library.
Copyright (c) 2006, Intel Corporation<BR>
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name: SmbusLib.h
**/
#ifndef __SMBUS_LIB_REGISTER_H
#define __SMBUS_LIB_REGISTER_H
#define SMBUS_R_HST_STS 0x00 // Host Status Register
#define SMBUS_B_HOST_BUSY 0x01 // RO
#define SMBUS_B_INTR 0x02 // R/WC
#define SMBUS_B_DEV_ERR 0x04 // R/WC
#define SMBUS_B_BUS_ERR 0x08 // R/WC
#define SMBUS_B_FAILED 0x10 // R/WC
#define SMBUS_B_SMBALERT_STS 0x20 // R/WC
#define SMBUS_B_INUSE_STS 0x40 // R/WC
#define SMBUS_B_BYTE_DONE_STS 0x80 // R/WC
#define SMBUS_B_ERROR (SMBUS_B_DEV_ERR | SMBUS_B_BUS_ERR | SMBUS_B_FAILED)
#define SMBUS_B_HSTS_ALL 0xFF // R/WC
#define SMBUS_R_HST_CTL 0x02 // Host Control Register R/W
#define SMBUS_B_INTREN 0x01 // RW
#define SMBUS_B_KILL 0x02 // RW
#define SMBUS_B_CMD (7 << 2) // RW
#define SMBUS_V_SMB_CMD_QUICK (0 << 2)
#define SMBUS_V_SMB_CMD_BYTE (1 << 2)
#define SMBUS_V_SMB_CMD_BYTE_DATA (2 << 2)
#define SMBUS_V_SMB_CMD_WORD_DATA (3 << 2)
#define SMBUS_V_SMB_CMD_PROCESS_CALL (4 << 2)
#define SMBUS_V_SMB_CMD_BLOCK (5 << 2)
#define SMBUS_V_SMB_CMD_IIC_READ (6 << 2)
#define SMBUS_V_SMB_CMD_BLOCK_PROCESS (7 << 2)
#define SMBUS_B_LAST_BYTE 0x20 // WO
#define SMBUS_B_START 0x40 // WO
#define SMBUS_B_PEC_EN 0x80 // RW
#define SMBUS_R_HST_CMD 0x03 // Host Command Register R/W
#define SMBUS_R_XMIT_SLVA 0x04 // Transmit Slave Address Register R/W
#define SMBUS_B_RW 0x01 // RW
#define SMBUS_B_READ 0x01 // RW
#define SMBUS_B_WRITE 0x00 // RW
#define SMBUS_B_ADDRESS 0xFE // RW
#define SMBUS_R_HST_D0 0x05 // Data 0 Register R/W
#define SMBUS_R_HST_D1 0x06 // Data 1 Register R/W
#define SMBUS_R_HOST_BLOCK_DB 0x07 // Host Block Data Register R/W
#define SMBUS_R_PEC 0x08 // Packet Error Check Data Register R/W
#define SMBUS_R_RCV_SLVA 0x09 // Receive Slave Address Register R/W
#define SMBUS_B_SLAVE_ADDR 0x7F // RW
#define SMBUS_R_SLV_DATA 0x0A // Receive Slave Data Register R/W
#define SMBUS_R_AUX_STS 0x0C // Auxiliary Status Register R/WC
#define SMBUS_B_CRCE 0x01 // R/WC
#define SMBUS_R_AUX_CTL 0x0D // Auxiliary Control Register R/W
#define SMBUS_B_AAC 0x01 // R/W
#define SMBUS_B_E32B 0x02 // R/W
#define SMBUS_R_SMLINK_PIN_CTL 0x0E // SMLINK Pin Control Register R/W
#define SMBUS_B_SMLINK0_CUR_STS 0x01 // RO
#define SMBUS_B_SMLINK1_CUR_STS 0x02 // RO
#define SMBUS_B_SMLINK_CLK_CTL 0x04 // RW
#define SMBUS_R_SMBUS_PIN_CTL 0x0F // SMBus Pin Control Register R/W
#define SMBUS_B_SMBCLK_CUR_STS 0x01 // RO
#define SMBUS_B_SMBDATA_CUR_STS 0x02 // RO
#define SMBUS_B_SMBCLK_CTL 0x04 // RW
#define SMBUS_R_SLV_STS 0x10 // Slave Status Register R/WC
#define SMBUS_B_HOST_NOTIFY_STS 0x01 // R/WC
#define SMBUS_R_SLV_CMD 0x11 // Slave Command Register R/W
#define SMBUS_B_HOST_NOTIFY_INTREN 0x01 // R/W
#define SMBUS_B_HOST_NOTIFY_WKEN 0x02 // R/W
#define SMBUS_B_SMBALERT_DIS 0x04 // R/W
#define SMBUS_R_NOTIFY_DADDR 0x14 // Notify Device Address Register RO
#define SMBUS_B_DEVICE_ADDRESS 0xFE // RO
#define SMBUS_R_NOTIFY_DLOW 0x16 // Notify Data Low Byte Register RO
#define SMBUS_R_NOTIFY_DHIGH 0x17 // Notify Data High Byte Register RO
#endif