X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=cmd%2Fi2c.c;h=43a76299b3c82ad197ea466909f25153fc469ce2;hb=22961dc4412254578c8e1ae457cf1197b9aab30c;hp=473153fbd4737a7949a3f22b0c5a29b7009b941b;hpb=62a3b7dd086ef8ceba91e99cceb19704efc1b482;p=oweals%2Fu-boot.git diff --git a/cmd/i2c.c b/cmd/i2c.c index 473153fbd4..43a76299b3 100644 --- a/cmd/i2c.c +++ b/cmd/i2c.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0+ /* * (C) Copyright 2009 * Sergey Kubushyn, himself, ksi@koi8.net @@ -6,8 +7,6 @@ * * (C) Copyright 2001 * Gerald Van Baren, Custom IDEAS, vanbaren@cideas.com. - * - * SPDX-License-Identifier: GPL-2.0+ */ /* @@ -72,14 +71,12 @@ #include #include #include -#include #include #include #include #include #include - -DECLARE_GLOBAL_DATA_PTR; +#include /* Display values from last command. * Memory modify remembered values are different from display memory. @@ -151,6 +148,16 @@ static int cmd_i2c_set_bus_num(unsigned int busnum) static int i2c_get_cur_bus(struct udevice **busp) { +#ifdef CONFIG_I2C_SET_DEFAULT_BUS_NUM + if (!i2c_cur_bus) { + if (cmd_i2c_set_bus_num(CONFIG_I2C_DEFAULT_BUS_NUMBER)) { + printf("Default I2C bus %d not found\n", + CONFIG_I2C_DEFAULT_BUS_NUMBER); + return -ENODEV; + } + } +#endif + if (!i2c_cur_bus) { puts("No I2C bus selected\n"); return -ENODEV; @@ -762,7 +769,7 @@ static int do_i2c_crc (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[] #endif if (ret) err++; - crc = crc32 (crc, &byte, 1); + crc = crc32(crc, &byte, 1); addr++; } if (err > 0) @@ -1146,7 +1153,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" @@ -1200,7 +1210,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; } @@ -2006,6 +2023,7 @@ static int do_i2c(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[]) static char i2c_help_text[] = #if defined(CONFIG_SYS_I2C) || defined(CONFIG_DM_I2C) "bus [muxtype:muxaddr:muxchannel] - show I2C bus info\n" + "i2c " /* That's the prefix for the crc32 command below. */ #endif "crc32 chip address[.0, .1, .2] count - compute CRC32 checksum\n" #if defined(CONFIG_SYS_I2C) || \