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