/* * 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. **********************************************************************************************************************/ /* clang-format off */ /* * TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* !!GlobalInfo product: Pins v4.1 processor: LPC845 package_id: LPC845M301JBD64 mcu_data: ksdk2_0 processor_version: 4.0.1 board: LPCXpresso845 pin_labels: - {pin_num: '48', pin_signal: PIO0_0/ACMP_I1, label: D1/P0_0-GREEN, identifier: LED_GREEN} - {pin_num: '24', pin_signal: PIO1_15, label: 'D2/P3[44]/P1_15-BLUE', identifier: LED_BLUE} - {pin_num: '4', pin_signal: PIO0_12, label: 'D3/P3[45]/SW1/P0_12-RED-ISP', identifier: LED_RED;SW1} - {pin_num: '37', pin_signal: PIO1_17, label: 'P3[13]/P6[1]/U4[31]/TARGET_TX_DEBUG_P1_17', identifier: DEBUG_UART_TX} - {pin_num: '36', pin_signal: PIO1_16, label: 'P7[1]/U4[32]/TARGET_RX_DEBUG_P1_16', identifier: DEBUG_UART_RX} - {pin_num: '14', pin_signal: SWDIO/PIO0_2, label: 'U4[17]/P4[2]/TARGET_SWDIO', identifier: DEBUG_SWD_SWDIO} - {pin_num: '12', pin_signal: SWCLK/PIO0_3, label: 'U4[16]/P4[4]/TARGET_SWCLK', identifier: DEBUG_SWD_SWCLK} - {pin_num: '5', pin_signal: RESETN/PIO0_5, label: 'P3[4]/J5[3]/U4[8]/P4[10]/SW3[1]/TARGET_nRESET-P0_5', identifier: DEBUG_SWD_RESETN} - {pin_num: '6', pin_signal: PIO0_4/ADC_11, label: 'P3[50]/SW2/P0_4-WAKEUP', identifier: SW2} - {pin_num: '1', pin_signal: PIO1_8/CAPT_YL, label: 'SJ13/P3[24]/P1_8-CAPT_Y_LOW'} - {pin_num: '2', pin_signal: PIO0_13/ADC_10, label: 'J3[8]/P0_13'} - {pin_num: '3', pin_signal: PIO1_9/CAPT_YH, label: 'U3[54]/C19/P3[27]/CAPT_Y_HIGH'} - {pin_num: '9', pin_signal: PIO1_12, label: 'J3[9]/P1_12-I2C_SCL1'} - {pin_num: '10', pin_signal: PIO0_28, label: 'J2[2]/P0_28'} - {pin_num: '11', pin_signal: PIO1_13, label: 'J3[10]/P1_13-I2C_SDA1'} - {pin_num: '13', pin_signal: PIO0_31/CAPT_X0, label: 'P3[53]/P0_31-CAPT_X0'} - {pin_num: '15', pin_signal: PIO1_0/CAPT_X1, label: 'P3[52]/P1_0-CAPT_X1'} - {pin_num: '16', pin_signal: PIO0_11/I2C0_SDA, label: 'P3[40]/J1[2]/P0_11-I2C0_SDA'} - {pin_num: '17', pin_signal: PIO0_10/I2C0_SCL, label: 'P3[41]/J1[1]/P0_10-I2C0_SCL'} - {pin_num: '18', pin_signal: PIO1_1/CAPT_X2, label: 'P3[51]/P1_1-CAPT_X2'} - {pin_num: '19', pin_signal: PIO0_16, label: 'J1[10]/P0_16'} - {pin_num: '20', pin_signal: PIO1_2/CAPT_X3, label: 'P3[46]/P1_2'} - {pin_num: '21', pin_signal: PIO0_27, label: 'J3[2]/P0_27-SPI_MOSI'} - {pin_num: '22', pin_signal: PIO1_14, label: 'J1[9]/P1_14'} - {pin_num: '23', pin_signal: PIO0_26, label: 'J3[3]/P0_26-SPI_MISO'} - {pin_num: '27', pin_signal: PIO0_25, label: 'J2[7]/P3[48]/P0_25-ISP_U_TXD'} - {pin_num: '28', pin_signal: PIO0_24, label: 'J2[8]/P3[49]/P0_24-ISP_U_RXD'} - {pin_num: '29', pin_signal: PIO1_3/CAPT_X4, label: 'P3[39]/P1_3'} - {pin_num: '30', pin_signal: PIO0_15, label: 'J3[4]/P0_15-SPI_SCK'} - {pin_num: '31', pin_signal: PIO1_4/CAPT_X5, label: 'P3[38]/P1_4'} - {pin_num: '32', pin_signal: PIO0_1/ACMP_I2/CLKIN, label: 'P3[43]/J2[1]/P0_1-CLKIN'} - {pin_num: '33', pin_signal: PIO0_9/XTALOUT, label: 'P3[11]/U4[26]/P0_9-LINK_nWAKE'} - {pin_num: '34', pin_signal: PIO0_8/XTALIN, label: 'P3[12]/U4[27]/P0_8-LINK_nSLEEP'} - {pin_num: '35', pin_signal: PIO1_5/CAPT_X6, label: 'P3[8]/P1_5'} - {pin_num: '38', pin_signal: PIO1_6/CAPT_X7, label: 'P3[9]/P1_6'} - {pin_num: '43', pin_signal: PIO1_18, label: 'P3[42]/J1[8]/P1_18-SPI1_SSEL0'} - {pin_num: '44', pin_signal: PIO1_19, label: 'P3[5]/J1[7]/P1_19-SPI1_MOSI'} - {pin_num: '45', pin_signal: PIO0_7/ADC_0, label: 'P3[6]/J1[6]/P0_7-SPI1_MISO'} - {pin_num: '46', pin_signal: PIO0_6/ADC_1/ACMPVREF, label: 'P3[7]/J1[5]/P0_6-SPI1_SCK'} - {pin_num: '47', pin_signal: PIO1_7/CAPT_X8, label: 'P3[10]/P1_7'} - {pin_num: '49', pin_signal: PIO0_14/ACMP_I3/ADC_2, label: 'P3[15]/J6[1]/P0_14-ADC2-ACMP3'} - {pin_num: '50', pin_signal: PIO0_29/DACOUT_1, label: 'U1[3]/P0_29-DACOUT1'} - {pin_num: '51', pin_signal: PIO0_23/ADC_3/ACMP_I4, label: 'P3[16]/J6[2]/P0_23-ADC3-ACMP4'} - {pin_num: '54', pin_signal: PIO0_30/ACMP_I5, label: 'SJ14/P3[27]/U3[3]/CAPT_Y_HIGH'} - {pin_num: '55', pin_signal: PIO0_22/ADC_4, label: 'J3[1]/P0_22-SPI_SSEL'} - {pin_num: '56', pin_signal: PIO1_20, label: 'J2[3]/P1_20'} - {pin_num: '57', pin_signal: PIO0_21/ADC_5, label: 'J2[6]/P0_21'} - {pin_num: '58', pin_signal: PIO0_20/ADC_6, label: 'J2[5]/P0_20'} - {pin_num: '59', pin_signal: PIO1_21, label: 'J2[4]/P1_21'} - {pin_num: '60', pin_signal: PIO0_19/ADC_7, label: 'P3[17]/J6[3]/P0_19-ADC7'} - {pin_num: '61', pin_signal: PIO0_18/ADC_8, label: 'P3[19]/J6[4]/P0_18-ADC8'} - {pin_num: '62', pin_signal: PIO1_11, label: 'U1[7]/P3[21]/P1_11'} - {pin_num: '63', pin_signal: PIO0_17/ADC_9/DACOUT_0, label: 'P3[20]/J6[5]/P0_17-ADC9-DACOUT0'} - {pin_num: '64', pin_signal: PIO1_10, label: 'J3[7]/P1_10'} - {pin_num: '7', pin_signal: VDD7, label: 'JP2[1]/VDD'} - {pin_num: '26', pin_signal: VDD26, label: 'JP2[1]/C10/C11/C2/VDD'} - {pin_num: '39', pin_signal: VDD39, label: 'JP2[1]/C10/C11/C2/VDD'} - {pin_num: '52', pin_signal: VDDA, label: C17/FB6/VDDA} - {pin_num: '53', pin_signal: VSSA, label: GND} - {pin_num: '40', pin_signal: VSS40, label: GND} - {pin_num: '25', pin_signal: VSS25, label: GND} - {pin_num: '8', pin_signal: VSS8, label: GND} - {pin_num: '41', pin_signal: VREFN, label: C14/C25/VREFN} - {pin_num: '42', pin_signal: VREFP, label: C14/C25/FB3/VREFP} * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS *********** */ /* clang-format on */ #include "fsl_common.h" #include "fsl_iocon.h" #include "fsl_swm.h" #include "pin_mux.h" /* FUNCTION ************************************************************************************************************ * * Function Name : BOARD_InitBootPins * Description : Calls initialization functions. * * END ****************************************************************************************************************/ void BOARD_InitBootPins(void) { BOARD_InitPins(); BOARD_InitDEBUG_UARTPins(); } /* clang-format off */ /* * TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* BOARD_InitPins: - options: {callFromInitBoot: 'true', coreID: core0, enableClock: 'true'} - pin_list: [] * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS *********** */ /* clang-format on */ /* FUNCTION ************************************************************************************************************ * * Function Name : BOARD_InitPins * Description : Configures pin routing and optionally pin electrical features. * * END ****************************************************************************************************************/ /* Function assigned for the Cortex-M0P */ void BOARD_InitPins(void) { } /* clang-format off */ /* * TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* BOARD_InitLEDsPins: - options: {callFromInitBoot: 'false', coreID: core0, enableClock: 'true'} - pin_list: - {pin_num: '48', peripheral: GPIO, signal: 'PIO0, 0', pin_signal: PIO0_0/ACMP_I1, direction: OUTPUT, mode: pullUp, invert: disabled, hysteresis: enabled, opendrain: disabled, smode: bypass, clkdiv: div0} - {pin_num: '24', peripheral: GPIO, signal: 'PIO1, 15', pin_signal: PIO1_15, direction: OUTPUT, mode: pullUp, invert: disabled, hysteresis: enabled, opendrain: disabled, smode: bypass, clkdiv: div0} - {pin_num: '4', peripheral: GPIO, signal: 'PIO0, 12', pin_signal: PIO0_12, identifier: LED_RED, direction: OUTPUT, mode: pullUp, invert: disabled, hysteresis: enabled, opendrain: enabled, smode: bypass, clkdiv: div0} * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS *********** */ /* clang-format on */ /* FUNCTION ************************************************************************************************************ * * Function Name : BOARD_InitLEDsPins * Description : Configures pin routing and optionally pin electrical features. * * END ****************************************************************************************************************/ /* Function assigned for the Cortex-M0P */ void BOARD_InitLEDsPins(void) { /* Enables clock for IOCON.: enable */ CLOCK_EnableClock(kCLOCK_Iocon); const uint32_t pio17_config = (/* Selects pull-up function */ IOCON_PIO_MODE_PULLUP | /* Enable hysteresis */ IOCON_PIO_HYS_EN | /* Input not invert */ IOCON_PIO_INV_DI | /* Disables Open-drain function */ IOCON_PIO_OD_DI | /* Bypass input filter */ IOCON_PIO_SMODE_BYPASS | /* IOCONCLKDIV0 */ IOCON_PIO_CLKDIV0); /* PORT1 PIN7 (coords: ) is configured as */ IOCON_PinMuxSet(IOCON, 17, pio17_config); const uint32_t pio2_config = (/* Selects pull-up function */ IOCON_PIO_MODE_PULLUP | /* Enable hysteresis */ IOCON_PIO_HYS_EN | /* Input not invert */ IOCON_PIO_INV_DI | /* Enables Open-drain function */ IOCON_PIO_OD_EN | /* Bypass input filter */ IOCON_PIO_SMODE_BYPASS | /* IOCONCLKDIV0 */ IOCON_PIO_CLKDIV0); /* PORT2 PIN (coords: ) is configured as */ IOCON_PinMuxSet(IOCON, 2, pio2_config); const uint32_t pio40_config = (/* Selects pull-up function */ IOCON_PIO_MODE_PULLUP | /* Enable hysteresis */ IOCON_PIO_HYS_EN | /* Input not invert */ IOCON_PIO_INV_DI | /* Disables Open-drain function */ IOCON_PIO_OD_DI | /* Bypass input filter */ IOCON_PIO_SMODE_BYPASS | /* IOCONCLKDIV0 */ IOCON_PIO_CLKDIV0); /* PORT4 PIN0 (coords: ) is configured as */ IOCON_PinMuxSet(IOCON, 40, pio40_config); } /* clang-format off */ /* * TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* BOARD_InitDEBUG_UARTPins: - options: {callFromInitBoot: 'true', coreID: core0, enableClock: 'true'} - pin_list: - {pin_num: '37', peripheral: USART0, signal: TXD, pin_signal: PIO1_17, mode: pullUp, invert: disabled, hysteresis: enabled, opendrain: disabled, smode: bypass, clkdiv: div0} - {pin_num: '36', peripheral: USART0, signal: RXD, pin_signal: PIO1_16, mode: pullUp, invert: disabled, hysteresis: enabled, opendrain: disabled, smode: bypass, clkdiv: div0} * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS *********** */ /* clang-format on */ /* FUNCTION ************************************************************************************************************ * * Function Name : BOARD_InitDEBUG_UARTPins * Description : Configures pin routing and optionally pin electrical features. * * END ****************************************************************************************************************/ /* Function assigned for the Cortex-M0P */ void BOARD_InitDEBUG_UARTPins(void) { /* Enables clock for IOCON.: enable */ CLOCK_EnableClock(kCLOCK_Iocon); /* Enables clock for switch matrix.: enable */ CLOCK_EnableClock(kCLOCK_Swm); const uint32_t pio44_config = (/* Selects pull-up function */ IOCON_PIO_MODE_PULLUP | /* Enable hysteresis */ IOCON_PIO_HYS_EN | /* Input not invert */ IOCON_PIO_INV_DI | /* Disables Open-drain function */ IOCON_PIO_OD_DI | /* Bypass input filter */ IOCON_PIO_SMODE_BYPASS | /* IOCONCLKDIV0 */ IOCON_PIO_CLKDIV0); /* PORT4 PIN4 (coords: ) is configured as */ IOCON_PinMuxSet(IOCON, 44, pio44_config); const uint32_t pio45_config = (/* Selects pull-up function */ IOCON_PIO_MODE_PULLUP | /* Enable hysteresis */ IOCON_PIO_HYS_EN | /* Input not invert */ IOCON_PIO_INV_DI | /* Disables Open-drain function */ IOCON_PIO_OD_DI | /* Bypass input filter */ IOCON_PIO_SMODE_BYPASS | /* IOCONCLKDIV0 */ IOCON_PIO_CLKDIV0); /* PORT4 PIN5 (coords: ) is configured as */ IOCON_PinMuxSet(IOCON, 45, pio45_config); /* USART0_TXD connect to P1_17 */ SWM_SetMovablePinSelect(SWM0, kSWM_USART0_TXD, kSWM_PortPin_P1_17); /* USART0_RXD connect to P1_16 */ SWM_SetMovablePinSelect(SWM0, kSWM_USART0_RXD, kSWM_PortPin_P1_16); /* Disable clock for switch matrix. */ CLOCK_DisableClock(kCLOCK_Swm); } /* clang-format off */ /* * TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* BOARD_InitSWD_DEBUGPins: - options: {callFromInitBoot: 'false', coreID: core0, enableClock: 'true'} - pin_list: - {pin_num: '12', peripheral: SWD, signal: SWCLK, pin_signal: SWCLK/PIO0_3, mode: pullUp, invert: disabled, hysteresis: enabled, opendrain: disabled, smode: bypass, clkdiv: div0} - {pin_num: '14', peripheral: SWD, signal: SWDIO, pin_signal: SWDIO/PIO0_2, mode: pullUp, invert: disabled, hysteresis: enabled, opendrain: disabled, smode: bypass, clkdiv: div0} - {pin_num: '5', peripheral: SYSCON, signal: RESETN, pin_signal: RESETN/PIO0_5, mode: pullUp, invert: disabled, hysteresis: enabled, opendrain: disabled, smode: bypass, clkdiv: div0} * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS *********** */ /* clang-format on */ /* FUNCTION ************************************************************************************************************ * * Function Name : BOARD_InitSWD_DEBUGPins * Description : Configures pin routing and optionally pin electrical features. * * END ****************************************************************************************************************/ /* Function assigned for the Cortex-M0P */ void BOARD_InitSWD_DEBUGPins(void) { /* Enables clock for IOCON.: enable */ CLOCK_EnableClock(kCLOCK_Iocon); /* Enables clock for switch matrix.: enable */ CLOCK_EnableClock(kCLOCK_Swm); const uint32_t pio3_config = (/* Selects pull-up function */ IOCON_PIO_MODE_PULLUP | /* Enable hysteresis */ IOCON_PIO_HYS_EN | /* Input not invert */ IOCON_PIO_INV_DI | /* Disables Open-drain function */ IOCON_PIO_OD_DI | /* Bypass input filter */ IOCON_PIO_SMODE_BYPASS | /* IOCONCLKDIV0 */ IOCON_PIO_CLKDIV0); /* PORT3 PIN (coords: ) is configured as */ IOCON_PinMuxSet(IOCON, 3, pio3_config); const uint32_t pio5_config = (/* Selects pull-up function */ IOCON_PIO_MODE_PULLUP | /* Enable hysteresis */ IOCON_PIO_HYS_EN | /* Input not invert */ IOCON_PIO_INV_DI | /* Disables Open-drain function */ IOCON_PIO_OD_DI | /* Bypass input filter */ IOCON_PIO_SMODE_BYPASS | /* IOCONCLKDIV0 */ IOCON_PIO_CLKDIV0); /* PORT5 PIN (coords: ) is configured as */ IOCON_PinMuxSet(IOCON, 5, pio5_config); const uint32_t pio6_config = (/* Selects pull-up function */ IOCON_PIO_MODE_PULLUP | /* Enable hysteresis */ IOCON_PIO_HYS_EN | /* Input not invert */ IOCON_PIO_INV_DI | /* Disables Open-drain function */ IOCON_PIO_OD_DI | /* Bypass input filter */ IOCON_PIO_SMODE_BYPASS | /* IOCONCLKDIV0 */ IOCON_PIO_CLKDIV0); /* PORT6 PIN (coords: ) is configured as */ IOCON_PinMuxSet(IOCON, 6, pio6_config); /* SWCLK connect to P0_3 */ SWM_SetFixedPinSelect(SWM0, kSWM_SWCLK, true); /* SWDIO connect to P0_2 */ SWM_SetFixedPinSelect(SWM0, kSWM_SWDIO, true); /* RESETN connect to P0_5 */ SWM_SetFixedPinSelect(SWM0, kSWM_RESETN, true); /* Disable clock for switch matrix. */ CLOCK_DisableClock(kCLOCK_Swm); } /* clang-format off */ /* * TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* BOARD_InitBUTTONsPins: - options: {callFromInitBoot: 'false', coreID: core0, enableClock: 'true'} - pin_list: - {pin_num: '4', peripheral: GPIO, signal: 'PIO0, 12', pin_signal: PIO0_12, identifier: SW1, direction: INPUT, mode: pullUp, invert: disabled, hysteresis: enabled, opendrain: disabled, smode: bypass, clkdiv: div0} - {pin_num: '6', peripheral: GPIO, signal: 'PIO0, 4', pin_signal: PIO0_4/ADC_11, direction: INPUT, mode: pullUp, invert: disabled, hysteresis: enabled, opendrain: disabled, smode: bypass, clkdiv: div0} * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS *********** */ /* clang-format on */ /* FUNCTION ************************************************************************************************************ * * Function Name : BOARD_InitBUTTONsPins * Description : Configures pin routing and optionally pin electrical features. * * END ****************************************************************************************************************/ /* Function assigned for the Cortex-M0P */ void BOARD_InitBUTTONsPins(void) { /* Enables clock for IOCON.: enable */ CLOCK_EnableClock(kCLOCK_Iocon); const uint32_t pio2_config = (/* Selects pull-up function */ IOCON_PIO_MODE_PULLUP | /* Enable hysteresis */ IOCON_PIO_HYS_EN | /* Input not invert */ IOCON_PIO_INV_DI | /* Disables Open-drain function */ IOCON_PIO_OD_DI | /* Bypass input filter */ IOCON_PIO_SMODE_BYPASS | /* IOCONCLKDIV0 */ IOCON_PIO_CLKDIV0); /* PORT2 PIN (coords: ) is configured as */ IOCON_PinMuxSet(IOCON, 2, pio2_config); const uint32_t pio4_config = (/* Selects pull-up function */ IOCON_PIO_MODE_PULLUP | /* Enable hysteresis */ IOCON_PIO_HYS_EN | /* Input not invert */ IOCON_PIO_INV_DI | /* Disables Open-drain function */ IOCON_PIO_OD_DI | /* Bypass input filter */ IOCON_PIO_SMODE_BYPASS | /* IOCONCLKDIV0 */ IOCON_PIO_CLKDIV0); /* PORT4 PIN (coords: ) is configured as */ IOCON_PinMuxSet(IOCON, 4, pio4_config); /* Disable clock for switch matrix. */ CLOCK_DisableClock(kCLOCK_Swm); } /*********************************************************************************************************************** * EOF **********************************************************************************************************************/