|
XenevaOS
|
#include <Pi/PiI2c.h>
Go to the source code of this file.
Classes | |
| struct | _EFI_PEI_I2C_MASTER_PPI |
Macros | |
| #define | EFI_PEI_I2C_MASTER_PPI_GUID { 0xb3bfab9b, 0x9f9c, 0x4e8b, { 0xad, 0x37, 0x7f, 0x8c, 0x51, 0xfc, 0x62, 0x80 }} |
Typedefs | |
| typedef struct _EFI_PEI_I2C_MASTER_PPI | EFI_PEI_I2C_MASTER_PPI |
| typedef EFI_STATUS(EFIAPI * | EFI_PEI_I2C_MASTER_PPI_SET_BUS_FREQUENCY) (IN EFI_PEI_I2C_MASTER_PPI *This, IN UINTN *BusClockHertz) |
| typedef EFI_STATUS(EFIAPI * | EFI_PEI_I2C_MASTER_PPI_RESET) (IN CONST EFI_PEI_I2C_MASTER_PPI *This) |
| typedef EFI_STATUS(EFIAPI * | EFI_PEI_I2C_MASTER_PPI_START_REQUEST) (IN CONST EFI_PEI_I2C_MASTER_PPI *This, IN UINTN SlaveAddress, IN EFI_I2C_REQUEST_PACKET *RequestPacket) |
Variables | |
| EFI_GUID | gEfiPeiI2cMasterPpiGuid |
This PPI manipulates the I2C host controller to perform transactions as a master on the I2C bus using the current state of any switches or multiplexers in the I2C bus.
Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.
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.
| #define EFI_PEI_I2C_MASTER_PPI_GUID { 0xb3bfab9b, 0x9f9c, 0x4e8b, { 0xad, 0x37, 0x7f, 0x8c, 0x51, 0xfc, 0x62, 0x80 }} |
| typedef struct _EFI_PEI_I2C_MASTER_PPI EFI_PEI_I2C_MASTER_PPI |
| typedef EFI_STATUS(EFIAPI * EFI_PEI_I2C_MASTER_PPI_RESET) (IN CONST EFI_PEI_I2C_MASTER_PPI *This) |
Reset the I2C controller and configure it for use.
| This | Pointer to an EFI_PEI_I2C_MASTER_PPI structure. |
| EFI_SUCCESS | The reset completed successfully. |
| EFI_DEVICE_ERROR | The reset operation failed. |
| typedef EFI_STATUS(EFIAPI * EFI_PEI_I2C_MASTER_PPI_SET_BUS_FREQUENCY) (IN EFI_PEI_I2C_MASTER_PPI *This, IN UINTN *BusClockHertz) |
Set the frequency for the I2C clock line.
| This | Pointer to an EFI_PEI_I2C_MASTER_PPI structure. |
| BusClockHertz | Pointer to the requested I2C bus clock frequency in Hertz. Upon return this value contains the actual frequency in use by the I2C controller. |
| EFI_SUCCESS | The bus frequency was set successfully. |
| EFI_INVALID_PARAMETER | BusClockHertz is NULL |
| EFI_UNSUPPORTED | The controller does not support this frequency. |
| typedef EFI_STATUS(EFIAPI * EFI_PEI_I2C_MASTER_PPI_START_REQUEST) (IN CONST EFI_PEI_I2C_MASTER_PPI *This, IN UINTN SlaveAddress, IN EFI_I2C_REQUEST_PACKET *RequestPacket) |
Start an I2C transaction on the host controller.
| This | Pointer to an EFI_PEI_I2C_MASTER_PPI structure. |
| SlaveAddress | Address of the device on the I2C bus. Set the I2C_ADDRESSING_10_BIT when using 10-bit addresses, clear this bit for 7-bit addressing. Bits 0-6 are used for 7-bit I2C slave addresses and bits 0-9 are used for 10-bit I2C slave addresses. |
| RequestPacket | Pointer to an EFI_I2C_REQUEST_PACKET structure describing the I2C transaction. |
| EFI_SUCCESS | The transaction completed successfully. |
| EFI_BAD_BUFFER_SIZE | The RequestPacket->LengthInBytes value is too large. |
| EFI_DEVICE_ERROR | There was an I2C error (NACK) during the transaction. |
| EFI_INVALID_PARAMETER | RequestPacket is NULL |
| EFI_NO_RESPONSE | The I2C device is not responding to the slave address. EFI_DEVICE_ERROR will be returned if the controller cannot distinguish when the NACK occurred. |
| EFI_NOT_FOUND | Reserved bit set in the SlaveAddress parameter |
| EFI_OUT_OF_RESOURCES | Insufficient memory for I2C transaction |
| EFI_UNSUPPORTED | The controller does not support the requested transaction. |
|
extern |