I2C2 is configured incorrectly at the moment: * update i2c2 to actually work (fix incorrect pinctrl assignments) * add the i2c2 bus recovery information [1] [1] Note that scl is being marked as GPIO_OPEN_DRAIN even though the i.MX pinctrl driver does not support enabling open drain directly - it is enabled by the fixed pinmux entry. So while this flag has no effect in practice, it needs to be there purely so as to fix the following warning from gpiolib: gpio-6 (scl): enforced open drain please flag it properly in DT/ACPI DSDT/board file as that is the mode requested by i2c-imx.c Signed-off-by: André Draszik <git@xxxxxxxxxx> Cc: Ilya Ledvich <ilya@xxxxxxxxxxxxxx> Cc: Igor Grinberg <grinberg@xxxxxxxxxxxxxx> Cc: Rob Herring <robh+dt@xxxxxxxxxx> Cc: Mark Rutland <mark.rutland@xxxxxxx> Cc: Shawn Guo <shawnguo@xxxxxxxxxx> Cc: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> Cc: Pengutronix Kernel Team <kernel@xxxxxxxxxxxxxx> Cc: Fabio Estevam <festevam@xxxxxxxxx> Cc: NXP Linux Team <linux-imx@xxxxxxx> Cc: devicetree@xxxxxxxxxxxxxxx Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx --- arch/arm/boot/dts/imx7d-cl-som-imx7.dts | 26 +++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts index e0432a3aa36f..ec82f4738c4f 100644 --- a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts +++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts @@ -72,8 +72,11 @@ }; &i2c2 { - pinctrl-names = "default"; + pinctrl-names = "default", "gpio"; pinctrl-0 = <&pinctrl_i2c2>; + pinctrl-1 = <&pinctrl_i2c2_recovery>; + sda-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; + scl-gpios = <&gpio1 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; status = "okay"; pmic: pmic@8 { @@ -236,13 +239,6 @@ >; }; - pinctrl_i2c2: i2c2grp { - fsl,pins = < - MX7D_PAD_I2C2_SDA__I2C2_SDA 0x4000007f - MX7D_PAD_I2C2_SCL__I2C2_SCL 0x4000007f - >; - }; - pinctrl_uart1: uart1grp { fsl,pins = < MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX 0x79 @@ -273,4 +269,18 @@ MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4 0x34 >; }; + + pinctrl_i2c2: i2c2grp { + fsl,pins = < + MX7D_PAD_LPSR_GPIO1_IO07__I2C2_SDA 0x4000000f + MX7D_PAD_LPSR_GPIO1_IO06__I2C2_SCL 0x4000000f + >; + }; + + pinctrl_i2c2_recovery: i2c2recoverygrp { + fsl,pins = < + MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7 0x4000007f + MX7D_PAD_LPSR_GPIO1_IO06__GPIO1_IO6 0x4000007f + >; + }; }; -- 2.23.0.rc1