1 /****************************************************************************** 2 * Filename: gpio_doc.h 3 * 4 * Copyright (c) 2022 Texas Instruments Incorporated 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are met: 8 * 9 * 1) Redistributions of source code must retain the above copyright notice, 10 * this list of conditions and the following disclaimer. 11 * 12 * 2) Redistributions in binary form must reproduce the above copyright notice, 13 * this list of conditions and the following disclaimer in the documentation 14 * and/or other materials provided with the distribution. 15 * 16 * 3) Neither the name of the copyright holder nor the names of its 17 * contributors may be used to endorse or promote products derived from this 18 * software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30 * POSSIBILITY OF SUCH DAMAGE. 31 * 32 ******************************************************************************/ 33 //! \addtogroup gpio_api 34 //! @{ 35 //! \section sec_gpio Introduction 36 //! 37 //! The GPIO module allows software to control the pins of the device directly. 38 //! 39 //! The System CPU can access the GPIO module to read the value of any DIO of the device and if the IOC 40 //! module has been configured such that one or more DIOs are GPIO controlled (software controlled) the 41 //! System CPU can write these DIOs through the GPIO module. 42 //! 43 //! The IOC module can also be configured to generate events on edge detection and these events can be 44 //! read and cleared in the GPIO module by the System CPU. 45 //! 46 //! \section sec_gpio_api API 47 //! 48 //! The API functions can be grouped like this: 49 //! 50 //! Set and get direction of DIO (output enable): 51 //! - \ref GPIOSetOutputEnableDio() 52 //! - \ref GPIOSetOutputEnableMultiDio() 53 //! - \ref GPIOGetOutputEnableDio() 54 //! - \ref GPIOGetOutputEnableMultiDio() 55 //! 56 //! Write DIO (requires IOC to be configured for GPIO usage): 57 //! - \ref GPIOWriteDio() 58 //! - \ref GPIOWriteMultiDio() 59 //! 60 //! Set, clear, or toggle DIO (requires IOC to be configured for GPIO usage): 61 //! - \ref GPIOSetDio() 62 //! - \ref GPIOSetMultiDio() 63 //! - \ref GPIOClearDio() 64 //! - \ref GPIOClearMultiDio() 65 //! - \ref GPIOToggleDio() 66 //! - \ref GPIOToggleMultiDio() 67 //! 68 //! Read DIO (even if IOC is NOT configured for GPIO usage; however, the DIO must be configured for input enable in 69 //! IOC): 70 //! - \ref GPIOReadDio() 71 //! - \ref GPIOReadMultiDio() 72 //! 73 //! Read or clear events (even if IOC is NOT configured for GPIO usage; however, the DIO must be configured for input 74 //! enable in IOC): 75 //! - \ref GPIOGetEventDio() 76 //! - \ref GPIOGetEventMultiDio() 77 //! - \ref GPIOClearEventDio() 78 //! - \ref GPIOClearEventMultiDio() 79 //! 80 //! @} 81