Add I2C related definition in PI 1.3 spec.
Signed-off-by: Elvin Li <elvin.li@intel.com> Reviewed-by: Leahy Leroy P <leroy.p.leahy@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14548 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
110
MdePkg/Include/Protocol/I2cEnumerate.h
Normal file
110
MdePkg/Include/Protocol/I2cEnumerate.h
Normal file
@@ -0,0 +1,110 @@
|
||||
/** @file
|
||||
I2C Device Enumerate Protocol as defined in the PI 1.3 specification.
|
||||
|
||||
This protocol supports the enumerations of device on the I2C bus.
|
||||
|
||||
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
@par Revision Reference:
|
||||
This protocol is from PI Version 1.3.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __I2C_ENUMERATE_H__
|
||||
#define __I2C_ENUMERATE_H__
|
||||
|
||||
#include <Pi/PiI2c.h>
|
||||
|
||||
#define EFI_I2C_ENUMERATE_PROTOCOL_GUID { 0xda8cd7c4, 0x1c00, 0x49e2, { 0x80, 0x3e, 0x52, 0x14, 0xe7, 0x01, 0x89, 0x4c }}
|
||||
|
||||
typedef struct _EFI_I2C_ENUMERATE_PROTOCOL EFI_I2C_ENUMERATE_PROTOCOL;
|
||||
|
||||
/**
|
||||
Enumerate the I2C devices
|
||||
|
||||
This function enables the caller to traverse the set of I2C devices
|
||||
on an I2C bus.
|
||||
|
||||
@param[in] This The platform data for the next device on
|
||||
the I2C bus was returned successfully.
|
||||
@param[in, out] Device Pointer to a buffer containing an
|
||||
EFI_I2C_DEVICE structure. Enumeration is
|
||||
started by setting the initial EFI_I2C_DEVICE
|
||||
structure pointer to NULL. The buffer
|
||||
receives an EFI_I2C_DEVICE structure pointer
|
||||
to the next I2C device.
|
||||
|
||||
@retval EFI_SUCCESS The platform data for the next device on
|
||||
the I2C bus was returned successfully.
|
||||
@retval EFI_INVALID_PARAMETER Device is NULL
|
||||
@retval EFI_NO_MAPPING *Device does not point to a valid
|
||||
EFI_I2C_DEVICE structure returned in a
|
||||
previous call Enumerate().
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_I2C_ENUMERATE_PROTOCOL_ENUMERATE) (
|
||||
IN CONST EFI_I2C_ENUMERATE_PROTOCOL *This,
|
||||
IN OUT CONST EFI_I2C_DEVICE **Device
|
||||
);
|
||||
|
||||
/**
|
||||
Get the requested I2C bus frequency for a specified bus configuration.
|
||||
|
||||
This function returns the requested I2C bus clock frequency for the
|
||||
I2cBusConfiguration. This routine is provided for diagnostic purposes
|
||||
and is meant to be called after calling Enumerate to get the
|
||||
I2cBusConfiguration value.
|
||||
|
||||
@param[in] This Pointer to an EFI_I2C_ENUMERATE_PROTOCOL
|
||||
structure.
|
||||
@param[in] I2cBusConfiguration I2C bus configuration to access the I2C
|
||||
device
|
||||
@param[out] *BusClockHertz Pointer to a buffer to receive the I2C
|
||||
bus clock frequency in Hertz
|
||||
|
||||
@retval EFI_SUCCESS The I2C bus frequency was returned
|
||||
successfully.
|
||||
@retval EFI_INVALID_PARAMETER BusClockHertz was NULL
|
||||
@retval EFI_NO_MAPPING Invalid I2cBusConfiguration value
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_I2C_ENUMERATE_PROTOCOL_GET_BUS_FREQUENCY) (
|
||||
IN CONST EFI_I2C_ENUMERATE_PROTOCOL *This,
|
||||
IN UINTN I2cBusConfiguration,
|
||||
OUT UINTN *BusClockHertz
|
||||
);
|
||||
|
||||
///
|
||||
/// I2C Enumerate protocol
|
||||
///
|
||||
struct _EFI_I2C_ENUMERATE_PROTOCOL {
|
||||
///
|
||||
/// Traverse the set of I2C devices on an I2C bus. This routine
|
||||
/// returns the next I2C device on an I2C bus.
|
||||
///
|
||||
EFI_I2C_ENUMERATE_PROTOCOL_ENUMERATE Enumerate;
|
||||
|
||||
///
|
||||
/// Get the requested I2C bus frequency for a specified bus
|
||||
/// configuration.
|
||||
///
|
||||
EFI_I2C_ENUMERATE_PROTOCOL_GET_BUS_FREQUENCY GetBusFrequency;
|
||||
};
|
||||
|
||||
///
|
||||
/// Reference to variable defined in the .DEC file
|
||||
///
|
||||
extern EFI_GUID gEfiI2cEnumerateProtocolGuid;
|
||||
|
||||
#endif // __I2C_ENUMERATE_H__
|
Reference in New Issue
Block a user