aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuhiro Iwamatsu <iwamatsu@nigauri.org>2017-12-01 14:39:40 +0900
committerHeiko Schocher <hs@denx.de>2017-12-07 09:29:35 +0100
commit28df8ed07f2ae936e9af28c146d555ed4d0c122a (patch)
treeda2bb8aa37d7f024b6263f2fe0fe426c3aed0c80
parentcab8a27d80afbdcb7ba422c4c4f85130678373a9 (diff)
downloadu-boot-28df8ed07f2ae936e9af28c146d555ed4d0c122a.zip
u-boot-28df8ed07f2ae936e9af28c146d555ed4d0c122a.tar.gz
u-boot-28df8ed07f2ae936e9af28c146d555ed4d0c122a.tar.bz2
cmd: i2c: Fix use sdram sub command with CONFIG_DM_I2C
sdram sub command of i2c command does not support Drivers Model. This adds Drivers Model support to sdram sub command. Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Heiko Schocher <hs@denx.de>
-rw-r--r--cmd/i2c.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/cmd/i2c.c b/cmd/i2c.c
index 3dd7c6b..bfddf8b 100644
--- a/cmd/i2c.c
+++ b/cmd/i2c.c
@@ -1156,7 +1156,10 @@ static int do_sdram (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
uint chip;
u_char data[128];
u_char cksum;
- int j;
+ int j, ret;
+#ifdef CONFIG_DM_I2C
+ struct udevice *dev;
+#endif
static const char *decode_CAS_DDR2[] = {
" TBD", " 6", " 5", " 4", " 3", " 2", " TBD", " TBD"
@@ -1210,7 +1213,14 @@ static int do_sdram (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
*/
chip = simple_strtoul (argv[1], NULL, 16);
- if (i2c_read (chip, 0, 1, data, sizeof (data)) != 0) {
+#ifdef CONFIG_DM_I2C
+ ret = i2c_get_cur_bus_chip(chip, &dev);
+ if (!ret)
+ ret = dm_i2c_read(dev, 0, data, sizeof(data));
+#else
+ ret = i2c_read(chip, 0, 1, data, sizeof(data));
+#endif
+ if (ret) {
puts ("No SDRAM Serial Presence Detect found.\n");
return 1;
}