[U-Boot] [PATCH v3 11/31] ARM: i.MX6: sabresd: Enable DM_I2C and DM_PMIC

Jagan Teki
2017-04-05T19:20:21Z

Enable DM_I2C, DM_PMIC and DM_PMIC_PFUZE100 for dt
supported sabresd config boards:
- imx6q_sabresd_defconfig
- imx6qp_sabresd_defconfig

I2C Log:
--------
=> i2c bus
Bus 0: i2c at 021a0000
Bus 1: i2c at 021a4000
08: pfuze100 at 08, offset len 1, flags 0
Bus 2: i2c at 021a8000
=> i2c dev 1
Setting bus to 1
=> i2c speed 100000
Setting bus speed to 100000 Hz
=> i2c probe
Valid chip addresses: 08 48
=> i2c md 08 0x0 0x20
0000: 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ................
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
=> i2c md 48 0x0 0x20
0000: 00 f0 00 00 00 00 00 00 00 00 00 80 70 41 41 41 ............pAAA
0010: 00 00 00 80 70 41 41 41 41 41 41 41 41 41 41 41 ....pAAAAAAAAAAA

Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
board/freescale/mx6sabresd/mx6sabresd.c | 7 ++++++-
configs/imx6q_sabresd_defconfig | 3 +++
configs/imx6qp_sabresd_defconfig | 3 +++
include/configs/mx6sabresd.h | 4 +++-
4 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/board/freescale/mx6sabresd/mx6sabresd.c b/board/freescale/mx6sabresd/mx6sabresd.c
index db25dad..5776b39 100644
--- a/board/freescale/mx6sabresd/mx6sabresd.c
+++ b/board/freescale/mx6sabresd/mx6sabresd.c
@@ -202,6 +202,7 @@ static void enable_lvds(struct display_info_t const *dev)
enable_backlight();
}

+#ifndef CONFIG_DM_I2C
static struct i2c_pads_info i2c_pad_info1 = {
.scl = {
.i2c_mode = MX6_PAD_KEY_COL3__I2C2_SCL | I2C_PAD,
@@ -214,6 +215,7 @@ static struct i2c_pads_info i2c_pad_info1 = {
.gp = IMX_GPIO_NR(4, 13)
}
};
+#endif

static void setup_spi(void)
{
@@ -594,8 +596,9 @@ int board_init(void)
#ifdef CONFIG_MXC_SPI
setup_spi();
#endif
+#ifndef CONFIG_DM_I2C
setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1);
-
+#endif
#ifdef CONFIG_USB_EHCI_MX6
setup_usb();
#endif
@@ -603,6 +606,7 @@ int board_init(void)
return 0;
}

+#ifndef CONFIG_DM_PMIC
int power_init_board(void)
{
struct pmic *p;
@@ -631,6 +635,7 @@ int power_init_board(void)

return 0;
}
+#endif

#ifdef CONFIG_MXC_SPI
int board_spi_cs_gpio(unsigned bus, unsigned cs)
diff --git a/configs/imx6q_sabresd_defconfig b/configs/imx6q_sabresd_defconfig
index e1bea93..2076418 100644
--- a/configs/imx6q_sabresd_defconfig
+++ b/configs/imx6q_sabresd_defconfig
@@ -50,10 +50,13 @@ CONFIG_G_DNL_PRODUCT_NUM=0xa4a5
# CONFIG_VIDEO_SW_CURSOR is not set
CONFIG_OF_LIBFDT=y
CONFIG_OF_CONTROL=y
+CONFIG_DM_I2C=y
CONFIG_DM_GPIO=y
CONFIG_DM_MMC=y
+CONFIG_DM_PMIC=y
# CONFIG_BLK is not set
# CONFIG_DM_MMC_OPS is not set
+CONFIG_DM_PMIC_PFUZE100=y
CONFIG_SYS_I2C_MXC=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_IMX6=y
diff --git a/configs/imx6qp_sabresd_defconfig b/configs/imx6qp_sabresd_defconfig
index 0d51c2b..f75ab70 100644
--- a/configs/imx6qp_sabresd_defconfig
+++ b/configs/imx6qp_sabresd_defconfig
@@ -51,10 +51,13 @@ CONFIG_G_DNL_PRODUCT_NUM=0xa4a5
# CONFIG_VIDEO_SW_CURSOR is not set
CONFIG_OF_LIBFDT=y
CONFIG_OF_CONTROL=y
+CONFIG_DM_I2C=y
CONFIG_DM_GPIO=y
CONFIG_DM_MMC=y
+CONFIG_DM_PMIC=y
# CONFIG_BLK is not set
# CONFIG_DM_MMC_OPS is not set
+CONFIG_DM_PMIC_PFUZE100=y
CONFIG_SYS_I2C_MXC=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_IMX6=y
diff --git a/include/configs/mx6sabresd.h b/include/configs/mx6sabresd.h
index 7c0e7a5..6ece575 100644
--- a/include/configs/mx6sabresd.h
+++ b/include/configs/mx6sabresd.h
@@ -52,7 +52,7 @@
#endif

/* I2C Configs */
-#ifdef CONFIG_SYS_I2C_MXC
+#if defined(CONFIG_SYS_I2C_MXC) && !defined(CONFIG_DM_I2C)
#define CONFIG_SYS_I2C
#define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */
#define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */
@@ -61,10 +61,12 @@
#endif

/* PMIC */
+#ifndef CONFIG_DM_PMIC_PFUZE100
#define CONFIG_POWER
#define CONFIG_POWER_I2C
#define CONFIG_POWER_PFUZE100
#define CONFIG_POWER_PFUZE100_I2C_ADDR 0x08
+#endif

/* USB Configs */
#ifdef CONFIG_CMD_USB
--
1.9.1