/*
 * Copyright 2018 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_

/*!
 * @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_InitPins(void);

/*! @name PORTA13 (number 29), J1[10]/D4-TPM1_CH1/D4-LED_BLUE
  @{ */
#define BOARD_LED_BLUE_GPIO GPIOA /*!<@brief GPIO device name: GPIOA */
#define BOARD_LED_BLUE_PORT PORTA /*!<@brief PORT device name: PORTA */
#define BOARD_LED_BLUE_PIN 13U    /*!<@brief PORTA pin index: 13 */
                                  /* @} */

/*! @name PORTB18 (number 41), J2[11]/D11[1]/LED_RED
  @{ */
#define BOARD_LED_RED_GPIO GPIOB /*!<@brief GPIO device name: GPIOB */
#define BOARD_LED_RED_PORT PORTB /*!<@brief PORT device name: PORTB */
#define BOARD_LED_RED_PIN 18U    /*!<@brief PORTB pin index: 18 */
                                 /* @} */

/*! @name PORTB19 (number 42), J2[13]/D11[4]/LED_GREEN
  @{ */
#define BOARD_LED_GREEN_GPIO GPIOB /*!<@brief GPIO device name: GPIOB */
#define BOARD_LED_GREEN_PORT PORTB /*!<@brief PORT device name: PORTB */
#define BOARD_LED_GREEN_PIN 19U    /*!<@brief PORTB pin index: 19 */
                                   /* @} */

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

/*! @name PORTA4 (number 26), J2[5]/SW1
  @{ */
#define BOARD_SW1_GPIO GPIOA /*!<@brief GPIO device name: GPIOA */
#define BOARD_SW1_PORT PORTA /*!<@brief PORT device name: PORTA */
#define BOARD_SW1_PIN 4U     /*!<@brief PORTA pin index: 4 */
                             /* @} */

/*! @name PORTC1 (number 44), J3[13]/SW3
  @{ */
#define BOARD_SW3_GPIO GPIOC /*!<@brief GPIO device name: GPIOC */
#define BOARD_SW3_PORT PORTC /*!<@brief PORT device name: PORTC */
#define BOARD_SW3_PIN 1U     /*!<@brief PORTC pin index: 1 */
                             /* @} */

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

/*! @name PORTE29 (number 17), TOUCH_A
  @{ */
#define BOARD_TOUCH_A_GPIO GPIOE /*!<@brief GPIO device name: GPIOE */
#define BOARD_TOUCH_A_PORT PORTE /*!<@brief PORT device name: PORTE */
#define BOARD_TOUCH_A_PIN 29U    /*!<@brief PORTE pin index: 29 */
                                 /* @} */

/*! @name PORTE30 (number 18), TOUCH_B
  @{ */
#define BOARD_TOUCH_B_GPIO GPIOE /*!<@brief GPIO device name: GPIOE */
#define BOARD_TOUCH_B_PORT PORTE /*!<@brief PORT device name: PORTE */
#define BOARD_TOUCH_B_PIN 30U    /*!<@brief PORTE pin index: 30 */
                                 /* @} */

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

/*! @name USB0_DP (number 5), J10[3]
  @{ */
/* @} */

/*! @name USB0_DM (number 6), J10[2]
  @{ */
/* @} */

/*! @name PORTA5 (number 27), J2[4]/D9-TPM0_CH2
  @{ */
#define BOARD_TPM0_CH2_PORT PORTA /*!<@brief PORT device name: PORTA */
#define BOARD_TPM0_CH2_PIN 5U     /*!<@brief PORTA pin index: 5 */
                                  /* @} */

/*! @name USB_VDD (number 7), P3V3_KL27Z
  @{ */
/* @} */

/*! @name PORTC0 (number 43), J4[4]/A1-ADC0_SE14
  @{ */
#define BOARD_USB_SOF_OUT_PORT PORTC /*!<@brief PORT device name: PORTC */
#define BOARD_USB_SOF_OUT_PIN 0U     /*!<@brief PORTC pin index: 0 */
                                     /* @} */

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

/*! @name PORTC3 (number 46), J2[15]/U10[11]/J28[1]/INT1_ACCEL
  @{ */
#define BOARD_INT1_ACCEL_GPIO GPIOC /*!<@brief GPIO device name: GPIOC */
#define BOARD_INT1_ACCEL_PORT PORTC /*!<@brief PORT device name: PORTC */
#define BOARD_INT1_ACCEL_PIN 3U     /*!<@brief PORTC pin index: 3 */
                                    /* @} */

/*! @name PORTC2 (number 45), J3[15]/U10[9]/J27[1]/UART1_TX/INT2_ACCEL
  @{ */
#define BOARD_INT2_ACCEL_GPIO GPIOC /*!<@brief GPIO device name: GPIOC */
#define BOARD_INT2_ACCEL_PORT PORTC /*!<@brief PORT device name: PORTC */
#define BOARD_INT2_ACCEL_PIN 2U     /*!<@brief PORTC pin index: 2 */
                                    /* @} */

/*! @name PORTD6 (number 63), J2[18]/J24[1]/D14-I2C1_SDA
  @{ */
#define BOARD_ACCEL_I2C1_SDA_PORT PORTD /*!<@brief PORT device name: PORTD */
#define BOARD_ACCEL_I2C1_SDA_PIN 6U     /*!<@brief PORTD pin index: 6 */
                                        /* @} */

/*! @name PORTD7 (number 64), J2[20]/J23[1]/D15-I2C1_SCL
  @{ */
#define BOARD_ACCEL_I2C1_SCL_PORT PORTD /*!<@brief PORT device name: PORTD */
#define BOARD_ACCEL_I2C1_SCL_PIN 7U     /*!<@brief PORTD pin index: 7 */
                                        /* @} */

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

/*! @name PORTD7 (number 64), J2[20]/J23[1]/D15-I2C1_SCL
  @{ */
#define BOARD_MAG_I2C1_SCL_PORT PORTD /*!<@brief PORT device name: PORTD */
#define BOARD_MAG_I2C1_SCL_PIN 7U     /*!<@brief PORTD pin index: 7 */
                                      /* @} */

/*! @name PORTD6 (number 63), J2[18]/J24[1]/D14-I2C1_SDA
  @{ */
#define BOARD_MAG_I2C1_SDA_PORT PORTD /*!<@brief PORT device name: PORTD */
#define BOARD_MAG_I2C1_SDA_PIN 6U     /*!<@brief PORTD pin index: 6 */
                                      /* @} */

/*! @name PORTC2 (number 45), J3[15]/U10[9]/J27[1]/UART1_TX/INT2_ACCEL
  @{ */
#define BOARD_INT1_MAG_GPIO GPIOC /*!<@brief GPIO device name: GPIOC */
#define BOARD_INT1_MAG_PORT PORTC /*!<@brief PORT device name: PORTC */
#define BOARD_INT1_MAG_PIN 2U     /*!<@brief PORTC pin index: 2 */
                                  /* @} */

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

#define SOPT5_LPUART0RXSRC_LPUART_RX 0x00u /*!<@brief LPUART0 Receive Data Source Select: LPUART_RX pin */
#define SOPT5_LPUART0TXSRC_LPUART_TX 0x00u /*!<@brief LPUART0 Transmit Data Source Select: LPUART0_TX pin */

/*! @name PORTA1 (number 23), J1[2]/J25[1]/D0-UART0_RX
  @{ */
#define BOARD_DEBUG_UART0_RX_PORT PORTA /*!<@brief PORT device name: PORTA */
#define BOARD_DEBUG_UART0_RX_PIN 1U     /*!<@brief PORTA pin index: 1 */
                                        /* @} */

/*! @name PORTA2 (number 24), J1[4]/J26[1]/D1-UART0_TX
  @{ */
#define BOARD_DEBUG_UART0_TX_PORT PORTA /*!<@brief PORT device name: PORTA */
#define BOARD_DEBUG_UART0_TX_PIN 2U     /*!<@brief PORTA pin index: 2 */
                                        /* @} */

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

/*! @name PORTE22 (number 11), THER_A
  @{ */
#define BOARD_THER_A_GPIO GPIOE /*!<@brief GPIO device name: GPIOE */
#define BOARD_THER_A_PORT PORTE /*!<@brief PORT device name: PORTE */
#define BOARD_THER_A_PIN 22U    /*!<@brief PORTE pin index: 22 */
                                /* @} */

/*! @name PORTE23 (number 12), THER_B
  @{ */
#define BOARD_THER_B_GPIO GPIOE /*!<@brief GPIO device name: GPIOE */
#define BOARD_THER_B_PORT PORTE /*!<@brief PORT device name: PORTE */
#define BOARD_THER_B_PIN 23U    /*!<@brief PORTE pin index: 23 */
                                /* @} */

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

/*! @name PORTA18 (number 32), EXTAL_32KHZ
  @{ */
#define BOARD_EXTAL0_PORT PORTA /*!<@brief PORT device name: PORTA */
#define BOARD_EXTAL0_PIN 18U    /*!<@brief PORTA pin index: 18 */
                                /* @} */

/*! @name PORTA19 (number 33), XTAL_32KHZ
  @{ */
#define BOARD_XTAL0_PORT PORTA /*!<@brief PORT device name: PORTA */
#define BOARD_XTAL0_PIN 19U    /*!<@brief PORTA pin index: 19 */
                               /* @} */

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

#if defined(__cplusplus)
}
#endif

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

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