/***********************************************************************************************************************
 * This file was generated by the MCUXpresso Config Tools. Any manual edits made to this file
 * will be overwritten if the respective MCUXpresso Config Tools is used to update this file.
 **********************************************************************************************************************/

#ifndef _PIN_MUX_H_
#define _PIN_MUX_H_

/***********************************************************************************************************************
 * Definitions
 **********************************************************************************************************************/

/*! @brief Direction type  */
typedef enum _pin_mux_direction
{
  kPIN_MUX_DirectionInput = 0U,         /* Input direction */
  kPIN_MUX_DirectionOutput = 1U,        /* Output direction */
  kPIN_MUX_DirectionInputOrOutput = 2U  /* Input or output direction */
} pin_mux_direction_t;

/*!
 * @addtogroup pin_mux
 * @{
 */

/***********************************************************************************************************************
 * API
 **********************************************************************************************************************/

#if defined(__cplusplus)
extern "C" {
#endif

/*!
 * @brief Calls initialization functions.
 *
 */
void BOARD_InitBootPins(void);


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitUARTDbgPins(void);


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitSWDPins(void);


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitFlexSPIPins(void);

/* GPIO_AD_B0_05 (coord G14), USDHC1_PWR */
/* Routed pin properties */
#define BOARD_INITUSDPINS_USDHC1_PWR_PERIPHERAL                            GPIO1   /*!< Peripheral name */
#define BOARD_INITUSDPINS_USDHC1_PWR_SIGNAL                              gpio_io   /*!< Signal name */
#define BOARD_INITUSDPINS_USDHC1_PWR_CHANNEL                                  5U   /*!< Signal channel */

/* Symbols to be used with GPIO driver */
#define BOARD_INITUSDPINS_USDHC1_PWR_GPIO                                  GPIO1   /*!< GPIO peripheral base pointer */
#define BOARD_INITUSDPINS_USDHC1_PWR_GPIO_PIN                                 5U   /*!< GPIO pin number */
#define BOARD_INITUSDPINS_USDHC1_PWR_GPIO_PIN_MASK                    (1U << 5U)   /*!< GPIO pin mask */
#define BOARD_INITUSDPINS_USDHC1_PWR_PORT                                  GPIO1   /*!< PORT peripheral base pointer */
#define BOARD_INITUSDPINS_USDHC1_PWR_PIN                                      5U   /*!< PORT pin number */
#define BOARD_INITUSDPINS_USDHC1_PWR_PIN_MASK                         (1U << 5U)   /*!< PORT pin mask */


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InituSDPins(void);


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitSDWiFiPins(void);


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitSEMCPins(void);

/* GPIO_AD_B0_02 (coord M11), LCD_RST */
/* Routed pin properties */
#define BOARD_INITLCDPINS_LCD_RST_PERIPHERAL                               GPIO1   /*!< Peripheral name */
#define BOARD_INITLCDPINS_LCD_RST_SIGNAL                                 gpio_io   /*!< Signal name */
#define BOARD_INITLCDPINS_LCD_RST_CHANNEL                                     2U   /*!< Signal channel */

/* Symbols to be used with GPIO driver */
#define BOARD_INITLCDPINS_LCD_RST_GPIO                                     GPIO1   /*!< GPIO peripheral base pointer */
#define BOARD_INITLCDPINS_LCD_RST_GPIO_PIN                                    2U   /*!< GPIO pin number */
#define BOARD_INITLCDPINS_LCD_RST_GPIO_PIN_MASK                       (1U << 2U)   /*!< GPIO pin mask */
#define BOARD_INITLCDPINS_LCD_RST_PORT                                     GPIO1   /*!< PORT peripheral base pointer */
#define BOARD_INITLCDPINS_LCD_RST_PIN                                         2U   /*!< PORT pin number */
#define BOARD_INITLCDPINS_LCD_RST_PIN_MASK                            (1U << 2U)   /*!< PORT pin mask */


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitLCDPins(void);


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitCodecPins(void);

/* GPIO_AD_B0_00 (coord M14), CSI_ */
/* Routed pin properties */
#define BOARD_INITCSIPINS_CSI_PDN_PERIPHERAL                               GPIO1   /*!< Peripheral name */
#define BOARD_INITCSIPINS_CSI_PDN_SIGNAL                                 gpio_io   /*!< Signal name */
#define BOARD_INITCSIPINS_CSI_PDN_CHANNEL                                     0U   /*!< Signal channel */

/* Symbols to be used with GPIO driver */
#define BOARD_INITCSIPINS_CSI_PDN_GPIO                                     GPIO1   /*!< GPIO peripheral base pointer */
#define BOARD_INITCSIPINS_CSI_PDN_GPIO_PIN                                    0U   /*!< GPIO pin number */
#define BOARD_INITCSIPINS_CSI_PDN_GPIO_PIN_MASK                       (1U << 0U)   /*!< GPIO pin mask */
#define BOARD_INITCSIPINS_CSI_PDN_PORT                                     GPIO1   /*!< PORT peripheral base pointer */
#define BOARD_INITCSIPINS_CSI_PDN_PIN                                         0U   /*!< PORT pin number */
#define BOARD_INITCSIPINS_CSI_PDN_PIN_MASK                            (1U << 0U)   /*!< PORT pin mask */

/* GPIO_AD_B0_01 (coord H10), CSI_RST */
/* Routed pin properties */
#define BOARD_INITCSIPINS_CSI_RST_PERIPHERAL                               GPIO1   /*!< Peripheral name */
#define BOARD_INITCSIPINS_CSI_RST_SIGNAL                                 gpio_io   /*!< Signal name */
#define BOARD_INITCSIPINS_CSI_RST_CHANNEL                                     1U   /*!< Signal channel */

/* Symbols to be used with GPIO driver */
#define BOARD_INITCSIPINS_CSI_RST_GPIO                                     GPIO1   /*!< GPIO peripheral base pointer */
#define BOARD_INITCSIPINS_CSI_RST_GPIO_PIN                                    1U   /*!< GPIO pin number */
#define BOARD_INITCSIPINS_CSI_RST_GPIO_PIN_MASK                       (1U << 1U)   /*!< GPIO pin mask */
#define BOARD_INITCSIPINS_CSI_RST_PORT                                     GPIO1   /*!< PORT peripheral base pointer */
#define BOARD_INITCSIPINS_CSI_RST_PIN                                         1U   /*!< PORT pin number */
#define BOARD_INITCSIPINS_CSI_RST_PIN_MASK                            (1U << 1U)   /*!< PORT pin mask */


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitCSIPins(void);


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitSYSPins(void);

/* GPIO_B1_07 (coord B12), LED_G */
/* Routed pin properties */
#define BOARD_INITENETPINS_LED_G_PERIPHERAL                                 ENET   /*!< Peripheral name */
#define BOARD_INITENETPINS_LED_G_SIGNAL                             enet_tx_data   /*!< Signal name */
#define BOARD_INITENETPINS_LED_G_CHANNEL                                      0U   /*!< Signal channel */


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitENETPins(void);

/* GPIO_AD_B0_03 (coord G11), BUZZER */
/* Routed pin properties */
#define BOARD_INITBASICIOPINS_BUZZER_PERIPHERAL                            GPIO1   /*!< Peripheral name */
#define BOARD_INITBASICIOPINS_BUZZER_SIGNAL                              gpio_io   /*!< Signal name */
#define BOARD_INITBASICIOPINS_BUZZER_CHANNEL                                  3U   /*!< Signal channel */

/* Symbols to be used with GPIO driver */
#define BOARD_INITBASICIOPINS_BUZZER_GPIO                                  GPIO1   /*!< GPIO peripheral base pointer */
#define BOARD_INITBASICIOPINS_BUZZER_GPIO_PIN                                 3U   /*!< GPIO pin number */
#define BOARD_INITBASICIOPINS_BUZZER_GPIO_PIN_MASK                    (1U << 3U)   /*!< GPIO pin mask */
#define BOARD_INITBASICIOPINS_BUZZER_PORT                                  GPIO1   /*!< PORT peripheral base pointer */
#define BOARD_INITBASICIOPINS_BUZZER_PIN                                      3U   /*!< PORT pin number */
#define BOARD_INITBASICIOPINS_BUZZER_PIN_MASK                         (1U << 3U)   /*!< PORT pin mask */

/* WAKEUP (coord L6), WAKEUP */
/* Routed pin properties */
#define BOARD_INITBASICIOPINS_WAKEUP_PERIPHERAL                            GPIO5   /*!< Peripheral name */
#define BOARD_INITBASICIOPINS_WAKEUP_SIGNAL                              gpio_io   /*!< Signal name */
#define BOARD_INITBASICIOPINS_WAKEUP_CHANNEL                                  0U   /*!< Signal channel */

/* Symbols to be used with GPIO driver */
#define BOARD_INITBASICIOPINS_WAKEUP_GPIO                                  GPIO5   /*!< GPIO peripheral base pointer */
#define BOARD_INITBASICIOPINS_WAKEUP_GPIO_PIN                                 0U   /*!< GPIO pin number */
#define BOARD_INITBASICIOPINS_WAKEUP_GPIO_PIN_MASK                    (1U << 0U)   /*!< GPIO pin mask */
#define BOARD_INITBASICIOPINS_WAKEUP_PORT                                  GPIO5   /*!< PORT peripheral base pointer */
#define BOARD_INITBASICIOPINS_WAKEUP_PIN                                      0U   /*!< PORT pin number */
#define BOARD_INITBASICIOPINS_WAKEUP_PIN_MASK                         (1U << 0U)   /*!< PORT pin mask */


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitBasicIOPins(void);


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitI2C1Pins(void);


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitCAN2Pins(void);


/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitSPDIFPins(void);

#if defined(__cplusplus)
}
#endif

/*!
 * @}
 */
#endif /* _PIN_MUX_H_ */

/***********************************************************************************************************************
 * EOF
 **********************************************************************************************************************/
