Home | History | Annotate | Download | only in Protocol
      1 /** @file
      2 *
      3 *  Copyright (c) 2015, Hisilicon Limited. All rights reserved.
      4 *  Copyright (c) 2015, Linaro Limited. All rights reserved.
      5 *
      6 *  This program and the accompanying materials
      7 *  are licensed and made available under the terms and conditions of the BSD License
      8 *  which accompanies this distribution.  The full text of the license may be found at
      9 *  http://opensource.org/licenses/bsd-license.php
     10 *
     11 *  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     12 *  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     13 *
     14 **/
     15 
     16 
     17 #ifndef _HISI_SPI_FLASH_PROTOCOL_H_
     18 #define _HISI_SPI_FLASH_PROTOCOL_H_
     19 
     20 typedef struct _HISI_SPI_FLASH_PROTOCOL HISI_SPI_FLASH_PROTOCOL;
     21 
     22 typedef
     23 EFI_STATUS
     24 (EFIAPI *HISI_SPI_FLASH_ERASE_INTERFACE) (
     25     IN HISI_SPI_FLASH_PROTOCOL   *This,
     26     IN UINT32                  Offset,
     27     IN UINT32                  ulLength
     28     );
     29 
     30 typedef
     31 EFI_STATUS
     32 (EFIAPI *HISI_SPI_FLASH_WRITE_INTERFACE) (
     33     IN HISI_SPI_FLASH_PROTOCOL  *This,
     34     IN  UINT32                 Offset,
     35     IN  UINT8                 *Buffer,
     36     IN  UINT32                 ulLength
     37     );
     38 
     39 typedef
     40 EFI_STATUS
     41 (EFIAPI *HISI_SPI_FLASH_READ_INTERFACE) (
     42     IN HISI_SPI_FLASH_PROTOCOL   *This,
     43     IN UINT32                  Offset,
     44     IN OUT UINT8              *Buffer,
     45     IN UINT32                  ulLength
     46     );
     47 
     48 typedef
     49 EFI_STATUS
     50 (EFIAPI *HISI_SPI_FLASH_ERASE_WRITE_INTERFACE) (
     51     IN HISI_SPI_FLASH_PROTOCOL  *This,
     52     IN  UINT32                 Offset,
     53     IN  UINT8                 *Buffer,
     54     IN  UINT32                 ulLength
     55     );
     56 
     57 struct _HISI_SPI_FLASH_PROTOCOL {
     58     HISI_SPI_FLASH_ERASE_INTERFACE             Erase;
     59     HISI_SPI_FLASH_WRITE_INTERFACE             Write;
     60     HISI_SPI_FLASH_READ_INTERFACE              Read;
     61     HISI_SPI_FLASH_ERASE_WRITE_INTERFACE       EraseWrite;
     62 };
     63 
     64 extern EFI_GUID gHisiSpiFlashProtocolGuid;
     65 
     66 #endif
     67