[U-Boot] [PATCH v2 0/7] imx6: icorem6: Add framebuffer and I2C support

From: Jagan Teki jagan@amarulasolutions.com
This series support framebuffer and I2C on top of u-boot-imx.git with latest u-boot.git merge.
Changes for v2: - Rebase on u-boot-imx.git and u-boot.git
Jagan Teki (7): video: Kconfig: Add VIDEO_IPV3 entry imx6: icorem6: Add framebuffer support imx6: icorem6: Add custom splashscreen support i2c: Kconfig: Add SYS_I2C_MXC entry i2c: mxc: Print hex instead of decimal for bus address i2c: mxc: Make 'no gpio pinctrl state' print as debug imx6: icorem6: Add I2C support
arch/arm/cpu/armv7/mx6/Kconfig | 1 + board/engicam/icorem6/icorem6.c | 113 +++++++++++++++++++++++++++++++++++ configs/imx6qdl_icore_mmc_defconfig | 5 +- configs/imx6qdl_icore_nand_defconfig | 5 +- drivers/i2c/Kconfig | 8 +++ drivers/i2c/mxc_i2c.c | 2 +- drivers/video/Kconfig | 8 +++ include/configs/imx6qdl_icore.h | 14 +++++ tools/logos/engicam.bmp | Bin 0 -> 60214 bytes 9 files changed, 153 insertions(+), 3 deletions(-) create mode 100755 tools/logos/engicam.bmp

From: Jagan Teki jagan@amarulasolutions.com
Added kconfig entry for CONFIG_VIDEO_IPV3 driver.
Cc: Anatolij Gustschin agust@denx.de Cc: Stefano Babic sbabic@denx.de Cc: Matteo Lisi matteo.lisi@engicam.com Cc: Michael Trimarchi michael@amarulasolutions.com Signed-off-by: Jagan Teki jagan@amarulasolutions.com --- drivers/video/Kconfig | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 577e6d7..134f1c8 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -443,6 +443,14 @@ config VIDEO model. Video drivers typically provide a colour text console and cursor.
+config VIDEO_IPUV3 + bool "i.MX IPUv3 Core video support" + depends on MX6 + default y if VIDEO + help + This enables framebuffer driver for i.MX processors working + on the IPUv3(Image Processing Unit) internal graphic processor. + config CFB_CONSOLE bool "Enable colour frame buffer console" depends on VIDEO

Hi Jagan,
On 28/10/2016 15:57, Jagan Teki wrote:
From: Jagan Teki jagan@amarulasolutions.com
Added kconfig entry for CONFIG_VIDEO_IPV3 driver.
Cc: Anatolij Gustschin agust@denx.de Cc: Stefano Babic sbabic@denx.de Cc: Matteo Lisi matteo.lisi@engicam.com Cc: Michael Trimarchi michael@amarulasolutions.com Signed-off-by: Jagan Teki jagan@amarulasolutions.com
drivers/video/Kconfig | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 577e6d7..134f1c8 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -443,6 +443,14 @@ config VIDEO model. Video drivers typically provide a colour text console and cursor.
+config VIDEO_IPUV3
- bool "i.MX IPUv3 Core video support"
- depends on MX6
- default y if VIDEO
- help
This enables framebuffer driver for i.MX processors working
on the IPUv3(Image Processing Unit) internal graphic processor.
config CFB_CONSOLE bool "Enable colour frame buffer console" depends on VIDEO
I have difficulties with your patches. They have updated and moved configuration to Kconfig, but they do not care of the existing boards.
This series breaks a lot of boards except yours - I cannot merge it.
The same thing happens to the series I have already merged (but not pushed to the server) with "Use CONFIG_DM_ETH support". I have merged it and pushed to u-boot-imx, -next, so you can easier see what happens. Both series break existing board and I cannot take them, and even if they are improving i.MX code with new features.
Can you take a look at fix them in the order:
- first the FEC series ==> see -next branch - then the IPU (this series).
Thanks, Stefano

Hi Stefano,
On Tue, Nov 29, 2016 at 11:22 PM, Stefano Babic sbabic@denx.de wrote:
Hi Jagan,
On 28/10/2016 15:57, Jagan Teki wrote:
From: Jagan Teki jagan@amarulasolutions.com
Added kconfig entry for CONFIG_VIDEO_IPV3 driver.
Cc: Anatolij Gustschin agust@denx.de Cc: Stefano Babic sbabic@denx.de Cc: Matteo Lisi matteo.lisi@engicam.com Cc: Michael Trimarchi michael@amarulasolutions.com Signed-off-by: Jagan Teki jagan@amarulasolutions.com
drivers/video/Kconfig | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 577e6d7..134f1c8 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -443,6 +443,14 @@ config VIDEO model. Video drivers typically provide a colour text console and cursor.
+config VIDEO_IPUV3
bool "i.MX IPUv3 Core video support"
depends on MX6
default y if VIDEO
help
This enables framebuffer driver for i.MX processors working
on the IPUv3(Image Processing Unit) internal graphic processor.
config CFB_CONSOLE bool "Enable colour frame buffer console" depends on VIDEO
I have difficulties with your patches. They have updated and moved configuration to Kconfig, but they do not care of the existing boards.
This series breaks a lot of boards except yours - I cannot merge it.
The same thing happens to the series I have already merged (but not pushed to the server) with "Use CONFIG_DM_ETH support". I have merged it and pushed to u-boot-imx, -next, so you can easier see what happens. Both series break existing board and I cannot take them, and even if they are improving i.MX code with new features.
Can you take a look at fix them in the order:
- first the FEC series ==> see -next branch
Found the issue and made a changes according to previous version patches which eventually works on all targets.
- then the IPU (this series).
Fixed and will send the
And also I've one more series with engicam boards [1], shall I send all these 3 series into one on top of u-boot-imx/master?
[1] [PATCH v3 00/11] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support
thanks!

Hi Jagan,
On 02/12/2016 14:57, Jagan Teki wrote:
Hi Stefano,
On Tue, Nov 29, 2016 at 11:22 PM, Stefano Babic sbabic@denx.de wrote:
Hi Jagan,
On 28/10/2016 15:57, Jagan Teki wrote:
From: Jagan Teki jagan@amarulasolutions.com
Added kconfig entry for CONFIG_VIDEO_IPV3 driver.
Cc: Anatolij Gustschin agust@denx.de Cc: Stefano Babic sbabic@denx.de Cc: Matteo Lisi matteo.lisi@engicam.com Cc: Michael Trimarchi michael@amarulasolutions.com Signed-off-by: Jagan Teki jagan@amarulasolutions.com
drivers/video/Kconfig | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 577e6d7..134f1c8 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -443,6 +443,14 @@ config VIDEO model. Video drivers typically provide a colour text console and cursor.
+config VIDEO_IPUV3
bool "i.MX IPUv3 Core video support"
depends on MX6
default y if VIDEO
help
This enables framebuffer driver for i.MX processors working
on the IPUv3(Image Processing Unit) internal graphic processor.
config CFB_CONSOLE bool "Enable colour frame buffer console" depends on VIDEO
I have difficulties with your patches. They have updated and moved configuration to Kconfig, but they do not care of the existing boards.
This series breaks a lot of boards except yours - I cannot merge it.
The same thing happens to the series I have already merged (but not pushed to the server) with "Use CONFIG_DM_ETH support". I have merged it and pushed to u-boot-imx, -next, so you can easier see what happens. Both series break existing board and I cannot take them, and even if they are improving i.MX code with new features.
Can you take a look at fix them in the order:
- first the FEC series ==> see -next branch
Found the issue and made a changes according to previous version patches which eventually works on all targets.
ok - thanks for reworking this.
- then the IPU (this series).
Fixed and will send the
And also I've one more series with engicam boards [1], shall I send all these 3 series into one on top of u-boot-imx/master?
No. I will prefer we distinguish the series, because they touch different topics. And it is easier to integrate them - if there are still some issues in the last series, this could block the whole mereg.
We go on as planned: you send the updated two series fixing the issues I reported. If you kn ow that 3 series is already broken, feel free to send a new version - but I will check it only after having merged the first two series.
Best regards, Stefano Babic
[1] [PATCH v3 00/11] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support
thanks!

Hi Stefano,
On Mon, Dec 5, 2016 at 1:01 PM, Stefano Babic sbabic@denx.de wrote:
Hi Jagan,
On 02/12/2016 14:57, Jagan Teki wrote:
Hi Stefano,
On Tue, Nov 29, 2016 at 11:22 PM, Stefano Babic sbabic@denx.de wrote:
Hi Jagan,
On 28/10/2016 15:57, Jagan Teki wrote:
From: Jagan Teki jagan@amarulasolutions.com
Added kconfig entry for CONFIG_VIDEO_IPV3 driver.
Cc: Anatolij Gustschin agust@denx.de Cc: Stefano Babic sbabic@denx.de Cc: Matteo Lisi matteo.lisi@engicam.com Cc: Michael Trimarchi michael@amarulasolutions.com Signed-off-by: Jagan Teki jagan@amarulasolutions.com
drivers/video/Kconfig | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 577e6d7..134f1c8 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -443,6 +443,14 @@ config VIDEO model. Video drivers typically provide a colour text console and cursor.
+config VIDEO_IPUV3
bool "i.MX IPUv3 Core video support"
depends on MX6
default y if VIDEO
help
This enables framebuffer driver for i.MX processors working
on the IPUv3(Image Processing Unit) internal graphic processor.
config CFB_CONSOLE bool "Enable colour frame buffer console" depends on VIDEO
I have difficulties with your patches. They have updated and moved configuration to Kconfig, but they do not care of the existing boards.
This series breaks a lot of boards except yours - I cannot merge it.
The same thing happens to the series I have already merged (but not pushed to the server) with "Use CONFIG_DM_ETH support". I have merged it and pushed to u-boot-imx, -next, so you can easier see what happens. Both series break existing board and I cannot take them, and even if they are improving i.MX code with new features.
Can you take a look at fix them in the order:
- first the FEC series ==> see -next branch
Found the issue and made a changes according to previous version patches which eventually works on all targets.
ok - thanks for reworking this.
- then the IPU (this series).
Fixed and will send the
And also I've one more series with engicam boards [1], shall I send all these 3 series into one on top of u-boot-imx/master?
No. I will prefer we distinguish the series, because they touch different topics. And it is easier to integrate them - if there are still some issues in the last series, this could block the whole mereg.
We go on as planned: you send the updated two series fixing the issues I reported. If you kn ow that 3 series is already broken, feel free to send a new version - but I will check it only after having merged the first two series.
OK, I sent both the series at v3. buildman look fine now, please find the same.
thanks!

From: Jagan Teki jagan@amarulasolutions.com
Add IPUv3 framebuffer support for Engicam i.CoreM6 qdl board.
Cc: Anatolij Gustschin agust@denx.de Cc: Stefano Babic sbabic@denx.de Cc: Matteo Lisi matteo.lisi@engicam.com Cc: Michael Trimarchi michael@amarulasolutions.com Signed-off-by: Jagan Teki jagan@amarulasolutions.com --- board/engicam/icorem6/icorem6.c | 113 +++++++++++++++++++++++++++++++++++ configs/imx6qdl_icore_mmc_defconfig | 2 + configs/imx6qdl_icore_nand_defconfig | 2 + include/configs/imx6qdl_icore.h | 12 ++++ 4 files changed, 129 insertions(+)
diff --git a/board/engicam/icorem6/icorem6.c b/board/engicam/icorem6/icorem6.c index 587775e..3b25757 100644 --- a/board/engicam/icorem6/icorem6.c +++ b/board/engicam/icorem6/icorem6.c @@ -18,6 +18,7 @@ #include <asm/arch/mx6-pins.h> #include <asm/arch/sys_proto.h> #include <asm/imx-common/iomux-v3.h> +#include <asm/imx-common/video.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -90,6 +91,113 @@ static void setup_gpmi_nand(void) } #endif
+#if defined(CONFIG_VIDEO) +static iomux_v3_cfg_t const rgb_pads[] = { + IOMUX_PADS(PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK), + IOMUX_PADS(PAD_DI0_PIN15__IPU1_DI0_PIN15), + IOMUX_PADS(PAD_DI0_PIN2__IPU1_DI0_PIN02), + IOMUX_PADS(PAD_DI0_PIN3__IPU1_DI0_PIN03), + IOMUX_PADS(PAD_DISP0_DAT0__IPU1_DISP0_DATA00), + IOMUX_PADS(PAD_DISP0_DAT1__IPU1_DISP0_DATA01), + IOMUX_PADS(PAD_DISP0_DAT2__IPU1_DISP0_DATA02), + IOMUX_PADS(PAD_DISP0_DAT3__IPU1_DISP0_DATA03), + IOMUX_PADS(PAD_DISP0_DAT4__IPU1_DISP0_DATA04), + IOMUX_PADS(PAD_DISP0_DAT5__IPU1_DISP0_DATA05), + IOMUX_PADS(PAD_DISP0_DAT6__IPU1_DISP0_DATA06), + IOMUX_PADS(PAD_DISP0_DAT7__IPU1_DISP0_DATA07), + IOMUX_PADS(PAD_DISP0_DAT8__IPU1_DISP0_DATA08), + IOMUX_PADS(PAD_DISP0_DAT9__IPU1_DISP0_DATA09), + IOMUX_PADS(PAD_DISP0_DAT10__IPU1_DISP0_DATA10), + IOMUX_PADS(PAD_DISP0_DAT11__IPU1_DISP0_DATA11), + IOMUX_PADS(PAD_DISP0_DAT12__IPU1_DISP0_DATA12), + IOMUX_PADS(PAD_DISP0_DAT13__IPU1_DISP0_DATA13), + IOMUX_PADS(PAD_DISP0_DAT14__IPU1_DISP0_DATA14), + IOMUX_PADS(PAD_DISP0_DAT15__IPU1_DISP0_DATA15), + IOMUX_PADS(PAD_DISP0_DAT16__IPU1_DISP0_DATA16), + IOMUX_PADS(PAD_DISP0_DAT17__IPU1_DISP0_DATA17), +}; + +static void enable_rgb(struct display_info_t const *dev) +{ + SETUP_IOMUX_PADS(rgb_pads); +} + +struct display_info_t const displays[] = { + { + .bus = -1, + .addr = 0, + .pixfmt = IPU_PIX_FMT_RGB666, + .detect = NULL, + .enable = enable_rgb, + .mode = { + .name = "Amp-WD", + .refresh = 60, + .xres = 800, + .yres = 480, + .pixclock = 30000, + .left_margin = 30, + .right_margin = 30, + .upper_margin = 5, + .lower_margin = 5, + .hsync_len = 64, + .vsync_len = 20, + .sync = FB_SYNC_EXT, + .vmode = FB_VMODE_NONINTERLACED + } + }, +}; + +size_t display_count = ARRAY_SIZE(displays); + +static void setup_display(void) +{ + struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR; + struct iomuxc *iomux = (struct iomuxc *)IOMUXC_BASE_ADDR; + int reg; + + enable_ipu_clock(); + + /* Turn on LDB0,IPU,IPU DI0 clocks */ + reg = __raw_readl(&mxc_ccm->CCGR3); + reg |= (MXC_CCM_CCGR3_LDB_DI0_MASK | 0xffff); + writel(reg, &mxc_ccm->CCGR3); + + /* set LDB0, LDB1 clk select to 011/011 */ + reg = readl(&mxc_ccm->cs2cdr); + reg &= ~(MXC_CCM_CS2CDR_LDB_DI0_CLK_SEL_MASK | + MXC_CCM_CS2CDR_LDB_DI1_CLK_SEL_MASK); + reg |= (3 << MXC_CCM_CS2CDR_LDB_DI0_CLK_SEL_OFFSET) | + (3 << MXC_CCM_CS2CDR_LDB_DI1_CLK_SEL_OFFSET); + writel(reg, &mxc_ccm->cs2cdr); + + reg = readl(&mxc_ccm->cscmr2); + reg |= MXC_CCM_CSCMR2_LDB_DI0_IPU_DIV; + writel(reg, &mxc_ccm->cscmr2); + + reg = readl(&mxc_ccm->chsccdr); + reg |= (CHSCCDR_CLK_SEL_LDB_DI0 << + MXC_CCM_CHSCCDR_IPU1_DI0_CLK_SEL_OFFSET); + writel(reg, &mxc_ccm->chsccdr); + + reg = IOMUXC_GPR2_BGREF_RRMODE_EXTERNAL_RES | + IOMUXC_GPR2_DI1_VS_POLARITY_ACTIVE_HIGH | + IOMUXC_GPR2_DI0_VS_POLARITY_ACTIVE_LOW | + IOMUXC_GPR2_BIT_MAPPING_CH1_SPWG | + IOMUXC_GPR2_DATA_WIDTH_CH1_18BIT | + IOMUXC_GPR2_BIT_MAPPING_CH0_SPWG | + IOMUXC_GPR2_DATA_WIDTH_CH0_18BIT | + IOMUXC_GPR2_LVDS_CH1_MODE_DISABLED | + IOMUXC_GPR2_LVDS_CH0_MODE_ENABLED_DI0; + writel(reg, &iomux->gpr[2]); + + reg = readl(&iomux->gpr[3]); + reg = (reg & ~IOMUXC_GPR3_LVDS0_MUX_CTL_MASK) | + (IOMUXC_GPR3_MUX_SRC_IPU1_DI0 << + IOMUXC_GPR3_LVDS0_MUX_CTL_OFFSET); + writel(reg, &iomux->gpr[3]); +} +#endif /* CONFIG_VIDEO */ + int board_early_init_f(void) { SETUP_IOMUX_PADS(uart4_pads); @@ -105,6 +213,11 @@ int board_init(void) #ifdef CONFIG_NAND_MXS setup_gpmi_nand(); #endif + +#ifdef CONFIG_VIDEO + setup_display(); +#endif + return 0; }
diff --git a/configs/imx6qdl_icore_mmc_defconfig b/configs/imx6qdl_icore_mmc_defconfig index 31f40b4..e530fad 100644 --- a/configs/imx6qdl_icore_mmc_defconfig +++ b/configs/imx6qdl_icore_mmc_defconfig @@ -33,6 +33,8 @@ CONFIG_MXC_UART=y CONFIG_IMX_THERMAL=y CONFIG_PINCTRL=y CONFIG_PINCTRL_IMX6=y +CONFIG_VIDEO=y +CONFIG_SYS_CONSOLE_IS_IN_ENV=y CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y diff --git a/configs/imx6qdl_icore_nand_defconfig b/configs/imx6qdl_icore_nand_defconfig index 3410e4c..e50b4c4 100644 --- a/configs/imx6qdl_icore_nand_defconfig +++ b/configs/imx6qdl_icore_nand_defconfig @@ -29,6 +29,8 @@ CONFIG_IMX_THERMAL=y # CONFIG_DM_MMC_OPS is not set CONFIG_PINCTRL=y CONFIG_PINCTRL_IMX6=y +CONFIG_VIDEO=y +CONFIG_SYS_CONSOLE_IS_IN_ENV=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y diff --git a/include/configs/imx6qdl_icore.h b/include/configs/imx6qdl_icore.h index f8a1263..e2b286c 100644 --- a/include/configs/imx6qdl_icore.h +++ b/include/configs/imx6qdl_icore.h @@ -149,6 +149,18 @@ # define CONFIG_PHY_SMSC #endif
+/* Framebuffer */ +#ifdef CONFIG_VIDEO +# define CONFIG_IPUV3_CLK 260000000 +# define CONFIG_IMX_VIDEO_SKIP + +# define CONFIG_SPLASH_SCREEN +# define CONFIG_BMP_16BPP +# define CONFIG_VIDEO_BMP_RLE8 +# define CONFIG_VIDEO_LOGO +# define CONFIG_VIDEO_BMP_LOGO +#endif + /* SPL */ #ifdef CONFIG_SPL # ifdef CONFIG_NAND_MXS

From: Jagan Teki jagan@amarulasolutions.com
Add custom splashscreen, engicam.bmp support for Engicam i.CoreM6 qdl board.
Cc: Anatolij Gustschin agust@denx.de Cc: Stefano Babic sbabic@denx.de Cc: Matteo Lisi matteo.lisi@engicam.com Cc: Michael Trimarchi michael@amarulasolutions.com Signed-off-by: Jagan Teki jagan@amarulasolutions.com --- include/configs/imx6qdl_icore.h | 2 ++ tools/logos/engicam.bmp | Bin 0 -> 60214 bytes 2 files changed, 2 insertions(+) create mode 100755 tools/logos/engicam.bmp
diff --git a/include/configs/imx6qdl_icore.h b/include/configs/imx6qdl_icore.h index e2b286c..670aa0f 100644 --- a/include/configs/imx6qdl_icore.h +++ b/include/configs/imx6qdl_icore.h @@ -37,6 +37,7 @@ /* Default environment */ #define CONFIG_EXTRA_ENV_SETTINGS \ "script=boot.scr\0" \ + "splashpos=m,m\0" \ "image=zImage\0" \ "console=ttymxc3\0" \ "fdt_high=0xffffffff\0" \ @@ -155,6 +156,7 @@ # define CONFIG_IMX_VIDEO_SKIP
# define CONFIG_SPLASH_SCREEN +# define CONFIG_SPLASH_SCREEN_ALIGN # define CONFIG_BMP_16BPP # define CONFIG_VIDEO_BMP_RLE8 # define CONFIG_VIDEO_LOGO diff --git a/tools/logos/engicam.bmp b/tools/logos/engicam.bmp new file mode 100755 index 0000000000000000000000000000000000000000..f6c60fb810d29830941e18d6725ef95785d95967 GIT binary patch literal 60214 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
literal 0 HcmV?d00001

From: Jagan Teki jteki@openedev.com
Added kconfig for SYS_I2C_MXC driver.
Cc: Stefano Babic sbabic@denx.de Cc: Heiko Schocher hs@denx.de Cc: Matteo Lisi matteo.lisi@engicam.com Cc: Michael Trimarchi michael@amarulasolutions.com Signed-off-by: Jagan Teki jagan@amarulasolutions.com --- drivers/i2c/Kconfig | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig index 1537b67..051f911 100644 --- a/drivers/i2c/Kconfig +++ b/drivers/i2c/Kconfig @@ -109,6 +109,14 @@ config SYS_I2C_INTEL the I2C API meaning that any I2C operations will immediately fail for now.
+config SYS_I2C_MXC + bool "NXP i.MX I2C driver" + depends on MX6 + help + Add support for the NXP i.MX I2C driver. This supports upto for bus + channels and operating on standard mode upto 100 kbits/s and fast + mode upto 400 kbits/s. + config SYS_I2C_ROCKCHIP bool "Rockchip I2C driver" depends on DM_I2C

From: Jagan Teki jagan@amarulasolutions.com
Better to print the hex value for bus address instead of decimal, for more readbility on bus addressing.
Before: ------ U-Boot> i2c dev 1 Setting bus to 1 i2c bus 1 at 35274752, no gpio pinctrl state.
After: ------ U-Boot> i2c dev 1 Setting bus to 1 i2c bus 1 at 0x21a4000, no gpio pinctrl state.
Cc: Simon Glass sjg@chromium.org Cc: Heiko Schocher hs@denx.de Cc: Peng Fan peng.fan@nxp.com Cc: Michael Trimarchi michael@amarulasolutions.com Signed-off-by: Jagan Teki jagan@amarulasolutions.com --- drivers/i2c/mxc_i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c index 6247d33..03a5ce9 100644 --- a/drivers/i2c/mxc_i2c.c +++ b/drivers/i2c/mxc_i2c.c @@ -775,7 +775,7 @@ static int mxc_i2c_probe(struct udevice *bus) */ ret = fdt_stringlist_search(fdt, node, "pinctrl-names", "gpio"); if (ret < 0) { - dev_info(dev, "i2c bus %d at %lu, no gpio pinctrl state.\n", bus->seq, i2c_bus->base); + dev_info(dev, "i2c bus %d at 0x%2lx, no gpio pinctrl state.\n", bus->seq, i2c_bus->base); } else { ret = gpio_request_by_name_nodev(fdt, node, "scl-gpios", 0, &i2c_bus->scl_gpio,

From: Jagan Teki jagan@amarulasolutions.com
Some I2C bus devicetree nodes, doesn't require to have gpio pinctrl so replace the dev_info to debug so the print never comes on the console and for bus that uses gpio pinctrl anyway have dev_err.
Before: ------ U-Boot> i2c dev 1 Setting bus to 1 i2c bus 1 at 0x21a4000, no gpio pinctrl state.
After: ------ U-Boot> i2c dev 1 Setting bus to 1
Cc: Simon Glass sjg@chromium.org Cc: Heiko Schocher hs@denx.de Cc: Peng Fan peng.fan@nxp.com Cc: Michael Trimarchi michael@amarulasolutions.com Signed-off-by: Jagan Teki jagan@amarulasolutions.com --- drivers/i2c/mxc_i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c index 03a5ce9..94d9027 100644 --- a/drivers/i2c/mxc_i2c.c +++ b/drivers/i2c/mxc_i2c.c @@ -775,7 +775,7 @@ static int mxc_i2c_probe(struct udevice *bus) */ ret = fdt_stringlist_search(fdt, node, "pinctrl-names", "gpio"); if (ret < 0) { - dev_info(dev, "i2c bus %d at 0x%2lx, no gpio pinctrl state.\n", bus->seq, i2c_bus->base); + debug("i2c bus %d at 0x%2lx, no gpio pinctrl state.\n", bus->seq, i2c_bus->base); } else { ret = gpio_request_by_name_nodev(fdt, node, "scl-gpios", 0, &i2c_bus->scl_gpio,

From: Jagan Teki jagan@amarulasolutions.com
Add I2C support for Engicam i.CoreM6 qdl board.
icorem6qdl> i2c bus Bus 0: i2c@021a0000 Bus 1: i2c@021a4000 Bus 2: i2c@021a8000 icorem6qdl> i2c dev 2 Setting bus to 2 icorem6qdl> i2c speed 100000 Setting bus speed to 100000 Hz icorem6qdl> i2c probe Valid chip addresses: 2C icorem6qdl> i2c md 2C 0xff 00ff: 00 00 00 00 0f f0 01 64 ff ff 00 00 00 00 00 00 .......d........
Cc: Stefano Babic sbabic@denx.de Cc: Heiko Schocher hs@denx.de Cc: Matteo Lisi matteo.lisi@engicam.com Cc: Michael Trimarchi michael@amarulasolutions.com Signed-off-by: Jagan Teki jagan@amarulasolutions.com --- arch/arm/cpu/armv7/mx6/Kconfig | 1 + configs/imx6qdl_icore_mmc_defconfig | 3 ++- configs/imx6qdl_icore_nand_defconfig | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig index 8456b0e..c04536c 100644 --- a/arch/arm/cpu/armv7/mx6/Kconfig +++ b/arch/arm/cpu/armv7/mx6/Kconfig @@ -102,6 +102,7 @@ config TARGET_MX6Q_ICORE select DM select DM_ETH select DM_GPIO + select DM_I2C select DM_MMC select DM_THERMAL select SUPPORT_SPL diff --git a/configs/imx6qdl_icore_mmc_defconfig b/configs/imx6qdl_icore_mmc_defconfig index e530fad..396cd53 100644 --- a/configs/imx6qdl_icore_mmc_defconfig +++ b/configs/imx6qdl_icore_mmc_defconfig @@ -17,6 +17,7 @@ CONFIG_SYS_MAXARGS=32 # CONFIG_DM_MMC_OPS is not set CONFIG_CMD_BOOTZ=y CONFIG_CMD_GPIO=y +CONFIG_CMD_I2C=y CONFIG_CMD_MII=y CONFIG_CMD_PING=y CONFIG_CMD_MEMTEST=y @@ -33,13 +34,13 @@ CONFIG_MXC_UART=y CONFIG_IMX_THERMAL=y CONFIG_PINCTRL=y CONFIG_PINCTRL_IMX6=y +CONFIG_SYS_I2C_MXC=y CONFIG_VIDEO=y CONFIG_SYS_CONSOLE_IS_IN_ENV=y CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y -CONFIG_SPL_I2C_SUPPORT=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SPL_EXT_SUPPORT=y diff --git a/configs/imx6qdl_icore_nand_defconfig b/configs/imx6qdl_icore_nand_defconfig index e50b4c4..5de607c 100644 --- a/configs/imx6qdl_icore_nand_defconfig +++ b/configs/imx6qdl_icore_nand_defconfig @@ -15,6 +15,7 @@ CONFIG_SYS_MAXARGS=32 # CONFIG_CMD_IMLS is not set CONFIG_CMD_BOOTZ=y CONFIG_CMD_GPIO=y +CONFIG_CMD_I2C=y CONFIG_CMD_MII=y CONFIG_CMD_PING=y CONFIG_CMD_MEMTEST=y @@ -29,12 +30,12 @@ CONFIG_IMX_THERMAL=y # CONFIG_DM_MMC_OPS is not set CONFIG_PINCTRL=y CONFIG_PINCTRL_IMX6=y +CONFIG_SYS_I2C_MXC=y CONFIG_VIDEO=y CONFIG_SYS_CONSOLE_IS_IN_ENV=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y -CONFIG_SPL_I2C_SUPPORT=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SPL_DMA_SUPPORT=y

Hi Stefano,
On Fri, Oct 28, 2016 at 7:27 PM, Jagan Teki jagan@openedev.com wrote:
From: Jagan Teki jagan@amarulasolutions.com
This series support framebuffer and I2C on top of u-boot-imx.git with latest u-boot.git merge.
Changes for v2:
- Rebase on u-boot-imx.git and u-boot.git
Jagan Teki (7): video: Kconfig: Add VIDEO_IPV3 entry imx6: icorem6: Add framebuffer support imx6: icorem6: Add custom splashscreen support i2c: Kconfig: Add SYS_I2C_MXC entry i2c: mxc: Print hex instead of decimal for bus address i2c: mxc: Make 'no gpio pinctrl state' print as debug imx6: icorem6: Add I2C support
arch/arm/cpu/armv7/mx6/Kconfig | 1 + board/engicam/icorem6/icorem6.c | 113 +++++++++++++++++++++++++++++++++++ configs/imx6qdl_icore_mmc_defconfig | 5 +- configs/imx6qdl_icore_nand_defconfig | 5 +- drivers/i2c/Kconfig | 8 +++ drivers/i2c/mxc_i2c.c | 2 +- drivers/video/Kconfig | 8 +++ include/configs/imx6qdl_icore.h | 14 +++++ tools/logos/engicam.bmp | Bin 0 -> 60214 bytes 9 files changed, 153 insertions(+), 3 deletions(-) create mode 100755 tools/logos/engicam.bmp
Any comments?
thanks!

Hi Stefano,
On Sun, Nov 6, 2016 at 9:28 PM, Jagan Teki jagan@openedev.com wrote:
Hi Stefano,
On Fri, Oct 28, 2016 at 7:27 PM, Jagan Teki jagan@openedev.com wrote:
From: Jagan Teki jagan@amarulasolutions.com
This series support framebuffer and I2C on top of u-boot-imx.git with latest u-boot.git merge.
Changes for v2:
- Rebase on u-boot-imx.git and u-boot.git
Jagan Teki (7): video: Kconfig: Add VIDEO_IPV3 entry imx6: icorem6: Add framebuffer support imx6: icorem6: Add custom splashscreen support i2c: Kconfig: Add SYS_I2C_MXC entry i2c: mxc: Print hex instead of decimal for bus address i2c: mxc: Make 'no gpio pinctrl state' print as debug imx6: icorem6: Add I2C support
arch/arm/cpu/armv7/mx6/Kconfig | 1 + board/engicam/icorem6/icorem6.c | 113 +++++++++++++++++++++++++++++++++++ configs/imx6qdl_icore_mmc_defconfig | 5 +- configs/imx6qdl_icore_nand_defconfig | 5 +- drivers/i2c/Kconfig | 8 +++ drivers/i2c/mxc_i2c.c | 2 +- drivers/video/Kconfig | 8 +++ include/configs/imx6qdl_icore.h | 14 +++++ tools/logos/engicam.bmp | Bin 0 -> 60214 bytes 9 files changed, 153 insertions(+), 3 deletions(-) create mode 100755 tools/logos/engicam.bmp
Any comments?
Please apply if you it's OK?
thanks!
participants (2)
-
Jagan Teki
-
Stefano Babic