/** * * Copyright (c) 2018, Marvell International Ltd. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent * **/ #ifndef __MV_PCA953X_H__ #define __MV_PCA953X_H__ #include #include #include #include #include #include #include #include #include #include #include #include #include #define PCA95XX_GPIO_SIGNATURE SIGNATURE_32 ('I', 'O', 'E', 'X') #define PCA95XX_INPUT_REG 0x0 #define PCA95XX_OUTPUT_REG 0x2 #define PCA95XX_DIRECTION_REG 0x6 #define PCA95XX_BANK_SIZE 8 #define PCA95XX_OPERATION_COUNT 2 #define PCA95XX_OPERATION_LENGTH 1 typedef enum { PCA9505_PIN_COUNT = 40, PCA9534_PIN_COUNT = 8, PCA9535_PIN_COUNT = 16, PCA9536_PIN_COUNT = 4, PCA9537_PIN_COUNT = 4, PCA9538_PIN_COUNT = 8, PCA9539_PIN_COUNT = 16, PCA9554_PIN_COUNT = 8, PCA9555_PIN_COUNT = 16, PCA9556_PIN_COUNT = 16, PCA9557_PIN_COUNT = 16, } PCA95XX_PIN_COUNT; typedef struct { EMBEDDED_GPIO GpioProtocol; MV_GPIO_EXPANDER *GpioExpanders; UINTN GpioExpanderCount; UINTN Signature; EFI_HANDLE ControllerHandle; } PCA95XX; #endif