[PATCH 2/2] Nokia RX-51: Convert to CONFIG_DM_I2C

Pali Rohár pali at kernel.org
Mon Oct 26 22:36:16 CET 2020


Signed-off-by: Pali Rohár <pali at kernel.org>
---
 board/nokia/rx51/rx51.c      | 26 ++++++++++++++++++++++++--
 configs/nokia_rx51_defconfig |  2 ++
 include/configs/nokia_rx51.h |  2 ++
 3 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c
index f624dbfbeb..9cc5eb97b3 100644
--- a/board/nokia/rx51/rx51.c
+++ b/board/nokia/rx51/rx51.c
@@ -22,6 +22,7 @@
  */
 
 #include <common.h>
+#include <dm.h>
 #include <env.h>
 #include <init.h>
 #include <watchdog.h>
@@ -33,6 +34,7 @@
 #include <asm/setup.h>
 #include <asm/bitops.h>
 #include <asm/mach-types.h>
+#include <asm/omap_i2c.h>
 #include <asm/arch/mux.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/arch/mmc_host_def.h>
@@ -390,10 +392,16 @@ int misc_init_r(void)
 	u8 state;
 
 	/* reset lp5523 led */
+#ifndef CONFIG_DM_I2C
 	i2c_set_bus_num(1);
 	state = 0xff;
 	i2c_write(0x32, 0x3d, 1, &state, 1);
 	i2c_set_bus_num(0);
+#else
+	struct udevice *dev;
+	if (i2c_get_chip_for_busnum(1, 0x32, 1, &dev) == 0)
+		dm_i2c_reg_write(dev, 0x3d, 0xff);
+#endif
 
 	/* initialize twl4030 power managment */
 	twl4030_power_init();
@@ -626,8 +634,8 @@ int rx51_kp_tstc(struct stdio_dev *sdev)
 			continue;
 
 		/* read the key state */
-		i2c_read(TWL4030_CHIP_KEYPAD,
-			TWL4030_KEYPAD_FULL_CODE_7_0, 1, keys, 8);
+		twl4030_i2c_read(TWL4030_CHIP_KEYPAD,
+				 TWL4030_KEYPAD_FULL_CODE_7_0, keys, 8);
 
 		/* cut out modifier keys from the keystate */
 		mods = keys[4] >> 4;
@@ -684,3 +692,17 @@ void board_mmc_power_init(void)
 	twl4030_power_mmc_init(0);
 	twl4030_power_mmc_init(1);
 }
+
+#ifdef CONFIG_DM_I2C
+static const struct omap_i2c_platdata rx51_i2c[] = {
+	{ I2C_BASE1, 2200000, OMAP_I2C_REV_V1 },
+	{ I2C_BASE2, 100000, OMAP_I2C_REV_V1 },
+	{ I2C_BASE3, 400000, OMAP_I2C_REV_V1 },
+};
+
+U_BOOT_DEVICES(rx51_i2c) = {
+	{ "i2c_omap", &rx51_i2c[0] },
+	{ "i2c_omap", &rx51_i2c[1] },
+	{ "i2c_omap", &rx51_i2c[2] },
+};
+#endif
diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig
index e249dff774..d5f27db642 100644
--- a/configs/nokia_rx51_defconfig
+++ b/configs/nokia_rx51_defconfig
@@ -59,3 +59,5 @@ CONFIG_CFB_CONSOLE_ANSI=y
 # CONFIG_VGA_AS_SINGLE_DEVICE is not set
 CONFIG_SPLASH_SCREEN=y
 # CONFIG_GZIP is not set
+CONFIG_DM=y
+CONFIG_DM_I2C=y
diff --git a/include/configs/nokia_rx51.h b/include/configs/nokia_rx51.h
index c86c429413..1d7ee7fc19 100644
--- a/include/configs/nokia_rx51.h
+++ b/include/configs/nokia_rx51.h
@@ -77,7 +77,9 @@
 
 /* commands to include */
 
+#ifndef CONFIG_DM_I2C
 #define CONFIG_SYS_I2C
+#endif
 
 /*
  * TWL4030
-- 
2.20.1



More information about the U-Boot mailing list