4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This file declares the SMBus definitions defined in SmBus Specifciation V2.0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and defined in PI1.0 specification volume 5.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync http://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef _SMBUS_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define _SMBUS_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// UDID of SMBUS device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 VendorSpecificId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 SubsystemDeviceId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 SubsystemVendorId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Interface;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 DeviceId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 VendorId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 VendorRevision;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 DeviceCapabilities;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_SMBUS_UDID;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Smbus Device Address
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// The SMBUS hardware address to which the SMBUS device is preassigned or allocated.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN SmbusDeviceAddress : 7;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_SMBUS_DEVICE_ADDRESS;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// The SMBUS hardware address to which the SMBUS device is preassigned or
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// allocated. Type EFI_SMBUS_DEVICE_ADDRESS is defined in EFI_PEI_SMBUS2_PPI.Execute().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_SMBUS_DEVICE_ADDRESS SmbusDeviceAddress;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// The SMBUS Unique Device Identifier (UDID) as defined in EFI_SMBUS_UDID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// Type EFI_SMBUS_UDID is defined in EFI_PEI_SMBUS2_PPI.ArpDevice().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_SMBUS_UDID SmbusDeviceUdid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_SMBUS_DEVICE_MAP;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Smbus Operations
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef enum _EFI_SMBUS_OPERATION {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiSmbusQuickRead,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiSmbusQuickWrite,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiSmbusReceiveByte,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiSmbusSendByte,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiSmbusReadByte,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiSmbusWriteByte,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiSmbusReadWord,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiSmbusWriteWord,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiSmbusReadBlock,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiSmbusWriteBlock,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiSmbusProcessCall,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiSmbusBWBRProcessCall
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_SMBUS_OPERATION;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// EFI_SMBUS_DEVICE_COMMAND
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef UINTN EFI_SMBUS_DEVICE_COMMAND;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync