diff options
Diffstat (limited to 'meta-phosphor/recipes-devtools/i2c-tools')
3 files changed, 9 insertions, 171 deletions
diff --git a/meta-phosphor/recipes-devtools/i2c-tools/i2c-tools/0001-4-byte-read-support-466.patch b/meta-phosphor/recipes-devtools/i2c-tools/i2c-tools/0001-4-byte-read-support-466.patch index 31031119d..307091dbf 100644 --- a/meta-phosphor/recipes-devtools/i2c-tools/i2c-tools/0001-4-byte-read-support-466.patch +++ b/meta-phosphor/recipes-devtools/i2c-tools/i2c-tools/0001-4-byte-read-support-466.patch @@ -1,14 +1,14 @@ -From 933e887fe2d9a0924a8e05efa6bc3b530b40976d Mon Sep 17 00:00:00 2001 +From 1a0c89e6cd3fec862718d48e9b94275a0dc6e52f Mon Sep 17 00:00:00 2001 From: Sergey Solomin <sergey.solomin@us.ibm.com> Date: Tue, 6 Sep 2016 15:36:43 -0500 -Subject: [PATCH 1/1] 4 byte read support 466 +Subject: [PATCH] 4 byte read support 466 --- tools/i2cdump.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tools/i2cdump.c b/tools/i2cdump.c -index a7bba72..99c79be 100644 +index b638c3d..6af44a8 100644 --- a/tools/i2cdump.c +++ b/tools/i2cdump.c @@ -25,6 +25,7 @@ @@ -29,14 +29,14 @@ index a7bba72..99c79be 100644 { fprintf(stderr, @@ -46,6 +49,7 @@ static void help(void) - " s (SMBus block)\n" + " s (SMBus block, deprecated)\n" " i (I2C block)\n" " c (consecutive byte)\n" + " d (double word)\n" " Append p for SMBus PEC\n"); } -@@ -184,6 +188,9 @@ int main(int argc, char *argv[]) +@@ -187,6 +191,9 @@ int main(int argc, char *argv[]) } else if (!strncmp(argv[flags+3], "c", 1)) { size = I2C_SMBUS_BYTE; pec = argv[flags+3][1] == 'p'; @@ -46,7 +46,7 @@ index a7bba72..99c79be 100644 } else if (!strcmp(argv[flags+3], "i")) size = I2C_SMBUS_I2C_BLOCK_DATA; else { -@@ -285,6 +292,7 @@ int main(int argc, char *argv[]) +@@ -289,6 +296,7 @@ int main(int argc, char *argv[]) size == I2C_SMBUS_BLOCK_DATA ? "smbus block" : size == I2C_SMBUS_I2C_BLOCK_DATA ? "i2c block" : size == I2C_SMBUS_BYTE ? "byte consecutive read" : @@ -54,7 +54,7 @@ index a7bba72..99c79be 100644 size == I2C_SMBUS_BYTE_DATA ? "byte" : "word"); if (pec) fprintf(stderr, "PEC checking enabled.\n"); -@@ -313,6 +321,32 @@ int main(int argc, char *argv[]) +@@ -317,6 +325,32 @@ int main(int argc, char *argv[]) } } @@ -88,5 +88,5 @@ index a7bba72..99c79be 100644 if (bank && size != I2C_SMBUS_BLOCK_DATA) { res = i2c_smbus_read_byte_data(file, bankreg); -- -1.8.2.2 +2.31.1 diff --git a/meta-phosphor/recipes-devtools/i2c-tools/i2c-tools/0001-i2cget-Add-support-for-i2c-block-data.patch b/meta-phosphor/recipes-devtools/i2c-tools/i2c-tools/0001-i2cget-Add-support-for-i2c-block-data.patch deleted file mode 100644 index 67752e68d..000000000 --- a/meta-phosphor/recipes-devtools/i2c-tools/i2c-tools/0001-i2cget-Add-support-for-i2c-block-data.patch +++ /dev/null @@ -1,161 +0,0 @@ -From 095558dd36c300bc0f4796a6d55c026a5066ceca Mon Sep 17 00:00:00 2001 -From: Crestez Dan Leonard <leonard.crestez@intel.com> -Date: Fri, 13 May 2016 21:54:25 +0300 -Subject: [PATCH] i2cget: Add support for i2c block data - -This adds mode 'i' for I2C_SMBUS_I2C_BLOCK_DATA. This is the same mode -letter from i2cdump. - -Length is optional and defaults to 32 (maximum). - -The indended use is debugging i2c devices with shell commands. - -Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com> -Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> ---- - tools/i2cget.c | 61 +++++++++++++++++++++++++++++++++++++++++--------- - 1 file changed, 51 insertions(+), 10 deletions(-) - -diff --git a/tools/i2cget.c b/tools/i2cget.c -index 1db4f39..f2c6423 100644 ---- a/tools/i2cget.c -+++ b/tools/i2cget.c -@@ -41,14 +41,16 @@ static void help(void) __attribute__ ((noreturn)); - static void help(void) - { - fprintf(stderr, -- "Usage: i2cget [-f] [-y] [-a] I2CBUS CHIP-ADDRESS [DATA-ADDRESS [MODE]]\n" -+ "Usage: i2cget [-f] [-y] [-a] I2CBUS CHIP-ADDRESS [DATA-ADDRESS [MODE] [LENGTH]]\n" - " I2CBUS is an integer or an I2C bus name\n" - " ADDRESS is an integer (0x08 - 0x77, or 0x00 - 0x7f if -a is given)\n" - " MODE is one of:\n" - " b (read byte data, default)\n" - " w (read word data)\n" - " c (write byte/read byte)\n" -- " Append p for SMBus PEC\n"); -+ " i (read I2C block data)\n" -+ " Append p for SMBus PEC\n" -+ " LENGTH is length for block data reads\n"); - exit(1); - } - -@@ -89,6 +91,13 @@ static int check_funcs(int file, int size, int daddress, int pec) - return -1; - } - break; -+ -+ case I2C_SMBUS_I2C_BLOCK_DATA: -+ if (!(funcs & I2C_FUNC_SMBUS_READ_I2C_BLOCK)) { -+ fprintf(stderr, MISSING_FUNC_FMT, "SMBus read I2C block data"); -+ return -1; -+ } -+ break; - } - - if (pec -@@ -101,7 +110,7 @@ static int check_funcs(int file, int size, int daddress, int pec) - } - - static int confirm(const char *filename, int address, int size, int daddress, -- int pec) -+ int length, int pec) - { - int dont = 0; - -@@ -132,11 +141,14 @@ static int confirm(const char *filename, int address, int size, int daddress, - fprintf(stderr, "current data\naddress"); - else - fprintf(stderr, "data address\n0x%02x", daddress); -- fprintf(stderr, ", using %s.\n", -- size == I2C_SMBUS_BYTE ? (daddress < 0 ? -- "read byte" : "write byte/read byte") : -- size == I2C_SMBUS_BYTE_DATA ? "read byte data" : -- "read word data"); -+ if (size == I2C_SMBUS_I2C_BLOCK_DATA) -+ fprintf(stderr, ", %d bytes using read I2C block data.\n", length); -+ else -+ fprintf(stderr, ", using %s.\n", -+ size == I2C_SMBUS_BYTE ? (daddress < 0 ? -+ "read byte" : "write byte/read byte") : -+ size == I2C_SMBUS_BYTE_DATA ? "read byte data" : -+ "read word data"); - if (pec) - fprintf(stderr, "PEC checking enabled.\n"); - -@@ -159,6 +171,8 @@ int main(int argc, char *argv[]) - int pec = 0; - int flags = 0; - int force = 0, yes = 0, version = 0, all_addrs = 0; -+ int length; -+ __u8 block_data[I2C_SMBUS_BLOCK_MAX]; - - /* handle (optional) flags first */ - while (1+flags < argc && argv[1+flags][0] == '-') { -@@ -209,6 +223,7 @@ int main(int argc, char *argv[]) - case 'b': size = I2C_SMBUS_BYTE_DATA; break; - case 'w': size = I2C_SMBUS_WORD_DATA; break; - case 'c': size = I2C_SMBUS_BYTE; break; -+ case 'i': size = I2C_SMBUS_I2C_BLOCK_DATA; break; - default: - fprintf(stderr, "Error: Invalid mode!\n"); - help(); -@@ -216,13 +231,27 @@ int main(int argc, char *argv[]) - pec = argv[flags+4][1] == 'p'; - } - -+ if (argc > flags + 5) { -+ if (size != I2C_SMBUS_I2C_BLOCK_DATA) { -+ fprintf(stderr, "Error: Length only valid for I2C block data!\n"); -+ help(); -+ } -+ length = strtol(argv[flags+5], &end, 0); -+ if (*end || length < 1 || length > I2C_SMBUS_BLOCK_MAX) { -+ fprintf(stderr, "Error: Length invalid!\n"); -+ help(); -+ } -+ } else { -+ length = I2C_SMBUS_BLOCK_MAX; -+ } -+ - file = open_i2c_dev(i2cbus, filename, sizeof(filename), 0); - if (file < 0 - || check_funcs(file, size, daddress, pec) - || set_slave_addr(file, address, force)) - exit(1); - -- if (!yes && !confirm(filename, address, size, daddress, pec)) -+ if (!yes && !confirm(filename, address, size, daddress, length, pec)) - exit(0); - - if (pec && ioctl(file, I2C_PEC, 1) < 0) { -@@ -244,6 +273,9 @@ int main(int argc, char *argv[]) - case I2C_SMBUS_WORD_DATA: - res = i2c_smbus_read_word_data(file, daddress); - break; -+ case I2C_SMBUS_I2C_BLOCK_DATA: -+ res = i2c_smbus_read_i2c_block_data(file, daddress, length, block_data); -+ break; - default: /* I2C_SMBUS_BYTE_DATA */ - res = i2c_smbus_read_byte_data(file, daddress); - } -@@ -254,7 +286,16 @@ int main(int argc, char *argv[]) - exit(2); - } - -- printf("0x%0*x\n", size == I2C_SMBUS_WORD_DATA ? 4 : 2, res); -+ if (size == I2C_SMBUS_I2C_BLOCK_DATA) { -+ int i; -+ printf("%d:", res); -+ for (i = 0; i < res; ++i) { -+ printf(" 0x%02hhx", block_data[i]); -+ } -+ printf("\n"); -+ } else { -+ printf("0x%0*x\n", size == I2C_SMBUS_WORD_DATA ? 4 : 2, res); -+ } - - exit(0); - } --- -2.26.2 - diff --git a/meta-phosphor/recipes-devtools/i2c-tools/i2c-tools_%.bbappend b/meta-phosphor/recipes-devtools/i2c-tools/i2c-tools_%.bbappend index e08b15965..fefe06252 100644 --- a/meta-phosphor/recipes-devtools/i2c-tools/i2c-tools_%.bbappend +++ b/meta-phosphor/recipes-devtools/i2c-tools/i2c-tools_%.bbappend @@ -1,3 +1,2 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" -SRC_URI =+ "file://0001-4-byte-read-support-466.patch \ - file://0001-i2cget-Add-support-for-i2c-block-data.patch" +SRC_URI =+ "file://0001-4-byte-read-support-466.patch" |