>-----Original Message----- >From: Troy Kisky [mailto:troy.ki...@boundarydevices.com] >Sent: Friday, July 20, 2012 2:18 AM >To: u-boot@lists.denx.de; Heiko Schocher; sba...@denx.de >Cc: marek.va...@gmail.com; dirk.be...@googlemail.com; Estevam Fabio- >R49496; Liu Hui-R64343; Troy Kisky >Subject: [PATCH V3 25/25] mx6qsabrelite: add i2c multi-bus support > >This includes bus recovery support. >
It’s better to give a short description about how to do the bus recovery with this patch. >Signed-off-by: Troy Kisky <troy.ki...@boundarydevices.com> > >--- >v2: no change >--- > board/freescale/mx6qsabrelite/mx6qsabrelite.c | 50 >+++++++++++++++++++++++-- > include/configs/mx6qsabrelite.h | 6 +-- > 2 files changed, 48 insertions(+), 8 deletions(-) > >diff --git a/board/freescale/mx6qsabrelite/mx6qsabrelite.c >b/board/freescale/mx6qsabrelite/mx6qsabrelite.c >index 34f65e9..01e5083 100644 >--- a/board/freescale/mx6qsabrelite/mx6qsabrelite.c >+++ b/board/freescale/mx6qsabrelite/mx6qsabrelite.c >@@ -28,6 +28,7 @@ > #include <asm/errno.h> > #include <asm/gpio.h> > #include <asm/imx-common/iomux-v3.h> >+#include <asm/imx-common/mxc_i2c.h> > #include <mmc.h> > #include <fsl_esdhc.h> > #include <micrel.h> >@@ -77,9 +78,48 @@ iomux_v3_cfg_t uart2_pads[] = { > MX6Q_PAD_EIM_D27__UART2_RXD | >MUX_PAD_CTRL(UART_PAD_CTRL), }; > >-iomux_v3_cfg_t i2c3_pads[] = { >- MX6Q_PAD_GPIO_5__I2C3_SCL | MUX_PAD_CTRL(I2C_PAD_CTRL), >- MX6Q_PAD_GPIO_16__I2C3_SDA | MUX_PAD_CTRL(I2C_PAD_CTRL), >+#define PC MUX_PAD_CTRL(I2C_PAD_CTRL) >+ >+/* I2C1, SGTL5000 */ >+struct i2c_pads_info i2c_pad_info0 = { >+ .scl = { >+ .i2c_mode = MX6Q_PAD_EIM_D21__I2C1_SCL | PC, >+ .gpio_mode = MX6Q_PAD_EIM_D21__GPIO_3_21 | PC, >+ .gp = GPIO_NUMBER(3, 21) >+ }, >+ .sda = { >+ .i2c_mode = MX6Q_PAD_EIM_D28__I2C1_SDA | PC, >+ .gpio_mode = MX6Q_PAD_EIM_D28__GPIO_3_28 | PC, >+ .gp = GPIO_NUMBER(3, 28) >+ } >+}; >+ >+/* I2C2 Camera, MIPI */ >+struct i2c_pads_info i2c_pad_info1 = { >+ .scl = { >+ .i2c_mode = MX6Q_PAD_KEY_COL3__I2C2_SCL | PC, >+ .gpio_mode = MX6Q_PAD_KEY_COL3__GPIO_4_12 | PC, >+ .gp = GPIO_NUMBER(4, 12) >+ }, >+ .sda = { >+ .i2c_mode = MX6Q_PAD_KEY_ROW3__I2C2_SDA | PC, >+ .gpio_mode = MX6Q_PAD_KEY_ROW3__GPIO_4_13 | PC, >+ .gp = GPIO_NUMBER(4, 13) >+ } >+}; >+ >+/* I2C3, J15 - RGB connector */ >+struct i2c_pads_info i2c_pad_info2 = { >+ .scl = { >+ .i2c_mode = MX6Q_PAD_GPIO_5__I2C3_SCL | PC, >+ .gpio_mode = MX6Q_PAD_GPIO_5__GPIO_1_5 | PC, >+ .gp = GPIO_NUMBER(1, 5) >+ }, >+ .sda = { >+ .i2c_mode = MX6Q_PAD_GPIO_16__I2C3_SDA | PC, >+ .gpio_mode = MX6Q_PAD_GPIO_16__GPIO_7_11 | PC, >+ .gp = GPIO_NUMBER(7, 11) >+ } > }; > > iomux_v3_cfg_t usdhc3_pads[] = { >@@ -346,7 +386,9 @@ int board_init(void) #ifdef CONFIG_MXC_SPI > setup_spi(); > #endif >- imx_iomux_v3_setup_multiple_pads(i2c3_pads, >ARRAY_SIZE(i2c3_pads)); >+ setup_i2c(0, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info0); >+ setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1); >+ setup_i2c(2, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info2); > > #ifdef CONFIG_CMD_SATA > setup_sata(); >diff --git a/include/configs/mx6qsabrelite.h >b/include/configs/mx6qsabrelite.h index fbd10d6..beb8e3e 100644 >--- a/include/configs/mx6qsabrelite.h >+++ b/include/configs/mx6qsabrelite.h >@@ -60,11 +60,9 @@ > > /* I2C Configs */ > #define CONFIG_CMD_I2C >-#define CONFIG_HARD_I2C >+#define CONFIG_I2C_MULTI_BUS > #define CONFIG_I2C_MXC >-#define CONFIG_SYS_I2C_BASE I2C3_BASE_ADDR >-#define CONFIG_SYS_I2C_SPEED 100000 >-#define CONFIG_SYS_I2C_SLAVE 0xfe >+#define CONFIG_SYS_I2C_SPEED 100000 > Acked-by: Jason Liu <r64...@freescale.com> > /* MMC Configs */ > #define CONFIG_FSL_ESDHC >-- >1.7.9.5 > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot