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