/** @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 |