The GPIO driver provides an API to configure and access device Input/Output pins.
The functions and other declarations used in this driver are in cy_gpio.h. You can include cy_pdl.h to get access to all functions and declarations in the PDL.
IO pins include all general purpose types such as GPIO, SIO, HSIO, AUXIO, and their variants.
Initialization can be performed either at the port level or by configuring the individual pins. For efficient use of code space, port configuration should be used in the field. Refer to the product device header files for the list of supported ports and pins.
A port is represented by GPIO_PRT_Type and a pin is represented by a number 0 to 7.
For PSoC 64 devices the the un-intended protected pins (due to constrain on PPU configuration) are modified using PRA driver. But the GPIO diver does not modify the intended protected pins .
Once the pin/port initialization is complete, each pin can be accessed by specifying the port (GPIO_PRT_Type) and the pin (0-7) in the provided API functions.
Multiple pins on a port can be updated using direct port register writes with an appropriate port mask. An example is shown below, highlighting the different ways of configuring Port 1 pins using:
Refer to the technical reference manual (TRM) and the device datasheet.
Version | Changes | Reason for Change |
---|---|---|
1.120 | Added new APIs: Cy_GPIO_WritePort. | New functionality. |
Reworked API structure to support new devices. | Code enhancement. | |
1.110 | Added support for SMIF GPIO PORT1 and PORT2 and reverted to GPIO inline functions. | Code enhancement and support for new GPIO port for SMIF. |
1.100 | Added support for TRAVEO™ II Body Entry devices. Updated pre-processor checks to check for GPIO auto-leveling capability rather than rely on IOSS version. | Code enhancement and support for new devices. |
1.90 | Updated APIs Cy_GPIO_Port_Init, Cy_GPIO_Port_Deinit, Cy_GPIO_GetDrivemode. | Fixed coverity defects. |
1.80 | Updated Cy_GPIO_SetDrivemode and Cy_GPIO_GetDrivemode APIs. | Updated drive mode configuration for CAT1D devices. |
Fixed MISRA 2012 violations. | MISRA 2012 compliance. | |
1.70 | Updated driver to support the CAT1D family of devices. | Added new family of devices. |
1.60 | Added Cy_GPIO_SetVtripAuto and Cy_GPIO_GetVtripAuto APIs for configuring GPIO input buffer voltage for automotive compatible or not, for CAT1C devices. | New APIs support for CAT1C devices. |
Fixed unused variables error. | Minor error fixes. | |
1.50.1 | Updated doxygen for External clock source to HF0. | Documentation enhancement. |
1.50 | Modified Cy_GPIO_Pin_Init, Cy_GPIO_Pin_FastInit, and Cy_GPIO_SetDrivemode APIs to catch wrong drive modes. | Defect fix. |
1.40 | Changes in Support of the new family of devices | Added new family of devices |
Changes in support of Secure pins used for External clocks on Secure devices | Added support for accessing External clocks protected pins | |
1.30 | Fixed/documented MISRA 2012 violations. | MISRA 2012 compliance. |
1.20.1 | Minor documentation updates. | Documentation enhancement. |
1.20 | Flattened the organization of the driver source code into the single source directory and the single include directory. | Driver library directory-structure simplification. |
Added the functions for configuring the AMux bus splitter switch cells: | Added a new functionality related to AMux bus. | |
Added register access layer. Use register access macros instead of direct register access using dereferenced pointers. | Makes register access device-independent, so that the PDL does not need to be recompiled for each supported part number. | |
1.10.1 | Updated description for the functions: Cy_GPIO_GetInterruptStatus, Cy_GPIO_GetInterruptMask, Cy_GPIO_GetInterruptStatusMasked. Minor documentation edits. | Documentation update and clarification |
1.10 | Added input parameter validation to the API functions | |
1.0 | Initial version |
API Reference | |
Macros | |
Functions | |
Data Structures | |
Enumerated Types | |