/*
 * Copyright 2019 NXP.
 * All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

/***********************************************************************************************************************
 * 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);

/*! @name PIO0_11 (number 10), CN6[10]/CN8[3]/D4/PIO0_11/M_PIO0_11
  @{ */
/*!
 * @brief Device name: GPIO */
#define BOARD_INITPINS_LED_BLUE_PERIPHERAL GPIO
/*!
 * @brief GPIO signal: PIO0 */
#define BOARD_INITPINS_LED_BLUE_SIGNAL PIO0
/*!
 * @brief GPIO device name: GPIO */
#define BOARD_INITPINS_LED_BLUE_GPIO GPIO
/*!
 * @brief PIO0 pin index: 11 */
#define BOARD_INITPINS_LED_BLUE_GPIO_PIN 11U
/*!
 * @brief PORT device name: 0U */
#define BOARD_INITPINS_LED_BLUE_PORT 0U
/*!
 * @brief 0U pin index: 11 */
#define BOARD_INITPINS_LED_BLUE_PIN 11U
/*!
 * @brief GPIO PIO0 channel: 11 */
#define BOARD_INITPINS_LED_BLUE_CHANNEL 11
/*!
 * @brief Pin name */
#define BOARD_INITPINS_LED_BLUE_PIN_NAME PIO0_11
/*!
 * @brief Label */
#define BOARD_INITPINS_LED_BLUE_LABEL "CN6[10]/CN8[3]/D4/PIO0_11/M_PIO0_11"
/*!
 * @brief Identifier name */
#define BOARD_INITPINS_LED_BLUE_NAME "LED_BLUE"
/*!
 * @brief Direction */
#define BOARD_INITPINS_LED_BLUE_DIRECTION kPIN_MUX_DirectionInput
/* @} */

/*! @name PIO0_12 (number 5), S2/CN8[6]/CN6[5]/D3/M_PIO0_12/PIO0_12
  @{ */
/*!
 * @brief Device name: GPIO */
#define BOARD_INITPINS_LED_GREEN_PERIPHERAL GPIO
/*!
 * @brief GPIO signal: PIO0 */
#define BOARD_INITPINS_LED_GREEN_SIGNAL PIO0
/*!
 * @brief GPIO device name: GPIO */
#define BOARD_INITPINS_LED_GREEN_GPIO GPIO
/*!
 * @brief PIO0 pin index: 12 */
#define BOARD_INITPINS_LED_GREEN_GPIO_PIN 12U
/*!
 * @brief PORT device name: 0U */
#define BOARD_INITPINS_LED_GREEN_PORT 0U
/*!
 * @brief 0U pin index: 12 */
#define BOARD_INITPINS_LED_GREEN_PIN 12U
/*!
 * @brief GPIO PIO0 channel: 12 */
#define BOARD_INITPINS_LED_GREEN_CHANNEL 12
/*!
 * @brief Pin name */
#define BOARD_INITPINS_LED_GREEN_PIN_NAME PIO0_12
/*!
 * @brief Label */
#define BOARD_INITPINS_LED_GREEN_LABEL "S2/CN8[6]/CN6[5]/D3/M_PIO0_12/PIO0_12"
/*!
 * @brief Identifier name */
#define BOARD_INITPINS_LED_GREEN_NAME "LED_GREEN"
/*!
 * @brief Direction */
#define BOARD_INITPINS_LED_GREEN_DIRECTION kPIN_MUX_DirectionInput
/* @} */

/*! @name PIO0_13 (number 4), S1/CN8[4]/CN6[4]/D2/M_PIO0_13/PIO0_13
  @{ */
/*!
 * @brief Device name: GPIO */
#define BOARD_INITPINS_LED_RED_PERIPHERAL GPIO
/*!
 * @brief GPIO signal: PIO0 */
#define BOARD_INITPINS_LED_RED_SIGNAL PIO0
/*!
 * @brief GPIO device name: GPIO */
#define BOARD_INITPINS_LED_RED_GPIO GPIO
/*!
 * @brief PIO0 pin index: 13 */
#define BOARD_INITPINS_LED_RED_GPIO_PIN 13U
/*!
 * @brief PORT device name: 0U */
#define BOARD_INITPINS_LED_RED_PORT 0U
/*!
 * @brief 0U pin index: 13 */
#define BOARD_INITPINS_LED_RED_PIN 13U
/*!
 * @brief GPIO PIO0 channel: 13 */
#define BOARD_INITPINS_LED_RED_CHANNEL 13
/*!
 * @brief Pin name */
#define BOARD_INITPINS_LED_RED_PIN_NAME PIO0_13
/*!
 * @brief Label */
#define BOARD_INITPINS_LED_RED_LABEL "S1/CN8[4]/CN6[4]/D2/M_PIO0_13/PIO0_13"
/*!
 * @brief Identifier name */
#define BOARD_INITPINS_LED_RED_NAME "LED_RED"
/*!
 * @brief Direction */
#define BOARD_INITPINS_LED_RED_DIRECTION kPIN_MUX_DirectionInput
/* @} */

/*! @name PIO0_14 (number 23), CN7[2]/CN3[1]/JP4/PIO0_14
  @{ */
#define BOARD_INITPINS_I2C_SCL_PERIPHERAL PLU                    /*!<@brief Device name: PLU */
#define BOARD_INITPINS_I2C_SCL_SIGNAL OUT                        /*!<@brief PLU signal: OUT */
#define BOARD_INITPINS_I2C_SCL_PORT 0U                           /*!<@brief PORT device name: 0U */
#define BOARD_INITPINS_I2C_SCL_PIN 14U                           /*!<@brief 0U pin index: 14 */
#define BOARD_INITPINS_I2C_SCL_CHANNEL 0                         /*!<@brief PLU OUT channel: 0 */
#define BOARD_INITPINS_I2C_SCL_PIN_NAME PIO0_14                  /*!<@brief Pin name */
#define BOARD_INITPINS_I2C_SCL_LABEL "CN7[2]/CN3[1]/JP4/PIO0_14" /*!<@brief Label */
#define BOARD_INITPINS_I2C_SCL_NAME "I2C_SCL"                    /*!<@brief Identifier name */
                                                                 /* @} */

/*! @name PIO0_8 (number 17), CN7[8]/CN3[7]/R20/U4[5]/PIO0_8/ISP_U0_RXD_DS
  @{ */
/*!
 * @brief Device name: GPIO */
#define BOARD_INITPINS_GPIO_PLU_SRC_0_PIN_PERIPHERAL GPIO
/*!
 * @brief GPIO signal: PIO0 */
#define BOARD_INITPINS_GPIO_PLU_SRC_0_PIN_SIGNAL PIO0
/*!
 * @brief GPIO device name: GPIO */
#define BOARD_INITPINS_GPIO_PLU_SRC_0_PIN_GPIO GPIO
/*!
 * @brief PIO0 pin index: 8 */
#define BOARD_INITPINS_GPIO_PLU_SRC_0_PIN_GPIO_PIN 8U
/*!
 * @brief PORT device name: 0U */
#define BOARD_INITPINS_GPIO_PLU_SRC_0_PIN_PORT 0U
/*!
 * @brief 0U pin index: 8 */
#define BOARD_INITPINS_GPIO_PLU_SRC_0_PIN_PIN 8U
/*!
 * @brief GPIO PIO0 channel: 8 */
#define BOARD_INITPINS_GPIO_PLU_SRC_0_PIN_CHANNEL 8
/*!
 * @brief Pin name */
#define BOARD_INITPINS_GPIO_PLU_SRC_0_PIN_PIN_NAME PIO0_8
/*!
 * @brief Label */
#define BOARD_INITPINS_GPIO_PLU_SRC_0_PIN_LABEL "CN7[8]/CN3[7]/R20/U4[5]/PIO0_8/ISP_U0_RXD_DS"
/*!
 * @brief Identifier name */
#define BOARD_INITPINS_GPIO_PLU_SRC_0_PIN_NAME "GPIO_PLU_SRC_0_PIN"
/*!
 * @brief Direction */
#define BOARD_INITPINS_GPIO_PLU_SRC_0_PIN_DIRECTION kPIN_MUX_DirectionOutput
/* @} */

/*! @name PIO0_9 (number 16), CN7[9]/CN3[6]/R13/U4[2]/PIO0_9/ISP_U0_TXD_DS
  @{ */
/*!
 * @brief Device name: GPIO */
#define BOARD_INITPINS_GPIO_PLU_SRC_1_PIN_PERIPHERAL GPIO
/*!
 * @brief GPIO signal: PIO0 */
#define BOARD_INITPINS_GPIO_PLU_SRC_1_PIN_SIGNAL PIO0
/*!
 * @brief GPIO device name: GPIO */
#define BOARD_INITPINS_GPIO_PLU_SRC_1_PIN_GPIO GPIO
/*!
 * @brief PIO0 pin index: 9 */
#define BOARD_INITPINS_GPIO_PLU_SRC_1_PIN_GPIO_PIN 9U
/*!
 * @brief PORT device name: 0U */
#define BOARD_INITPINS_GPIO_PLU_SRC_1_PIN_PORT 0U
/*!
 * @brief 0U pin index: 9 */
#define BOARD_INITPINS_GPIO_PLU_SRC_1_PIN_PIN 9U
/*!
 * @brief GPIO PIO0 channel: 9 */
#define BOARD_INITPINS_GPIO_PLU_SRC_1_PIN_CHANNEL 9
/*!
 * @brief Pin name */
#define BOARD_INITPINS_GPIO_PLU_SRC_1_PIN_PIN_NAME PIO0_9
/*!
 * @brief Label */
#define BOARD_INITPINS_GPIO_PLU_SRC_1_PIN_LABEL "CN7[9]/CN3[6]/R13/U4[2]/PIO0_9/ISP_U0_TXD_DS"
/*!
 * @brief Identifier name */
#define BOARD_INITPINS_GPIO_PLU_SRC_1_PIN_NAME "GPIO_PLU_SRC_1_PIN"
/*!
 * @brief Direction */
#define BOARD_INITPINS_GPIO_PLU_SRC_1_PIN_DIRECTION kPIN_MUX_DirectionOutput
/* @} */

/*! @name PIO0_10 (number 11), CN6[11]/VR1/CN5[1]/PIO0_10
  @{ */
/*!
 * @brief Device name: GPIO */
#define BOARD_INITPINS_GPIO_PLU_SRC_2_PIN_PERIPHERAL GPIO
/*!
 * @brief GPIO signal: PIO0 */
#define BOARD_INITPINS_GPIO_PLU_SRC_2_PIN_SIGNAL PIO0
/*!
 * @brief GPIO device name: GPIO */
#define BOARD_INITPINS_GPIO_PLU_SRC_2_PIN_GPIO GPIO
/*!
 * @brief PIO0 pin index: 10 */
#define BOARD_INITPINS_GPIO_PLU_SRC_2_PIN_GPIO_PIN 10U
/*!
 * @brief PORT device name: 0U */
#define BOARD_INITPINS_GPIO_PLU_SRC_2_PIN_PORT 0U
/*!
 * @brief 0U pin index: 10 */
#define BOARD_INITPINS_GPIO_PLU_SRC_2_PIN_PIN 10U
/*!
 * @brief GPIO PIO0 channel: 10 */
#define BOARD_INITPINS_GPIO_PLU_SRC_2_PIN_CHANNEL 10
/*!
 * @brief Pin name */
#define BOARD_INITPINS_GPIO_PLU_SRC_2_PIN_PIN_NAME PIO0_10
/*!
 * @brief Label */
#define BOARD_INITPINS_GPIO_PLU_SRC_2_PIN_LABEL "CN6[11]/VR1/CN5[1]/PIO0_10"
/*!
 * @brief Identifier name */
#define BOARD_INITPINS_GPIO_PLU_SRC_2_PIN_NAME "GPIO_PLU_SRC_2_PIN"
/*!
 * @brief Direction */
#define BOARD_INITPINS_GPIO_PLU_SRC_2_PIN_DIRECTION kPIN_MUX_DirectionOutput
/* @} */

/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitPins(void); /* Function assigned for the Cortex-M0P */

#define IOCON_PIO_HYS_EN 0x20u      /*!<@brief Enable hysteresis */
#define IOCON_PIO_INV_DI 0x00u      /*!<@brief Input not invert */
#define IOCON_PIO_MODE_PULLUP 0x10u /*!<@brief Selects pull-up function */
#define IOCON_PIO_OD_DI 0x00u       /*!<@brief Disables Open-drain function */

/*! @name PIO0_11 (number 10), CN6[10]/CN8[3]/D4/PIO0_11/M_PIO0_11
  @{ */
/*!
 * @brief Device name: GPIO */
#define BOARD_INITLEDSPINS_LED_BLUE_PERIPHERAL GPIO
/*!
 * @brief GPIO signal: PIO0 */
#define BOARD_INITLEDSPINS_LED_BLUE_SIGNAL PIO0
/*!
 * @brief GPIO device name: GPIO */
#define BOARD_INITLEDSPINS_LED_BLUE_GPIO GPIO
/*!
 * @brief PIO0 pin index: 11 */
#define BOARD_INITLEDSPINS_LED_BLUE_GPIO_PIN 11U
/*!
 * @brief PORT device name: 0U */
#define BOARD_INITLEDSPINS_LED_BLUE_PORT 0U
/*!
 * @brief 0U pin index: 11 */
#define BOARD_INITLEDSPINS_LED_BLUE_PIN 11U
/*!
 * @brief GPIO PIO0 channel: 11 */
#define BOARD_INITLEDSPINS_LED_BLUE_CHANNEL 11
/*!
 * @brief Pin name */
#define BOARD_INITLEDSPINS_LED_BLUE_PIN_NAME PIO0_11
/*!
 * @brief Label */
#define BOARD_INITLEDSPINS_LED_BLUE_LABEL "CN6[10]/CN8[3]/D4/PIO0_11/M_PIO0_11"
/*!
 * @brief Identifier name */
#define BOARD_INITLEDSPINS_LED_BLUE_NAME "LED_BLUE"
/*!
 * @brief Direction */
#define BOARD_INITLEDSPINS_LED_BLUE_DIRECTION kPIN_MUX_DirectionOutput
/* @} */

/*! @name PIO0_12 (number 5), S2/CN8[6]/CN6[5]/D3/M_PIO0_12/PIO0_12
  @{ */
/*!
 * @brief Device name: GPIO */
#define BOARD_INITLEDSPINS_LED_GREEN_PERIPHERAL GPIO
/*!
 * @brief GPIO signal: PIO0 */
#define BOARD_INITLEDSPINS_LED_GREEN_SIGNAL PIO0
/*!
 * @brief GPIO device name: GPIO */
#define BOARD_INITLEDSPINS_LED_GREEN_GPIO GPIO
/*!
 * @brief PIO0 pin index: 12 */
#define BOARD_INITLEDSPINS_LED_GREEN_GPIO_PIN 12U
/*!
 * @brief PORT device name: 0U */
#define BOARD_INITLEDSPINS_LED_GREEN_PORT 0U
/*!
 * @brief 0U pin index: 12 */
#define BOARD_INITLEDSPINS_LED_GREEN_PIN 12U
/*!
 * @brief GPIO PIO0 channel: 12 */
#define BOARD_INITLEDSPINS_LED_GREEN_CHANNEL 12
/*!
 * @brief Pin name */
#define BOARD_INITLEDSPINS_LED_GREEN_PIN_NAME PIO0_12
/*!
 * @brief Label */
#define BOARD_INITLEDSPINS_LED_GREEN_LABEL "S2/CN8[6]/CN6[5]/D3/M_PIO0_12/PIO0_12"
/*!
 * @brief Identifier name */
#define BOARD_INITLEDSPINS_LED_GREEN_NAME "LED_GREEN"
/*!
 * @brief Direction */
#define BOARD_INITLEDSPINS_LED_GREEN_DIRECTION kPIN_MUX_DirectionOutput
/* @} */

/*! @name PIO0_13 (number 4), S1/CN8[4]/CN6[4]/D2/M_PIO0_13/PIO0_13
  @{ */
/*!
 * @brief Device name: GPIO */
#define BOARD_INITLEDSPINS_LED_RED_PERIPHERAL GPIO
/*!
 * @brief GPIO signal: PIO0 */
#define BOARD_INITLEDSPINS_LED_RED_SIGNAL PIO0
/*!
 * @brief GPIO device name: GPIO */
#define BOARD_INITLEDSPINS_LED_RED_GPIO GPIO
/*!
 * @brief PIO0 pin index: 13 */
#define BOARD_INITLEDSPINS_LED_RED_GPIO_PIN 13U
/*!
 * @brief PORT device name: 0U */
#define BOARD_INITLEDSPINS_LED_RED_PORT 0U
/*!
 * @brief 0U pin index: 13 */
#define BOARD_INITLEDSPINS_LED_RED_PIN 13U
/*!
 * @brief GPIO PIO0 channel: 13 */
#define BOARD_INITLEDSPINS_LED_RED_CHANNEL 13
/*!
 * @brief Pin name */
#define BOARD_INITLEDSPINS_LED_RED_PIN_NAME PIO0_13
/*!
 * @brief Label */
#define BOARD_INITLEDSPINS_LED_RED_LABEL "S1/CN8[4]/CN6[4]/D2/M_PIO0_13/PIO0_13"
/*!
 * @brief Identifier name */
#define BOARD_INITLEDSPINS_LED_RED_NAME "LED_RED"
/*!
 * @brief Direction */
#define BOARD_INITLEDSPINS_LED_RED_DIRECTION kPIN_MUX_DirectionOutput

/*!
 * @brief Configures pin routing and optionally pin electrical features.
 *
 */
void BOARD_InitLEDsPins(void); /* Function assigned for the Cortex-M0P */

#if defined(__cplusplus)
}
#endif

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

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