The help text for i2c_read specifies that -c is optional:

    Usage: i2c_read [-bacrwv]

However, using i2c_read without -c falls through in do_i2c_read():

        if ((addr < 0) || (count < 1) || (addr > 0x7F))
                return COMMAND_ERROR_USAGE;

Actually make -c optional by initialising the count to 1.

Signed-off-by: Roland Hieber <[email protected]>
---
 commands/i2c.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/commands/i2c.c b/commands/i2c.c
index 997d49a94916..3a708531ee0a 100644
--- a/commands/i2c.c
+++ b/commands/i2c.c
@@ -195,7 +195,7 @@ static int do_i2c_read(int argc, char *argv[])
        struct i2c_adapter *adapter = NULL;
        struct i2c_client client;
        u8 *buf;
-       int count = -1, addr = -1, reg = -1, verbose = 0, ret, opt, bus = 0, 
wide = 0;
+       int count = 1, addr = -1, reg = -1, verbose = 0, ret, opt, bus = 0, 
wide = 0;
 
        while ((opt = getopt(argc, argv, "a:b:c:r:vw")) > 0) {
                switch (opt) {
@@ -264,7 +264,7 @@ BAREBOX_CMD_HELP_OPT("-b BUS\t", "i2c bus number (default 
0)")
 BAREBOX_CMD_HELP_OPT("-a ADDR\t", "i2c device address")
 BAREBOX_CMD_HELP_OPT("-r START", "start register (optional, master receive 
mode if none given)")
 BAREBOX_CMD_HELP_OPT("-w\t",       "use word (16 bit) wide access")
-BAREBOX_CMD_HELP_OPT("-c COUNT", "byte count")
+BAREBOX_CMD_HELP_OPT("-c COUNT", "byte count (default 1)")
 BAREBOX_CMD_HELP_OPT("-v\t",       "verbose")
 BAREBOX_CMD_HELP_END
 
-- 
2.39.2


Reply via email to