TianoCore EDK2 master
|
Go to the source code of this file.
Data Structures | |
struct | _EFI_SPI_HC_PROTOCOL |
Macros | |
#define | EFI_SPI_HOST_GUID |
#define | EFI_SPI_HC_PROTOCOL_GUID EFI_SPI_HOST_GUID |
#define | HC_SUPPORTS_WRITE_ONLY_OPERATIONS BIT0 |
#define | HC_SUPPORTS_READ_ONLY_OPERATIONS BIT1 |
#define | HC_SUPPORTS_WRITE_THEN_READ_OPERATIONS BIT2 |
#define | HC_TX_FRAME_IN_MOST_SIGNIFICANT_BITS BIT3 |
#define | HC_RX_FRAME_IN_MOST_SIGNIFICANT_BITS BIT4 |
#define | HC_SUPPORTS_2_BIT_DATA_BUS_WIDTH BIT5 |
#define | HC_SUPPORTS_4_BIT_DATA_BUS_WIDTH BIT6 |
#define | HC_SUPPORTS_8_BIT_DATA_BUS_WIDTH BIT7 |
#define | HC_TRANSFER_SIZE_INCLUDES_OPCODE BIT8 |
#define | HC_TRANSFER_SIZE_INCLUDES_ADDRESS BIT9 |
Typedefs | |
typedef struct _EFI_SPI_HC_PROTOCOL | EFI_SPI_HC_PROTOCOL |
typedef EFI_STATUS(EFIAPI * | EFI_SPI_HC_PROTOCOL_CHIP_SELECT) (IN CONST EFI_SPI_HC_PROTOCOL *This, IN CONST EFI_SPI_PERIPHERAL *SpiPeripheral, IN BOOLEAN PinValue) |
typedef EFI_STATUS(EFIAPI * | EFI_SPI_HC_PROTOCOL_CLOCK) (IN CONST EFI_SPI_HC_PROTOCOL *This, IN CONST EFI_SPI_PERIPHERAL *SpiPeripheral, IN UINT32 *ClockHz) |
typedef EFI_STATUS(EFIAPI * | EFI_SPI_HC_PROTOCOL_TRANSACTION) (IN CONST EFI_SPI_HC_PROTOCOL *This, IN EFI_SPI_BUS_TRANSACTION *BusTransaction) |
Variables | |
EFI_GUID | gEfiSpiHcProtocolGuid |
This file defines the SPI Host Controller Protocol.
Copyright (c) 2017, Intel Corporation. All rights reserved.
Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file SpiHc.h.
#define EFI_SPI_HC_PROTOCOL_GUID EFI_SPI_HOST_GUID |
#define EFI_SPI_HOST_GUID |
#define HC_SUPPORTS_WRITE_ONLY_OPERATIONS BIT0 |
typedef struct _EFI_SPI_HC_PROTOCOL EFI_SPI_HC_PROTOCOL |
typedef EFI_STATUS(EFIAPI * EFI_SPI_HC_PROTOCOL_CHIP_SELECT) (IN CONST EFI_SPI_HC_PROTOCOL *This, IN CONST EFI_SPI_PERIPHERAL *SpiPeripheral, IN BOOLEAN PinValue) |
Assert or deassert the SPI chip select.
This routine is called at TPL_NOTIFY. Update the value of the chip select line for a SPI peripheral. The SPI bus layer calls this routine either in the board layer or in the SPI controller to manipulate the chip select pin at the start and end of a SPI transaction.
[in] | This | Pointer to an EFI_SPI_HC_PROTOCOL structure. |
[in] | SpiPeripheral | The address of an EFI_SPI_PERIPHERAL data structure describing the SPI peripheral whose chip select pin is to be manipulated. The routine may access the ChipSelectParameter field to gain sufficient context to complete the operati on. |
[in] | PinValue | The value to be applied to the chip select line of the SPI peripheral. |
EFI_SUCCESS | The chip select was set as requested |
EFI_NOT_READY | Support for the chip select is not properly initialized |
EFI_INVALID_PARAMETER | The ChipSeLect value or its contents are invalid |
typedef EFI_STATUS(EFIAPI * EFI_SPI_HC_PROTOCOL_CLOCK) (IN CONST EFI_SPI_HC_PROTOCOL *This, IN CONST EFI_SPI_PERIPHERAL *SpiPeripheral, IN UINT32 *ClockHz) |
Set up the clock generator to produce the correct clock frequency, phase and polarity for a SPI chip.
This routine is called at TPL_NOTIFY. This routine updates the clock generator to generate the correct frequency and polarity for the SPI clock.
[in] | This | Pointer to an EFI_SPI_HC_PROTOCOL structure. |
[in] | SpiPeripheral | Pointer to a EFI_SPI_PERIPHERAL data structure from which the routine can access the ClockParameter, ClockPhase and ClockPolarity fields. The routine also has access to the names for the SPI bus and chip which can be used during debugging. |
[in] | ClockHz | Pointer to the requested clock frequency. The SPI host controller will choose a supported clock frequency which is less then or equal to this value. Specify zero to turn the clock generator off. The actual clock frequency supported by the SPI host controller will be returned. |
EFI_SUCCESS | The clock was set up successfully |
EFI_UNSUPPORTED | The SPI controller was not able to support the frequency requested by ClockHz |
typedef EFI_STATUS(EFIAPI * EFI_SPI_HC_PROTOCOL_TRANSACTION) (IN CONST EFI_SPI_HC_PROTOCOL *This, IN EFI_SPI_BUS_TRANSACTION *BusTransaction) |
Perform the SPI transaction on the SPI peripheral using the SPI host controller.
This routine is called at TPL_NOTIFY. This routine synchronously returns EFI_SUCCESS indicating that the asynchronous SPI transaction was started. The routine then waits for completion of the SPI transaction prior to returning the final transaction status.
[in] | This | Pointer to an EFI_SPI_HC_PROTOCOL structure. |
[in] | BusTransaction | Pointer to a EFI_SPI_BUS_ TRANSACTION containing the description of the SPI transaction to perform. |
EFI_SUCCESS | The transaction completed successfully |
EFI_BAD_BUFFER_SIZE | The BusTransaction->WriteBytes value is invalid, or the BusTransaction->ReadinBytes value is invalid |
EFI_UNSUPPORTED | The BusTransaction-> Transaction Type is unsupported |