]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/IndustryStandard/SmBus.h
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / SmBus.h
1 /** @file
2 This file declares the SMBus definitions defined in SmBus Specifciation V2.0
3 and defined in PI1.0 specification volume 5.
4
5 Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8 **/
9
10 #ifndef _SMBUS_H_
11 #define _SMBUS_H_
12
13
14 ///
15 /// UDID of SMBUS device.
16 ///
17 typedef struct {
18 UINT32 VendorSpecificId;
19 UINT16 SubsystemDeviceId;
20 UINT16 SubsystemVendorId;
21 UINT16 Interface;
22 UINT16 DeviceId;
23 UINT16 VendorId;
24 UINT8 VendorRevision;
25 UINT8 DeviceCapabilities;
26 } EFI_SMBUS_UDID;
27
28 ///
29 /// Smbus Device Address
30 ///
31 typedef struct {
32 ///
33 /// The SMBUS hardware address to which the SMBUS device is preassigned or allocated.
34 ///
35 UINTN SmbusDeviceAddress : 7;
36 } EFI_SMBUS_DEVICE_ADDRESS;
37
38 typedef struct {
39 ///
40 /// The SMBUS hardware address to which the SMBUS device is preassigned or
41 /// allocated. Type EFI_SMBUS_DEVICE_ADDRESS is defined in EFI_PEI_SMBUS2_PPI.Execute().
42 ///
43 EFI_SMBUS_DEVICE_ADDRESS SmbusDeviceAddress;
44 ///
45 /// The SMBUS Unique Device Identifier (UDID) as defined in EFI_SMBUS_UDID.
46 /// Type EFI_SMBUS_UDID is defined in EFI_PEI_SMBUS2_PPI.ArpDevice().
47 ///
48 EFI_SMBUS_UDID SmbusDeviceUdid;
49 } EFI_SMBUS_DEVICE_MAP;
50
51 ///
52 /// Smbus Operations
53 ///
54 typedef enum _EFI_SMBUS_OPERATION {
55 EfiSmbusQuickRead,
56 EfiSmbusQuickWrite,
57 EfiSmbusReceiveByte,
58 EfiSmbusSendByte,
59 EfiSmbusReadByte,
60 EfiSmbusWriteByte,
61 EfiSmbusReadWord,
62 EfiSmbusWriteWord,
63 EfiSmbusReadBlock,
64 EfiSmbusWriteBlock,
65 EfiSmbusProcessCall,
66 EfiSmbusBWBRProcessCall
67 } EFI_SMBUS_OPERATION;
68
69 ///
70 /// EFI_SMBUS_DEVICE_COMMAND
71 ///
72 typedef UINTN EFI_SMBUS_DEVICE_COMMAND;
73
74 #endif
75