diff --git a/boards/arm/mimxrt1064_evk/Kconfig.defconfig b/boards/arm/mimxrt1064_evk/Kconfig.defconfig index 26967734402..64272c4cb9f 100644 --- a/boards/arm/mimxrt1064_evk/Kconfig.defconfig +++ b/boards/arm/mimxrt1064_evk/Kconfig.defconfig @@ -28,6 +28,13 @@ config GPIO_MCUX_IGPIO_5 endif # GPIO_MCUX_IGPIO +if I2C_MCUX_LPI2C + +config I2C_1 + default y + +endif # I2C_MCUX_LPI2C + if UART_MCUX_LPUART config UART_MCUX_LPUART_1 diff --git a/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts b/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts index 16e1cf0cf61..9f4d332d58f 100644 --- a/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts +++ b/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts @@ -62,6 +62,8 @@ }; }; +arduino_i2c: &i2c1 {}; + &lcdif1 { status = "ok"; port { @@ -71,6 +73,10 @@ }; }; +&i2c1 { + status = "ok"; +}; + &uart1 { status = "ok"; current-speed = <115200>; diff --git a/boards/arm/mimxrt1064_evk/mimxrt1064_evk.yaml b/boards/arm/mimxrt1064_evk/mimxrt1064_evk.yaml index eb693edd8c1..13b6c8b2741 100644 --- a/boards/arm/mimxrt1064_evk/mimxrt1064_evk.yaml +++ b/boards/arm/mimxrt1064_evk/mimxrt1064_evk.yaml @@ -18,3 +18,4 @@ supported: - display - hwinfo - netif:eth + - i2c diff --git a/boards/arm/mimxrt1064_evk/pinmux.c b/boards/arm/mimxrt1064_evk/pinmux.c index 1515b6c3c5a..65c8faf5680 100644 --- a/boards/arm/mimxrt1064_evk/pinmux.c +++ b/boards/arm/mimxrt1064_evk/pinmux.c @@ -111,6 +111,26 @@ static int mimxrt1064_evk_init(struct device *dev) GPIO_PinInit(GPIO2, 31, &config); #endif +#ifdef CONFIG_I2C_1 + /* LPI2C1 SCL, SDA */ + IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B1_00_LPI2C1_SCL, 1); + IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B1_01_LPI2C1_SDA, 1); + + IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B1_00_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_01_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 + #ifdef CONFIG_ETH_MCUX_0 IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_09_GPIO1_IO09, 0U); IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_10_GPIO1_IO10, 0U); diff --git a/soc/arm/nxp_imx/rt/Kconfig.soc b/soc/arm/nxp_imx/rt/Kconfig.soc index f7ba92da585..3459bd00221 100644 --- a/soc/arm/nxp_imx/rt/Kconfig.soc +++ b/soc/arm/nxp_imx/rt/Kconfig.soc @@ -120,6 +120,7 @@ config SOC_MIMXRT1064 select HAS_MCUX_ELCDIF select HAS_MCUX_ENET select HAS_MCUX_IGPIO + select HAS_MCUX_LPI2C select HAS_MCUX_LPUART select HAS_MCUX_TRNG select CPU_HAS_FPU_DOUBLE_PRECISION