|  | /* | 
|  | * Copyright (c) 2019, NXP | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | #include <init.h> | 
|  | #include <fsl_iomuxc.h> | 
|  | #include <fsl_gpio.h> | 
|  |  | 
|  | static int mimxrt1015_evk_init(struct device *dev) | 
|  | { | 
|  | ARG_UNUSED(dev); | 
|  |  | 
|  | CLOCK_EnableClock(kCLOCK_Iomuxc); | 
|  | CLOCK_EnableClock(kCLOCK_IomuxcSnvs); | 
|  |  | 
|  | #ifdef CONFIG_GPIO_MCUX_IGPIO_2 | 
|  | IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_09_GPIO2_IO09, 0); | 
|  | IOMUXC_SetPinConfig(IOMUXC_GPIO_EMC_09_GPIO2_IO09, | 
|  | IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | | 
|  | IOMUXC_SW_PAD_CTL_PAD_PUE(1) | | 
|  | IOMUXC_SW_PAD_CTL_PAD_PUS(2) | | 
|  | IOMUXC_SW_PAD_CTL_PAD_SPEED(2) | | 
|  | IOMUXC_SW_PAD_CTL_PAD_DSE(4)); | 
|  | #endif | 
|  |  | 
|  | #ifdef CONFIG_UART_MCUX_LPUART_1 | 
|  | /* LPUART1 TX/RX */ | 
|  | IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_06_LPUART1_TX, 0); | 
|  | IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_07_LPUART1_RX, 0); | 
|  |  | 
|  | IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B0_06_LPUART1_TX, | 
|  | IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | | 
|  | IOMUXC_SW_PAD_CTL_PAD_SPEED(2) | | 
|  | IOMUXC_SW_PAD_CTL_PAD_DSE(6)); | 
|  |  | 
|  | IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B0_07_LPUART1_RX, | 
|  | IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | | 
|  | IOMUXC_SW_PAD_CTL_PAD_SPEED(2) | | 
|  | IOMUXC_SW_PAD_CTL_PAD_DSE(6)); | 
|  | #endif | 
|  |  | 
|  | #ifdef CONFIG_UART_MCUX_LPUART_4 | 
|  | /* LPUART4 TX/RX */ | 
|  | IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_32_LPUART4_TX, 0); | 
|  | IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_33_LPUART4_RX, 0); | 
|  |  | 
|  | IOMUXC_SetPinConfig(IOMUXC_GPIO_EMC_32_LPUART4_TX, | 
|  | IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | | 
|  | IOMUXC_SW_PAD_CTL_PAD_SPEED(2) | | 
|  | IOMUXC_SW_PAD_CTL_PAD_DSE(6)); | 
|  |  | 
|  | IOMUXC_SetPinConfig(IOMUXC_GPIO_EMC_33_LPUART4_RX, | 
|  | IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | | 
|  | IOMUXC_SW_PAD_CTL_PAD_SPEED(2) | | 
|  | IOMUXC_SW_PAD_CTL_PAD_DSE(6)); | 
|  | #endif | 
|  |  | 
|  | #ifdef CONFIG_I2C_1 | 
|  | /* LPI2C1 SCL, SDA */ | 
|  | IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B1_14_LPI2C1_SCL, 1); | 
|  | IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B1_15_LPI2C1_SDA, 1); | 
|  |  | 
|  | IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B1_14_LPI2C1_SCL, | 
|  | IOMUXC_SW_PAD_CTL_PAD_PUS(3) | | 
|  | IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | | 
|  | IOMUXC_SW_PAD_CTL_PAD_ODE_MASK | | 
|  | IOMUXC_SW_PAD_CTL_PAD_SPEED(2) | | 
|  | IOMUXC_SW_PAD_CTL_PAD_DSE(6)); | 
|  |  | 
|  | IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B1_15_LPI2C1_SDA, | 
|  | IOMUXC_SW_PAD_CTL_PAD_PUS(3) | | 
|  | IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | | 
|  | IOMUXC_SW_PAD_CTL_PAD_ODE_MASK | | 
|  | IOMUXC_SW_PAD_CTL_PAD_SPEED(2) | | 
|  | IOMUXC_SW_PAD_CTL_PAD_DSE(6)); | 
|  | #endif | 
|  |  | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | SYS_INIT(mimxrt1015_evk_init, PRE_KERNEL_1, 0); |