/** @file Support for IO expander TCA6424. Copyright (c) 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _GPIO_EXPANDER_LIB_H_ #define _GPIO_EXPANDER_LIB_H_ #include #include #include #include #include #include #include /** Set the Direction value for the given Expander Gpio pin. This function is to Set the direction value for the GPIO Pin within the giving Expander. @param[in] Expander Expander Value with in the Contoller @param[in] Pin Pin with in the Expnader Value @param[in] Value none **/ VOID GpioExpSetDirection ( IN UINT8 Expander, IN UINT8 Pin, IN UINT8 Direction ); /** Set the input value for the given Expander Gpio pin. This function is to get the input value for the GPIO Pin within the giving Expander. @param[in] Expander Expander Value with in the Contoller @param[in] Pin Pin with in the Expnader Value @param[in] Value none **/ VOID GpioExpSetPolarity ( IN UINT8 Expander, IN UINT8 Pin, IN UINT8 Polarity ); /** Set the Output value for the given Expander Gpio pin. This function is to Set the Output value for the GPIO Pin within the giving Expander. @param[in] Expander Expander Value with in the Contoller @param[in] Pin Pin with in the Expnader Value @param[in] Value none **/ VOID GpioExpSetOutput ( IN UINT8 Expander, IN UINT8 Pin, IN UINT8 Value ); /** Returns the data from register value giving in the input. This function is to get the data from the Expander Registers by following the I2C Protocol communication @param[in] Bar0 Bar address of the SerialIo Controller @param[in] Address Expander Value with in the Contoller @param[in] Register Address of Input/Output/Configure/Polarity registers with in the Expander @retval UINT8 Value returned from the register **/ UINT8 GpioExpGetInput ( IN UINT8 Expander, IN UINT8 Pin ); /** Configures all registers of a single IO Expander in one go. @param[in] Expander Expander number (0/1) @param[in] Direction Bit-encoded direction values. BIT0 is for pin0, etc. 0=output, 1=input @param[in] Polarity Bit-encoded input inversion values. BIT0 is for pin0, etc. 0=normal, 1=inversion @param[in] Output Bit-encoded output state, ignores polarity, only applicable if direction=INPUT. BIT0 is for pin0, etc. 0=low, 1=high **/ VOID GpioExpBulkConfig ( IN UINT8 Expander, IN UINT32 Direction, IN UINT32 Polarity, IN UINT32 Output ); /** Returns the Controller on which GPIO expander is present. This function returns the Controller value @param[out] Controller Pointer to a Controller value on which I2C expander is configured. @retval EFI_SUCCESS non. **/ EFI_STATUS GpioExpGetController ( OUT UINT8 *Controller ); #endif