-/** @file
-
- Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
-
- This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#ifndef __EMBEDDED_GPIO_H__
-#define __EMBEDDED_GPIO_H__
-
-//
-// Protocol interface structure
-//
-typedef struct _EMBEDDED_GPIO EMBEDDED_GPIO;
-
-//
-// Data Types
-//
-typedef UINTN EMBEDDED_GPIO_PIN;
-
-#define GPIO(Port, Pin) ((EMBEDDED_GPIO_PIN)(((Port) << (16)) | (Pin)))
-#define GPIO_PIN(x) ((EMBEDDED_GPIO_PIN)(x) & (0xFFFF))
-#define GPIO_PORT(x) ((EMBEDDED_GPIO_PIN)(x) >> (16))
-
-typedef enum {
- GPIO_MODE_INPUT = 0x00,
- GPIO_MODE_OUTPUT_0 = 0x0E,
- GPIO_MODE_OUTPUT_1 = 0x0F,
- GPIO_MODE_SPECIAL_FUNCTION_2 = 0x02,
- GPIO_MODE_SPECIAL_FUNCTION_3 = 0x03,
- GPIO_MODE_SPECIAL_FUNCTION_4 = 0x04,
- GPIO_MODE_SPECIAL_FUNCTION_5 = 0x05,
- GPIO_MODE_SPECIAL_FUNCTION_6 = 0x06,
- GPIO_MODE_SPECIAL_FUNCTION_7 = 0x07
-} EMBEDDED_GPIO_MODE;
-
-typedef enum {
- GPIO_PULL_NONE,
- GPIO_PULL_UP,
- GPIO_PULL_DOWN
-} EMBEDDED_GPIO_PULL;
-
-//
-// Function Prototypes
-//
-typedef
-EFI_STATUS
-(EFIAPI *EMBEDDED_GPIO_GET) (
- IN EMBEDDED_GPIO *This,
- IN EMBEDDED_GPIO_PIN Gpio,
- OUT UINTN *Value
- );
-/*++
-
-Routine Description:
-
- Gets the state of a GPIO pin
-
-Arguments:
-
- This - pointer to protocol
- Gpio - which pin to read
- Value - state of the pin
-
-Returns:
-
- EFI_SUCCESS - GPIO state returned in Value
-
---*/
-
-
-typedef
-EFI_STATUS
-(EFIAPI *EMBEDDED_GPIO_SET) (
- IN EMBEDDED_GPIO *This,
- IN EMBEDDED_GPIO_PIN Gpio,
- IN EMBEDDED_GPIO_MODE Mode
- );
-/*++
-
-Routine Description:
-
- Sets the state of a GPIO pin
-
-Arguments:
-
- This - pointer to protocol
- Gpio - which pin to modify
- Mode - mode to set
-
-Returns:
-
- EFI_SUCCESS - GPIO set as requested
-
---*/
-
-
-typedef
-EFI_STATUS
-(EFIAPI *EMBEDDED_GPIO_GET_MODE) (
- IN EMBEDDED_GPIO *This,
- IN EMBEDDED_GPIO_PIN Gpio,
- OUT EMBEDDED_GPIO_MODE *Mode
- );
-/*++
-
-Routine Description:
-
- Gets the mode (function) of a GPIO pin
-
-Arguments:
-
- This - pointer to protocol
- Gpio - which pin
- Mode - pointer to output mode value
-
-Returns:
-
- EFI_SUCCESS - mode value retrieved
-
---*/
-
-
-typedef
-EFI_STATUS
-(EFIAPI *EMBEDDED_GPIO_SET_PULL) (
- IN EMBEDDED_GPIO *This,
- IN EMBEDDED_GPIO_PIN Gpio,
- IN EMBEDDED_GPIO_PULL Direction
- );
-/*++
-
-Routine Description:
-
- Sets the pull-up / pull-down resistor of a GPIO pin
-
-Arguments:
-
- This - pointer to protocol
- Gpio - which pin
- Direction - pull-up, pull-down, or none
-
-Returns:
-
- EFI_SUCCESS - pin was set
-
---*/
-
-
-
-struct _EMBEDDED_GPIO {
- EMBEDDED_GPIO_GET Get;
- EMBEDDED_GPIO_SET Set;
- EMBEDDED_GPIO_GET_MODE GetMode;
- EMBEDDED_GPIO_SET_PULL SetPull;
-};
-
-extern EFI_GUID gEmbeddedGpioProtocolGuid;
-
-#endif
+/** @file\r
+\r
+ Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
+\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef __EMBEDDED_GPIO_H__\r
+#define __EMBEDDED_GPIO_H__\r
+\r
+//\r
+// Protocol interface structure\r
+//\r
+typedef struct _EMBEDDED_GPIO EMBEDDED_GPIO;\r
+\r
+//\r
+// Data Types\r
+//\r
+typedef UINTN EMBEDDED_GPIO_PIN;\r
+\r
+#define GPIO(Port, Pin) ((EMBEDDED_GPIO_PIN)(((Port) << (16)) | (Pin)))\r
+#define GPIO_PIN(x) ((EMBEDDED_GPIO_PIN)(x) & (0xFFFF))\r
+#define GPIO_PORT(x) ((EMBEDDED_GPIO_PIN)(x) >> (16))\r
+\r
+typedef enum {\r
+ GPIO_MODE_INPUT = 0x00,\r
+ GPIO_MODE_OUTPUT_0 = 0x0E,\r
+ GPIO_MODE_OUTPUT_1 = 0x0F,\r
+ GPIO_MODE_SPECIAL_FUNCTION_2 = 0x02,\r
+ GPIO_MODE_SPECIAL_FUNCTION_3 = 0x03,\r
+ GPIO_MODE_SPECIAL_FUNCTION_4 = 0x04,\r
+ GPIO_MODE_SPECIAL_FUNCTION_5 = 0x05,\r
+ GPIO_MODE_SPECIAL_FUNCTION_6 = 0x06,\r
+ GPIO_MODE_SPECIAL_FUNCTION_7 = 0x07\r
+} EMBEDDED_GPIO_MODE;\r
+\r
+typedef enum {\r
+ GPIO_PULL_NONE,\r
+ GPIO_PULL_UP,\r
+ GPIO_PULL_DOWN\r
+} EMBEDDED_GPIO_PULL;\r
+\r
+//\r
+// Function Prototypes\r
+//\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EMBEDDED_GPIO_GET)(\r
+ IN EMBEDDED_GPIO *This,\r
+ IN EMBEDDED_GPIO_PIN Gpio,\r
+ OUT UINTN *Value\r
+ );\r
+\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ Gets the state of a GPIO pin\r
+\r
+Arguments:\r
+\r
+ This - pointer to protocol\r
+ Gpio - which pin to read\r
+ Value - state of the pin\r
+\r
+Returns:\r
+\r
+ EFI_SUCCESS - GPIO state returned in Value\r
+\r
+--*/\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EMBEDDED_GPIO_SET)(\r
+ IN EMBEDDED_GPIO *This,\r
+ IN EMBEDDED_GPIO_PIN Gpio,\r
+ IN EMBEDDED_GPIO_MODE Mode\r
+ );\r
+\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ Sets the state of a GPIO pin\r
+\r
+Arguments:\r
+\r
+ This - pointer to protocol\r
+ Gpio - which pin to modify\r
+ Mode - mode to set\r
+\r
+Returns:\r
+\r
+ EFI_SUCCESS - GPIO set as requested\r
+\r
+--*/\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EMBEDDED_GPIO_GET_MODE)(\r
+ IN EMBEDDED_GPIO *This,\r
+ IN EMBEDDED_GPIO_PIN Gpio,\r
+ OUT EMBEDDED_GPIO_MODE *Mode\r
+ );\r
+\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ Gets the mode (function) of a GPIO pin\r
+\r
+Arguments:\r
+\r
+ This - pointer to protocol\r
+ Gpio - which pin\r
+ Mode - pointer to output mode value\r
+\r
+Returns:\r
+\r
+ EFI_SUCCESS - mode value retrieved\r
+\r
+--*/\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EMBEDDED_GPIO_SET_PULL)(\r
+ IN EMBEDDED_GPIO *This,\r
+ IN EMBEDDED_GPIO_PIN Gpio,\r
+ IN EMBEDDED_GPIO_PULL Direction\r
+ );\r
+\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ Sets the pull-up / pull-down resistor of a GPIO pin\r
+\r
+Arguments:\r
+\r
+ This - pointer to protocol\r
+ Gpio - which pin\r
+ Direction - pull-up, pull-down, or none\r
+\r
+Returns:\r
+\r
+ EFI_SUCCESS - pin was set\r
+\r
+--*/\r
+\r
+struct _EMBEDDED_GPIO {\r
+ EMBEDDED_GPIO_GET Get;\r
+ EMBEDDED_GPIO_SET Set;\r
+ EMBEDDED_GPIO_GET_MODE GetMode;\r
+ EMBEDDED_GPIO_SET_PULL SetPull;\r
+};\r
+\r
+extern EFI_GUID gEmbeddedGpioProtocolGuid;\r
+\r
+typedef struct _GPIO_CONTROLLER GPIO_CONTROLLER;\r
+typedef struct _PLATFORM_GPIO_CONTROLLER PLATFORM_GPIO_CONTROLLER;\r
+\r
+struct _GPIO_CONTROLLER {\r
+ UINTN RegisterBase;\r
+ UINTN GpioIndex;\r
+ UINTN InternalGpioCount;\r
+};\r
+\r
+struct _PLATFORM_GPIO_CONTROLLER {\r
+ UINTN GpioCount;\r
+ UINTN GpioControllerCount;\r
+ GPIO_CONTROLLER *GpioController;\r
+};\r
+\r
+extern EFI_GUID gPlatformGpioProtocolGuid;\r
+\r
+#endif\r