diff options
Diffstat (limited to 'meta-phosphor/common/recipes-devtools/i2c-tools/i2c-tools/0001-4-byte-read-support-466.patch')
-rw-r--r-- | meta-phosphor/common/recipes-devtools/i2c-tools/i2c-tools/0001-4-byte-read-support-466.patch | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/meta-phosphor/common/recipes-devtools/i2c-tools/i2c-tools/0001-4-byte-read-support-466.patch b/meta-phosphor/common/recipes-devtools/i2c-tools/i2c-tools/0001-4-byte-read-support-466.patch deleted file mode 100644 index 31031119d..000000000 --- a/meta-phosphor/common/recipes-devtools/i2c-tools/i2c-tools/0001-4-byte-read-support-466.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 933e887fe2d9a0924a8e05efa6bc3b530b40976d 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 - ---- - tools/i2cdump.c | 34 ++++++++++++++++++++++++++++++++++ - 1 file changed, 34 insertions(+) - -diff --git a/tools/i2cdump.c b/tools/i2cdump.c -index a7bba72..99c79be 100644 ---- a/tools/i2cdump.c -+++ b/tools/i2cdump.c -@@ -25,6 +25,7 @@ - #include <string.h> - #include <stdio.h> - #include <stdlib.h> -+#include <stdint.h> - #include <unistd.h> - #include <linux/i2c.h> - #include <linux/i2c-dev.h> -@@ -33,6 +34,8 @@ - #include "util.h" - #include "../version.h" - -+#define I2C_SMBUS_DWORD 7 -+ - static void help(void) - { - fprintf(stderr, -@@ -46,6 +49,7 @@ static void help(void) - " s (SMBus block)\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[]) - } else if (!strncmp(argv[flags+3], "c", 1)) { - size = I2C_SMBUS_BYTE; - pec = argv[flags+3][1] == 'p'; -+ } else if (!strncmp(argv[flags+3], "d", 1)) { -+ size = I2C_SMBUS_DWORD; -+ pec = argv[flags+3][1] == 'p'; - } else if (!strcmp(argv[flags+3], "i")) - size = I2C_SMBUS_I2C_BLOCK_DATA; - else { -@@ -285,6 +292,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" : -+ size == I2C_SMBUS_DWORD ? "double word" : - 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[]) - } - } - -+ /* handle mode 'd' (double word read) */ -+ if (size == I2C_SMBUS_DWORD) { -+ unsigned char buff[sizeof(uint32_t)]; -+ struct i2c_rdwr_ioctl_data msgset; -+ struct i2c_msg msg[1]; -+ -+ msg[0].addr = address; -+ msg[0].flags = I2C_M_RD; -+ msg[0].len = sizeof(buff); -+ msg[0].buf = buff; -+ -+ msgset.msgs = msg; -+ msgset.nmsgs = 1; -+ -+ if (ioctl( file, I2C_RDWR, &msgset ) < 0) { -+ fprintf(stderr, "Error: Could not read " -+ "double word. %s\n", strerror(errno)); -+ exit(1); -+ } -+ for (uint8_t n = 0; n < sizeof(buff); n++) { -+ printf ("%02x ", buff[n]); -+ } -+ printf ("\n"); -+ exit(0); -+ } -+ - /* See Winbond w83781d data sheet for bank details */ - if (bank && size != I2C_SMBUS_BLOCK_DATA) { - res = i2c_smbus_read_byte_data(file, bankreg); --- -1.8.2.2 - |