[PATCH v4 2/2] colibri-imx8x: add on-module gpio expander fxl6408
Oleksandr Suvorov
oleksandr.suvorov at foundries.io
Sun Nov 21 17:05:17 CET 2021
From: Oleksandr Suvorov <oleksandr.suvorov at toradex.com>
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 at gmail.com>
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov at foundries.io>
---
Changes in v4:
- fix misuse of MF_ID_x instead of FW_REV_x in fxl6408_probe().
- fix kernel doc formatting.
- sort headers.
- fix hex numbers style.
- explicitly claim values of enum io_direction.
- simplify fxl6408_get_function().
- make variable naming better in fxl6408_probe().
Changes in v3:
- fix a warning:
"drivers/gpio/gpio-fxl6408.c:348:15: warning: format
‘%ld’ expects argument of type ‘long int’, but argument
3 has type ‘int’ [-Wformat=]"
- add Tested-by record.
Changes in v2:
- Kconfig: add better description for the config option.
- gpio-fxl6408.c:
-- improve registers' naming.
-- fix code style (comments, etc.).
-- reimplement fxl6408_read() reducing number of parameters.
-- change return value of fxl6408_is_output() to bool.
-- replace IS_ERR_VALUE() macros with simple x < 0 where it's
possible.
-- fxl6408_set_direction(): fix type of parameter "dir".
-- fix return error codes to avoid using the predefined in the driver
model ones.
-- removed extra debug code.
-- expand TODO list.
arch/arm/dts/fsl-imx8qxp-colibri.dts | 27 +++++++++++++++++++++++++++
configs/colibri-imx8x_defconfig | 1 +
2 files changed, 28 insertions(+)
diff --git a/arch/arm/dts/fsl-imx8qxp-colibri.dts b/arch/arm/dts/fsl-imx8qxp-colibri.dts
index 11ece34c024..df992ac6396 100644
--- a/arch/arm/dts/fsl-imx8qxp-colibri.dts
+++ b/arch/arm/dts/fsl-imx8qxp-colibri.dts
@@ -129,6 +129,14 @@
>;
};
+ /* 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 = <
@@ -298,6 +306,25 @@
};
};
+&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 at 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>;
diff --git a/configs/colibri-imx8x_defconfig b/configs/colibri-imx8x_defconfig
index 22bed95324a..a9b0f357163 100644
--- a/configs/colibri-imx8x_defconfig
+++ b/configs/colibri-imx8x_defconfig
@@ -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
--
2.33.1
More information about the U-Boot
mailing list