colibri-imx8x: add on-module gpio expander fxl6408
authorOleksandr Suvorov <oleksandr.suvorov@toradex.com>
Sun, 21 Nov 2021 16:05:17 +0000 (18:05 +0200)
committerStefano Babic <sbabic@denx.de>
Sat, 5 Feb 2022 12:38:39 +0000 (13:38 +0100)
The FXL6408 GPIO expander manages critical devices,
including on-module USB hub. Configure the expander to
switch the USB hub into bypass mode, allowing to use
on-carrier-board USB hub.

Signed-off-by: Oleksandr Suvorov <cryosay@gmail.com>
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
arch/arm/dts/fsl-imx8qxp-colibri.dts
configs/colibri-imx8x_defconfig

index 11ece34..df992ac 100644 (file)
                        >;
                };
 
+               /* On Module I2C */
+               pinctrl_i2c0: i2c0grp {
+                       fsl,pins = <
+                               SC_P_MIPI_CSI0_GPIO0_00_ADMA_I2C0_SCL   0x06000021
+                               SC_P_MIPI_CSI0_GPIO0_01_ADMA_I2C0_SDA   0x06000021
+                       >;
+               };
+
                /* Off Module I2C */
                pinctrl_i2c1: i2c1grp {
                        fsl,pins = <
        };
 };
 
+&i2c0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c0>;
+       status = "okay";
+
+       /* GPIO expander */
+       gpio_expander_43: gpio-expander@43 {
+               compatible = "fcs,fxl6408";
+               gpio-controller;
+               #gpio-cells = <2>;
+               reg = <0x43>;
+               initial_io_dir = <0xff>;
+               initial_output = <0x05>;
+       };
+};
+
 &i2c1 {
        #address-cells = <1>;
        #size-cells = <0>;
index 22bed95..a9b0f35 100644 (file)
@@ -41,6 +41,7 @@ CONFIG_TFTP_BLOCKSIZE=4096
 CONFIG_TFTP_TSIZE=y
 CONFIG_CLK_IMX8=y
 CONFIG_CPU=y
+CONFIG_FXL6408_GPIO=y
 CONFIG_MXC_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_IMX_LPI2C=y