diff options
Diffstat (limited to 'recipes/u-boot/u-boot-git/0003-cmd_i2c.c-reworked-subcommand-handling.patch')
-rw-r--r-- | recipes/u-boot/u-boot-git/0003-cmd_i2c.c-reworked-subcommand-handling.patch | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/recipes/u-boot/u-boot-git/0003-cmd_i2c.c-reworked-subcommand-handling.patch b/recipes/u-boot/u-boot-git/0003-cmd_i2c.c-reworked-subcommand-handling.patch new file mode 100644 index 0000000000..d681bc2a98 --- /dev/null +++ b/recipes/u-boot/u-boot-git/0003-cmd_i2c.c-reworked-subcommand-handling.patch @@ -0,0 +1,109 @@ +From 75ed15eae925d6e9c8078c8fb013d344d7f3d50f Mon Sep 17 00:00:00 2001 +From: Frans Meulenbroeks <fransmeulenbroeks@gmail.com> +Date: Wed, 24 Feb 2010 12:24:34 +0100 +Subject: [PATCH 3/5] cmd_i2c.c: reworked subcommand handling + +Signed-off-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com> +--- + common/cmd_i2c.c | 77 +++++++++++++++++++++++++++++++---------------------- + 1 files changed, 45 insertions(+), 32 deletions(-) + +diff --git a/common/cmd_i2c.c b/common/cmd_i2c.c +index 7531702..e54fc20 100644 +--- a/common/cmd_i2c.c ++++ b/common/cmd_i2c.c +@@ -1242,46 +1242,59 @@ int do_i2c_bus_speed(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) + return ret; + } + +-int do_i2c(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) ++int do_i2c_mm(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) + { +- /* Strip off leading 'i2c' command argument */ +- argc--; +- argv++; ++ return mod_i2c_mem (cmdtp, 1, flag, argc, argv); ++} ++ ++int do_i2c_nm(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) ++{ ++ return mod_i2c_mem (cmdtp, 0, flag, argc, argv); ++} + ++int do_i2c_reset(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) ++{ ++ i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); ++ return 0; ++} ++ ++static cmd_tbl_t cmd_i2c_sub[] = { + #if defined(CONFIG_I2C_MUX) +- if (!strncmp(argv[0], "bu", 2)) +- return do_i2c_add_bus(cmdtp, flag, argc, argv); ++ U_BOOT_CMD_MKENT(bus, 1, 1, do_i2c_add_bus, "", ""), + #endif /* CONFIG_I2C_MUX */ +- if (!strncmp(argv[0], "sp", 2)) +- return do_i2c_bus_speed(cmdtp, flag, argc, argv); ++ U_BOOT_CMD_MKENT(crc32, 3, 1, do_i2c_crc, "", ""), + #if defined(CONFIG_I2C_MULTI_BUS) +- if (!strncmp(argv[0], "de", 2)) +- return do_i2c_bus_num(cmdtp, flag, argc, argv); ++ U_BOOT_CMD_MKENT(dev, 1, 1, do_i2c_bus_num, "", ""), + #endif /* CONFIG_I2C_MULTI_BUS */ +- if (!strncmp(argv[0], "md", 2)) +- return do_i2c_md(cmdtp, flag, argc, argv); +- if (!strncmp(argv[0], "mm", 2)) +- return mod_i2c_mem (cmdtp, 1, flag, argc, argv); +- if (!strncmp(argv[0], "mw", 2)) +- return do_i2c_mw(cmdtp, flag, argc, argv); +- if (!strncmp(argv[0], "nm", 2)) +- return mod_i2c_mem (cmdtp, 0, flag, argc, argv); +- if (!strncmp(argv[0], "cr", 2)) +- return do_i2c_crc(cmdtp, flag, argc, argv); +- if (!strncmp(argv[0], "pr", 2)) +- return do_i2c_probe(cmdtp, flag, argc, argv); +- if (!strncmp(argv[0], "re", 2)) { +- i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); +- return 0; +- } +- if (!strncmp(argv[0], "lo", 2)) +- return do_i2c_loop(cmdtp, flag, argc, argv); ++ U_BOOT_CMD_MKENT(loop, 3, 1, do_i2c_loop, "", ""), ++ U_BOOT_CMD_MKENT(md, 3, 1, do_i2c_md, "", ""), ++ U_BOOT_CMD_MKENT(mm, 2, 1, do_i2c_mm, "", ""), ++ U_BOOT_CMD_MKENT(mw, 3, 1, do_i2c_mw, "", ""), ++ U_BOOT_CMD_MKENT(nm, 2, 1, do_i2c_nm, "", ""), ++ U_BOOT_CMD_MKENT(probe, 0, 1, do_i2c_probe, "", ""), ++ U_BOOT_CMD_MKENT(reset, 0, 1, do_i2c_reset, "", ""), + #if defined(CONFIG_CMD_SDRAM) +- if (!strncmp(argv[0], "sd", 2)) +- return do_sdram(cmdtp, flag, argc, argv); ++ U_BOOT_CMD_MKENT(sdram, 1, 1, do_i2c_sdram, "", ""), + #endif +- cmd_usage(cmdtp); +- return 0; ++ U_BOOT_CMD_MKENT(speed, 1, 1, do_i2c_bus_speed, "", ""), ++}; ++ ++int do_i2c(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) ++{ ++ cmd_tbl_t *c; ++ ++ /* Strip off leading 'i2c' command argument */ ++ argc--; ++ argv++; ++ ++ c = find_cmd_tbl(argv[0], &cmd_i2c_sub[0], ARRAY_SIZE(cmd_i2c_sub)); ++ ++ if (c) { ++ return c->cmd(cmdtp, flag, argc, argv); ++ } else { ++ cmd_usage(cmdtp); ++ return 1; ++ } + } + + /***************************************************/ +-- +1.7.0 + |