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
53
54
55
56
57
58
59
60
61
62
63
| /**
| *
| * Copyright (C) 2018, Marvell International Ltd. and its affiliates.
| *
| * SPDX-License-Identifier: BSD-2-Clause-Patent
| *
| **/
| #ifndef __MV_GPIO_LIB_H__
| #define __MV_GPIO_LIB_H__
|
| #include <Protocol/EmbeddedGpio.h>
|
| typedef enum {
| MV_GPIO_DRIVER_TYPE_SOC_CONTROLLER,
| MV_GPIO_DRIVER_TYPE_PCA95XX,
| } MV_GPIO_DRIVER_TYPE;
|
| typedef enum {
| MV_GPIO_AP806_CONTROLLER0,
| MV_GPIO_CP0_CONTROLLER0,
| MV_GPIO_CP0_CONTROLLER1,
| MV_GPIO_CP1_CONTROLLER0,
| MV_GPIO_CP1_CONTROLLER1,
| MV_GPIO_CP2_CONTROLLER0,
| MV_GPIO_CP2_CONTROLLER1,
| } MV_GPIO_SOC_CONTROLLER_TYPE;
|
| typedef enum {
| PCA9505_ID,
| PCA9534_ID,
| PCA9535_ID,
| PCA9536_ID,
| PCA9537_ID,
| PCA9538_ID,
| PCA9539_ID,
| PCA9554_ID,
| PCA9555_ID,
| PCA9556_ID,
| PCA9557_ID,
| PCA95XX_MAX_ID,
| } MV_GPIO_EXPANDER_TYPE_PCA95XX;
|
| typedef struct {
| VENDOR_DEVICE_PATH Header;
| MV_GPIO_DRIVER_TYPE GpioDriverType;
| EFI_DEVICE_PATH_PROTOCOL End;
| } MV_GPIO_DEVICE_PATH;
|
| typedef struct {
| MV_GPIO_DRIVER_TYPE ControllerType;
| UINTN ControllerId;
| UINTN PinNumber;
| BOOLEAN ActiveHigh;
| } MV_GPIO_PIN;
|
| EFI_STATUS
| EFIAPI
| MvGpioGetProtocol (
| IN MV_GPIO_DRIVER_TYPE GpioDriverType,
| IN OUT EMBEDDED_GPIO **GpioProtocol
| );
|
| #endif // __MV_GPIO_LIB_H__
|
|