| //***************************************************************************** |
| // |
| // pin.h |
| // |
| // Defines and Macros for the pin mux module |
| // |
| // Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ |
| // |
| // |
| // Redistribution and use in source and binary forms, with or without |
| // modification, are permitted provided that the following conditions |
| // are met: |
| // |
| // Redistributions of source code must retain the above copyright |
| // notice, this list of conditions and the following disclaimer. |
| // |
| // Redistributions in binary form must reproduce the above copyright |
| // notice, this list of conditions and the following disclaimer in the |
| // documentation and/or other materials provided with the |
| // distribution. |
| // |
| // Neither the name of Texas Instruments Incorporated nor the names of |
| // its contributors may be used to endorse or promote products derived |
| // from this software without specific prior written permission. |
| // |
| // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| // |
| //***************************************************************************** |
| |
| #ifndef __PIN_H__ |
| #define __PIN_H__ |
| |
| //***************************************************************************** |
| // |
| // If building with a C++ compiler, make all of the definitions in this header |
| // have a C binding. |
| // |
| //***************************************************************************** |
| #ifdef __cplusplus |
| extern "C" |
| { |
| #endif |
| |
| //***************************************************************************** |
| // Macros Defining Pins |
| //***************************************************************************** |
| |
| #define PIN_01 0x00000000 |
| #define PIN_02 0x00000001 |
| #define PIN_03 0x00000002 |
| #define PIN_04 0x00000003 |
| #define PIN_05 0x00000004 |
| #define PIN_06 0x00000005 |
| #define PIN_07 0x00000006 |
| #define PIN_08 0x00000007 |
| #define PIN_11 0x0000000A |
| #define PIN_12 0x0000000B |
| #define PIN_13 0x0000000C |
| #define PIN_14 0x0000000D |
| #define PIN_15 0x0000000E |
| #define PIN_16 0x0000000F |
| #define PIN_17 0x00000010 |
| #define PIN_18 0x00000011 |
| #define PIN_19 0x00000012 |
| #define PIN_20 0x00000013 |
| #define PIN_21 0x00000014 |
| #define PIN_45 0x0000002C |
| #define PIN_46 0x0000002D |
| #define PIN_47 0x0000002E |
| #define PIN_48 0x0000002F |
| #define PIN_49 0x00000030 |
| #define PIN_50 0x00000031 |
| #define PIN_52 0x00000033 |
| #define PIN_53 0x00000034 |
| #define PIN_55 0x00000036 |
| #define PIN_56 0x00000037 |
| #define PIN_57 0x00000038 |
| #define PIN_58 0x00000039 |
| #define PIN_59 0x0000003A |
| #define PIN_60 0x0000003B |
| #define PIN_61 0x0000003C |
| #define PIN_62 0x0000003D |
| #define PIN_63 0x0000003E |
| #define PIN_64 0x0000003F |
| |
| |
| |
| //***************************************************************************** |
| // Macros that can be used with PinConfigSet(), PinTypeGet(), PinStrengthGet() |
| //***************************************************************************** |
| |
| #define PIN_MODE_0 0x00000000 |
| #define PIN_MODE_1 0x00000001 |
| #define PIN_MODE_2 0x00000002 |
| #define PIN_MODE_3 0x00000003 |
| #define PIN_MODE_4 0x00000004 |
| #define PIN_MODE_5 0x00000005 |
| #define PIN_MODE_6 0x00000006 |
| #define PIN_MODE_7 0x00000007 |
| #define PIN_MODE_8 0x00000008 |
| #define PIN_MODE_9 0x00000009 |
| #define PIN_MODE_10 0x0000000A |
| #define PIN_MODE_11 0x0000000B |
| #define PIN_MODE_12 0x0000000C |
| #define PIN_MODE_13 0x0000000D |
| #define PIN_MODE_14 0x0000000E |
| #define PIN_MODE_15 0x0000000F |
| // Note : PIN_MODE_255 is a dummy define for pinmux utility code generation |
| // PIN_MODE_255 should never be used in any user code. |
| #define PIN_MODE_255 0x000000FF |
| |
| //***************************************************************************** |
| // Macros that can be used with PinDirModeSet() and returned from |
| // PinDirModeGet(). |
| //***************************************************************************** |
| #define PIN_DIR_MODE_IN 0x00000C00 // Pin is input |
| #define PIN_DIR_MODE_OUT 0x00000800 // Pin is output |
| #define PIN_DIR_MODE_HW 0x00000000 // Pin is peripheral function |
| |
| //***************************************************************************** |
| // Macros that can be used with PinConfigSet() |
| //***************************************************************************** |
| #define PIN_STRENGTH_2MA 0x00000020 |
| #define PIN_STRENGTH_4MA 0x00000040 |
| #define PIN_STRENGTH_6MA 0x00000060 |
| |
| #define PIN_TYPE_STD 0x00000000 |
| #define PIN_TYPE_STD_PU 0x00000100 |
| #define PIN_TYPE_STD_PD 0x00000200 |
| |
| #define PIN_TYPE_OD 0x00000010 |
| #define PIN_TYPE_OD_PU 0x00000110 |
| #define PIN_TYPE_OD_PD 0x00000210 |
| #define PIN_TYPE_ANALOG 0x10000000 |
| |
| |
| //***************************************************************************** |
| // |
| // API Function prototypes |
| // |
| //***************************************************************************** |
| extern void PinModeSet(unsigned long ulPin, unsigned long ulPinMode); |
| extern void PinDirModeSet(unsigned long ulPin, unsigned long ulPinIO); |
| extern unsigned long PinDirModeGet(unsigned long ulPin); |
| extern unsigned long PinModeGet(unsigned long ulPin); |
| extern void PinConfigGet(unsigned long ulPin,unsigned long *pulPinStrength, |
| unsigned long *pulPinType); |
| extern void PinConfigSet(unsigned long ulPin,unsigned long ulPinStrength, |
| unsigned long ulPinType); |
| extern void PinTypeUART(unsigned long ulPin,unsigned long ulPinMode); |
| extern void PinTypeI2C(unsigned long ulPin,unsigned long ulPinMode); |
| extern void PinTypeSPI(unsigned long ulPin,unsigned long ulPinMode); |
| extern void PinTypeI2S(unsigned long ulPin,unsigned long ulPinMode); |
| extern void PinTypeTimer(unsigned long ulPin,unsigned long ulPinMode); |
| extern void PinTypeCamera(unsigned long ulPin,unsigned long ulPinMode); |
| extern void PinTypeGPIO(unsigned long ulPin,unsigned long ulPinMode, |
| tBoolean bOpenDrain); |
| extern void PinTypeADC(unsigned long ulPin,unsigned long ulPinMode); |
| extern void PinTypeSDHost(unsigned long ulPin,unsigned long ulPinMode); |
| |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif //__PIN_H__ |