boards: mimxrt1020_evk: Enable mcux lpi2c driver and pins

Enables the mcux lpi2c shim driver and pin muxes on the mimxrt1020_evk
board for LPI2C1 and LPI2C4. LPI2C1 is shared between the Arduino
connector J18 and the WM8960 codec. LPI2C4 is shared between the Arduino
connector J19 and the FXOS8700CQ sensor (non-populated by default).

Updates the board documentation and yaml supported list accordingly.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
Aurelien Jarno 2019-01-20 15:37:42 +01:00 committed by Kumar Gala
commit 14e7be3e34
5 changed files with 72 additions and 0 deletions

View file

@ -20,6 +20,16 @@ config GPIO_MCUX_IGPIO_5
endif # GPIO_MCUX_IGPIO
if I2C_MCUX_LPI2C
config I2C_1
default y
config I2C_4
default y
endif # I2C_MCUX_LPI2C
if UART_MCUX_LPUART
config UART_MCUX_LPUART_1

View file

@ -75,6 +75,8 @@ features:
+-----------+------------+-------------------------------------+
| GPIO | on-chip | gpio |
+-----------+------------+-------------------------------------+
| I2C | on-chip | i2c |
+-----------+------------+-------------------------------------+
| UART | on-chip | serial port-polling; |
| | | serial port-interrupt |
+-----------+------------+-------------------------------------+
@ -104,6 +106,14 @@ The MIMXRT1020 SoC has five pairs of pinmux/gpio controllers.
+---------------+-----------------+---------------------------+
| GPIO_AD_B1_09 | LPUART2_RX | UART BT HCI |
+---------------+-----------------+---------------------------+
| GPIO_AD_B1_14 | LPI2C1_SCL | I2C |
+---------------+-----------------+---------------------------+
| GPIO_AD_B1_15 | LPI2C1_SDA | I2C |
+---------------+-----------------+---------------------------+
| GPIO_SD_B1_02 | LPI2C4_SCL | I2C |
+---------------+-----------------+---------------------------+
| GPIO_SD_B1_03 | LPI2C4_SDA | I2C |
+---------------+-----------------+---------------------------+
| WAKEUP | GPIO | SW0 |
+---------------+-----------------+---------------------------+
| GPIO_AD_B0_04 | ENET_RST | Ethernet |

View file

@ -18,6 +18,8 @@
gpio-3= &gpio3;
gpio-4= &gpio4;
gpio-5= &gpio5;
i2c-1 = &i2c1;
i2c-4 = &i2c4;
uart-1 = &uart1;
led0 = &green_led;
sw0 = &user_button;
@ -69,6 +71,14 @@ arduino_serial: &uart2 {};
};
};
&i2c1 {
status = "ok";
};
&i2c4 {
status = "ok";
};
&uart1 {
status = "ok";
current-speed = <115200>;

View file

@ -14,3 +14,5 @@ toolchain:
- xtools
ram: 128
flash: 128
supported:
- i2c

View file

@ -66,6 +66,46 @@ static int mimxrt1020_evk_init(struct device *dev)
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
#ifdef CONFIG_I2C_4
/* LPI2C4 SCL, SDA */
IOMUXC_SetPinMux(IOMUXC_GPIO_SD_B1_02_LPI2C4_SCL, 1);
IOMUXC_SetPinMux(IOMUXC_GPIO_SD_B1_03_LPI2C4_SDA, 1);
IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_02_LPI2C4_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_SD_B1_03_LPI2C4_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_04_GPIO1_IO04, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B1_06_GPIO1_IO22, 0U);