blob: 024a7ba67a067e3587abe64b99ac8a2c459c5d35 [file] [log] [blame]
/** @file
This file declares the SMBus definitions defined in SmBus Specification V2.0
and defined in PI1.0 specification volume 5.
Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _SMBUS_H_
#define _SMBUS_H_
///
/// UDID of SMBUS device.
///
typedef struct {
UINT32 VendorSpecificId;
UINT16 SubsystemDeviceId;
UINT16 SubsystemVendorId;
UINT16 Interface;
UINT16 DeviceId;
UINT16 VendorId;
UINT8 VendorRevision;
UINT8 DeviceCapabilities;
} EFI_SMBUS_UDID;
///
/// Smbus Device Address
///
typedef struct {
///
/// The SMBUS hardware address to which the SMBUS device is preassigned or allocated.
///
UINTN SmbusDeviceAddress : 7;
} EFI_SMBUS_DEVICE_ADDRESS;
typedef struct {
///
/// The SMBUS hardware address to which the SMBUS device is preassigned or
/// allocated. Type EFI_SMBUS_DEVICE_ADDRESS is defined in EFI_PEI_SMBUS2_PPI.Execute().
///
EFI_SMBUS_DEVICE_ADDRESS SmbusDeviceAddress;
///
/// The SMBUS Unique Device Identifier (UDID) as defined in EFI_SMBUS_UDID.
/// Type EFI_SMBUS_UDID is defined in EFI_PEI_SMBUS2_PPI.ArpDevice().
///
EFI_SMBUS_UDID SmbusDeviceUdid;
} EFI_SMBUS_DEVICE_MAP;
///
/// Smbus Operations
///
typedef enum _EFI_SMBUS_OPERATION {
EfiSmbusQuickRead,
EfiSmbusQuickWrite,
EfiSmbusReceiveByte,
EfiSmbusSendByte,
EfiSmbusReadByte,
EfiSmbusWriteByte,
EfiSmbusReadWord,
EfiSmbusWriteWord,
EfiSmbusReadBlock,
EfiSmbusWriteBlock,
EfiSmbusProcessCall,
EfiSmbusBWBRProcessCall
} EFI_SMBUS_OPERATION;
///
/// EFI_SMBUS_DEVICE_COMMAND
///
typedef UINTN EFI_SMBUS_DEVICE_COMMAND;
#endif