
-----Original Message----- From: Stephen Carlson stcarlso@linux.microsoft.com Sent: Friday, June 25, 2021 1:02 AM To: U-Boot Mailing List u-boot@lists.denx.de Cc: Priyanka Jain priyanka.jain@nxp.com Subject: [PATCH v2 01/14] board: freescale: Refactor NXP common mux code
Refactors similar mux code from multiple NXP boards into a common location, and allows it to be disabled in config.
New config: CONFIG_FSL_USE_PCA9547_MUX to enable PCA9547 mux functionality.
Signed-off-by: Stephen Carlson stcarlso@linux.microsoft.com
board/freescale/common/Kconfig | 6 +++ board/freescale/common/Makefile | 11 ++++++ board/freescale/common/i2c_common.c | 34 +++++++++++++++++ board/freescale/common/i2c_common.h | 30 +++++++++++++++ board/freescale/common/i2c_mux.c | 40 ++++++++++++++++++++ board/freescale/common/i2c_mux.h | 15 ++++++++ board/freescale/common/vid.c | 58 ++++++----------------------- 7 files changed, 148 insertions(+), 46 deletions(-) create mode 100644 board/freescale/common/i2c_common.c create mode 100644 board/freescale/common/i2c_common.h create mode 100644 board/freescale/common/i2c_mux.c create mode 100644 board/freescale/common/i2c_mux.h
diff --git a/board/freescale/common/Kconfig b/board/freescale/common/Kconfig index 17db755951..ab9c14ae88 100644 --- a/board/freescale/common/Kconfig +++ b/board/freescale/common/Kconfig @@ -21,6 +21,12 @@ config CMD_ESBC_VALIDATE esbc_validate - validate signature using RSA verification esbc_halt - put the core in spin loop (Secure Boot Only)
+config FSL_USE_PCA9547_MUX
- bool "Enable PCA9547 I2C Mux on Freescale boards"
- default n
- help
This option enables the PCA9547 I2C mux on Freescale boards.
config VID depends on DM_I2C bool "Enable Freescale VID" diff --git a/board/freescale/common/Makefile b/board/freescale/common/Makefile index 114b7ba8f9..45aaa16ca4 100644 --- a/board/freescale/common/Makefile +++ b/board/freescale/common/Makefile @@ -15,6 +15,15 @@ ifdef MINIMAL # necessary to create built-in.o obj- := __dummy__.o else +# include i2c_common.o once if either VID or FSL_USE_PCA9547_MUX +I2C_COMMON= ifdef CONFIG_VID I2C_COMMON=y endif ifdef +CONFIG_FSL_USE_PCA9547_MUX I2C_COMMON=y endif
obj-$(CONFIG_FSL_CADMUS) += cadmus.o obj-$(CONFIG_FSL_VIA) += cds_via.o obj-$(CONFIG_FMAN_ENET) += fman.o @@ -22,6 +31,8 @@ obj-$(CONFIG_FSL_PIXIS) += pixis.o ifndef CONFIG_SPL_BUILD obj-$(CONFIG_FSL_NGPIXIS) += ngpixis.o endif +obj-$(I2C_COMMON) += i2c_common.o +obj-$(CONFIG_FSL_USE_PCA9547_MUX) += i2c_mux.o obj-$(CONFIG_VID) += vid.o obj-$(CONFIG_FSL_QIXIS) += qixis.o obj-$(CONFIG_PQ_MDS_PIB) += pq-mds-pib.o diff --git a/board/freescale/common/i2c_common.c b/board/freescale/common/i2c_common.c new file mode 100644 index 0000000000..0f09ed7d34 --- /dev/null +++ b/board/freescale/common/i2c_common.c @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- Copyright 2014 Freescale Semiconductor, Inc.
- Copyright 2020-21 NXP
- Copyright 2021 Microsoft Corporation */
+#include <common.h> +#include <i2c.h> +#include "i2c_common.h"
+#ifdef CONFIG_DM_I2C
+/* If DM is in use, retrieve the chip for the specified bus number */ +int fsl_i2c_get_device(int address, int bus, DEVICE_HANDLE_T *dev) {
- int ret = i2c_get_chip_for_busnum(bus, address, 1, dev);
- if (ret)
printf("I2C: Bus %d has no device with address 0x%02X\n",
bus, address);
- return ret;
+}
+#else
+/* Handle is passed directly */ +int fsl_i2c_get_device(int address, int bus, DEVICE_HANDLE_T *dev) {
- *dev = address;
- return 0;
+}
+#endif
<snip> Stephen,
All patches in the series has one extra space character in start on each line due to which patch does not apply with git am. Please re-send the series after removing the extra character. Do ensure git am <patch> run successfully.
Also there are some changes in vid.c on master branch, please rebase to top.
Regards Priyanka