From 026feadbe3f804ec589f2e93fd15af5cbb96dbba Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Wed, 16 Jan 2019 18:10:13 -0600 Subject: [PATCH] arch/arm/src/imxrt/imxrt_lpi2c.c: I2C Reset rework --- arch/arm/src/imxrt/imxrt_lpi2c.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/imxrt/imxrt_lpi2c.c b/arch/arm/src/imxrt/imxrt_lpi2c.c index 1bcff9eaec..2899d4e055 100644 --- a/arch/arm/src/imxrt/imxrt_lpi2c.c +++ b/arch/arm/src/imxrt/imxrt_lpi2c.c @@ -126,6 +126,16 @@ #define LPI2C_MASTER 1 #define LPI2C_SLAVE 2 +#define MKI2C_OUTPUT(p) (((p) & GPIO_PADMUX_MASK) | \ + IOMUX_OPENDRAIN | IOMUX_DRIVE_33OHM | \ + IOMUX_SLEW_SLOW | (5 << GPIO_ALT_SHIFT) | \ + IOMUX_PULL_NONE | GPIO_OUTPUT_ONE) + +#define MKI2C_INPUT(p) (((p) & GPIO_PADMUX_MASK) | \ + IOMUX_DRIVE_HIZ | IOMUX_SLEW_SLOW | \ + IOMUX_CMOS_INPUT | (5 << GPIO_ALT_SHIFT) | \ + IOMUX_PULL_NONE) + /************************************************************************************ * Private Types ************************************************************************************/ @@ -1785,8 +1795,11 @@ static int imxrt_lpi2c_reset(FAR struct i2c_master_s *dev) /* Revert the GPIO configuration. */ - imxrt_unconfig_gpio(sda_gpio); - imxrt_unconfig_gpio(scl_gpio); + sda_gpio = MKI2C_INPUT(sda_gpio); + scl_gpio = MKI2C_INPUT(scl_gpio); + + imxrt_config_gpio(sda_gpio); + imxrt_config_gpio(scl_gpio); /* Re-init the port */