3 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
11 #include <Library/IoLib.h>
12 #include <Library/OmapLib.h>
13 #include <Library/UefiBootServicesTableLib.h>
15 #include <Protocol/EmbeddedGpio.h>
17 #include <Omap3530/Omap3530.h>
21 IN EMBEDDED_GPIO
*This
,
22 IN EMBEDDED_GPIO_PIN Gpio
,
28 UINT32 DataInRegister
;
32 return EFI_UNSUPPORTED
;
35 Port
= GPIO_PORT(Gpio
);
38 DataInRegister
= GpioBase(Port
) + GPIO_DATAIN
;
40 if (MmioRead32 (DataInRegister
) & GPIO_DATAIN_MASK(Pin
)) {
51 IN EMBEDDED_GPIO
*This
,
52 IN EMBEDDED_GPIO_PIN Gpio
,
53 IN EMBEDDED_GPIO_MODE Mode
58 UINT32 OutputEnableRegister
;
59 UINT32 SetDataOutRegister
;
60 UINT32 ClearDataOutRegister
;
62 Port
= GPIO_PORT(Gpio
);
65 OutputEnableRegister
= GpioBase(Port
) + GPIO_OE
;
66 SetDataOutRegister
= GpioBase(Port
) + GPIO_SETDATAOUT
;
67 ClearDataOutRegister
= GpioBase(Port
) + GPIO_CLEARDATAOUT
;
72 MmioAndThenOr32(OutputEnableRegister
, ~GPIO_OE_MASK(Pin
), GPIO_OE_INPUT(Pin
));
75 case GPIO_MODE_OUTPUT_0
:
76 MmioWrite32 (ClearDataOutRegister
, GPIO_CLEARDATAOUT_BIT(Pin
));
77 MmioAndThenOr32(OutputEnableRegister
, ~GPIO_OE_MASK(Pin
), GPIO_OE_OUTPUT(Pin
));
80 case GPIO_MODE_OUTPUT_1
:
81 MmioWrite32 (SetDataOutRegister
, GPIO_SETDATAOUT_BIT(Pin
));
82 MmioAndThenOr32(OutputEnableRegister
, ~GPIO_OE_MASK(Pin
), GPIO_OE_OUTPUT(Pin
));
86 return EFI_UNSUPPORTED
;
94 IN EMBEDDED_GPIO
*This
,
95 IN EMBEDDED_GPIO_PIN Gpio
,
96 OUT EMBEDDED_GPIO_MODE
*Mode
99 return EFI_UNSUPPORTED
;
104 IN EMBEDDED_GPIO
*This
,
105 IN EMBEDDED_GPIO_PIN Gpio
,
106 IN EMBEDDED_GPIO_PULL Direction
109 return EFI_UNSUPPORTED
;
112 EMBEDDED_GPIO Gpio
= {
121 IN EFI_HANDLE ImageHandle
,
122 IN EFI_SYSTEM_TABLE
*SystemTable
127 Status
= gBS
->InstallMultipleProtocolInterfaces(&ImageHandle
, &gEmbeddedGpioProtocolGuid
, &Gpio
, NULL
);