/*
 * 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 PORTB0 (number 35), J1[10]/J1[11]/PTB0
  @{ */
#define BOARD_SW2_GPIO GPIOB /*!<@brief GPIO device name: GPIOB */
#define BOARD_SW2_PORT PORTB /*!<@brief PORT device name: PORTB */
#define BOARD_SW2_PIN 0U     /*!<@brief PORTB pin index: 0 */
                             /* @} */

/*! @name PORTA4 (number 26), J2[4]/PTA4
  @{ */
#define BOARD_SW3_GPIO GPIOA /*!<@brief GPIO device name: GPIOA */
#define BOARD_SW3_PORT PORTA /*!<@brief PORT device name: PORTA */
#define BOARD_SW3_PIN 4U     /*!<@brief PORTA pin index: 4 */
                             /* @} */

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

/*! @name PORTD6 (number 63), J2[6]/LD1[1]/PTD6
  @{ */
#define BOARD_LED_RED_GPIO GPIOD /*!<@brief GPIO device name: GPIOD */
#define BOARD_LED_RED_PORT PORTD /*!<@brief PORT device name: PORTD */
#define BOARD_LED_RED_PIN 6U     /*!<@brief PORTD pin index: 6 */
                                 /* @} */

/*! @name PORTE29 (number 17), J1[13]/J1[14]/LD1[4]/PTE29
  @{ */
#define BOARD_LED_GREEN_GPIO GPIOE /*!<@brief GPIO device name: GPIOE */
#define BOARD_LED_GREEN_PORT PORTE /*!<@brief PORT device name: PORTE */
#define BOARD_LED_GREEN_PIN 29U    /*!<@brief PORTE pin index: 29 */
                                   /* @} */

/*! @name PORTE25 (number 21), J1[5]/J1[12]/LD1[3]/U9[4]/PTE25
  @{ */
#define BOARD_LED_BLUE_GPIO GPIOE /*!<@brief GPIO device name: GPIOE */
#define BOARD_LED_BLUE_PORT PORTE /*!<@brief PORT device name: PORTE */
#define BOARD_LED_BLUE_PIN 25U    /*!<@brief PORTE pin index: 25 */
                                  /* @} */

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

#define SOPT5_UART0ODE_DISABLED 0x00u  /*!<@brief UART0 Open Drain Enable: Open drain is disabled on UART0 */
#define SOPT5_UART0RXSRC_UART_RX 0x00u /*!<@brief UART 0 Receive Data Source Select: UART0_RX pin */
#define SOPT5_UART0TXSRC_UART_TX 0x00u /*!<@brief UART 0 Transmit Data Source Select: UART0_TX pin */

/*! @name PORTB17 (number 40), U5[1]/UART0_TX_TGTMCU
  @{ */
#define BOARD_DEBUG_UART_TX_PORT PORTB /*!<@brief PORT device name: PORTB */
#define BOARD_DEBUG_UART_TX_PIN 17U    /*!<@brief PORTB pin index: 17 */
                                       /* @} */

/*! @name PORTB16 (number 39), J1[6]/U3[4]/UART0_RX_TGTMCU
  @{ */
#define BOARD_DEBUG_UART_RX_PORT PORTB /*!<@brief PORT device name: PORTB */
#define BOARD_DEBUG_UART_RX_PIN 16U    /*!<@brief PORTB pin index: 16 */
                                       /* @} */

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

/*! @name PORTA18 (number 32), Y2[1]
  @{ */
#define BOARD_EXTAL_PORT PORTA /*!<@brief PORT device name: PORTA */
#define BOARD_EXTAL_PIN 18U    /*!<@brief PORTA pin index: 18 */
                               /* @} */

/*! @name PORTA19 (number 33), Y2[2]
  @{ */
#define BOARD_XTAL_PORT PORTA /*!<@brief PORT device name: PORTA */
#define BOARD_XTAL_PIN 19U    /*!<@brief PORTA pin index: 19 */
                              /* @} */

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

/*! @name PORTC6 (number 51), J2[8]/J2[13]/U10[4]/I2C0_SCL/SPI0_SOUT/PTC6
  @{ */
#define BOARD_ACCEL_SCL_PORT PORTC /*!<@brief PORT device name: PORTC */
#define BOARD_ACCEL_SCL_PIN 6U     /*!<@brief PORTC pin index: 6 */
                                   /* @} */

/*! @name PORTC7 (number 52), J1[15]/J1[16]/U10[6]/I2C0_SDA/PTC7
  @{ */
#define BOARD_ACCEL_SDA_PORT PORTC /*!<@brief PORT device name: PORTC */
#define BOARD_ACCEL_SDA_PIN 7U     /*!<@brief PORTC pin index: 7 */
                                   /* @} */

/*! @name PORTD1 (number 58), J1[4]/J1[9]/J4[3]/U10[16]/PTD1
  @{ */
#define BOARD_ACCEL_RST_GPIO GPIOD /*!<@brief GPIO device name: GPIOD */
#define BOARD_ACCEL_RST_PORT PORTD /*!<@brief PORT device name: PORTD */
#define BOARD_ACCEL_RST_PIN 1U     /*!<@brief PORTD pin index: 1 */
                                   /* @} */

/*! @name PORTB3 (number 38), J2[11]/J2[18]/J4[10]/U10[11]/PTB3
  @{ */
#define BOARD_ACCEL_INT1_GPIO GPIOB /*!<@brief GPIO device name: GPIOB */
#define BOARD_ACCEL_INT1_PORT PORTB /*!<@brief PORT device name: PORTB */
#define BOARD_ACCEL_INT1_PIN 3U     /*!<@brief PORTB pin index: 3 */
                                    /* @} */

/*! @name PORTB2 (number 37), J2[15]/J2[20]/J4[12]/U10[9]/PTB2
  @{ */
#define BOARD_ACCEL_INT2_GPIO GPIOB /*!<@brief GPIO device name: GPIOB */
#define BOARD_ACCEL_INT2_PORT PORTB /*!<@brief PORT device name: PORTB */
#define BOARD_ACCEL_INT2_PIN 2U     /*!<@brief PORTB pin index: 2 */
                                    /* @} */

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

/*! @name PORTE20 (number 9), J4[6]/ADC0_DP0/THER_A
  @{ */
#define BOARD_ADC0_DP_THER_PORT PORTE /*!<@brief PORT device name: PORTE */
#define BOARD_ADC0_DP_THER_PIN 20U    /*!<@brief PORTE pin index: 20 */
                                      /* @} */

/*! @name PORTE21 (number 10), J4[8]/ADC0_DM0/THER_B
  @{ */
#define BOARD_ADC0_DM_THER_PORT PORTE /*!<@brief PORT device name: PORTE */
#define BOARD_ADC0_DM_THER_PIN 21U    /*!<@brief PORTE pin index: 21 */
                                      /* @} */

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

/*! @name PORTE24 (number 20), J1[1]/J1[8]/U9[1]/PTE24
  @{ */
#define BOARD_CAN_TX_PORT PORTE /*!<@brief PORT device name: PORTE */
#define BOARD_CAN_TX_PIN 24U    /*!<@brief PORTE pin index: 24 */
                                /* @} */

/*! @name PORTE25 (number 21), J1[5]/J1[12]/LD1[3]/U9[4]/PTE25
  @{ */
#define BOARD_CAN_RX_PORT PORTE /*!<@brief PORT device name: PORTE */
#define BOARD_CAN_RX_PIN 25U    /*!<@brief PORTE pin index: 25 */
                                /* @} */

/*! @name PORTA13 (number 29), U9[8]/PTA13
  @{ */
#define BOARD_CAN_S_GPIO GPIOA /*!<@brief GPIO device name: GPIOA */
#define BOARD_CAN_S_PORT PORTA /*!<@brief PORT device name: PORTA */
#define BOARD_CAN_S_PIN 13U    /*!<@brief PORTA pin index: 13 */
                               /* @} */

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

#if defined(__cplusplus)
}
#endif

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

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