hc
2024-03-22 a0752693d998599af469473b8dc239ef973a012f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/** I2cDxe.h
  Header defining the constant, base address amd function for I2C controller
 
  Copyright 2017-2020 NXP
 
  SPDX-License-Identifier: BSD-2-Clause-Patent
 
**/
 
#ifndef I2C_DXE_H_
#define I2C_DXE_H_
 
#include <Library/UefiLib.h>
#include <Uefi.h>
 
#include <Protocol/I2cMaster.h>
#include <Protocol/NonDiscoverableDevice.h>
 
#define NXP_I2C_SIGNATURE         SIGNATURE_32 ('N', 'I', '2', 'C')
#define NXP_I2C_FROM_THIS(a)      CR ((a), NXP_I2C_MASTER, \
                                    I2cMaster, NXP_I2C_SIGNATURE)
 
extern EFI_COMPONENT_NAME2_PROTOCOL gNxpI2cDriverComponentName2;
 
#pragma pack(1)
typedef struct {
  VENDOR_DEVICE_PATH              Vendor;
  UINT64                          MmioBase;
  EFI_DEVICE_PATH_PROTOCOL        End;
} NXP_I2C_DEVICE_PATH;
#pragma pack()
 
typedef struct {
  UINT32                          Signature;
  EFI_I2C_MASTER_PROTOCOL         I2cMaster;
  NXP_I2C_DEVICE_PATH             DevicePath;
  NON_DISCOVERABLE_DEVICE         *Dev;
} NXP_I2C_MASTER;
 
EFI_STATUS
NxpI2cInit (
  IN EFI_HANDLE  DriverBindingHandle,
  IN EFI_HANDLE  ControllerHandle
  );
 
EFI_STATUS
NxpI2cRelease (
  IN EFI_HANDLE  DriverBindingHandle,
  IN EFI_HANDLE  ControllerHandle
  );
 
#endif //I2C_DXE_H_