From bec4be9a199c2bbb8294e3698592a4d5ef5697d4 Mon Sep 17 00:00:00 2001
From: Benoit Rat <benoit@sevensols.com>
Date: Mon, 28 Jan 2013 15:56:07 +0100
Subject: [PATCH] libswitchhw: update pca9554 i2c functions

---
 userspace/libswitchhw/libshw_i2c.c | 6 ++----
 userspace/libswitchhw/libshw_i2c.h | 4 +++-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/userspace/libswitchhw/libshw_i2c.c b/userspace/libswitchhw/libshw_i2c.c
index e98f9e040..12331d9ee 100644
--- a/userspace/libswitchhw/libshw_i2c.c
+++ b/userspace/libswitchhw/libshw_i2c.c
@@ -1,14 +1,12 @@
 #include "libshw_i2c.h"
 
-int wrswhw_pca9554_configure(struct i2c_bus* bus, uint32_t address)
+int wrswhw_pca9554_configure(struct i2c_bus* bus, uint32_t address,uint8_t value)
 {
     //config initial port dir
-    uint8_t config_outputs[2] = {PCA9554_CMD_DIR_REG, WRSWHW_OUTPUT_BITMAP};
+    uint8_t config_outputs[2] = {PCA9554_CMD_DIR_REG, value};
     int result = i2c_transfer(bus, address, sizeof(config_outputs), 0, config_outputs);
     if (result < 0)
 	return result;
-
-    return wrswhw_pca9554_set_output_reg(bus, address, WRSWHW_INITIAL_OUTPUT_STATE);
 }
 
 
diff --git a/userspace/libswitchhw/libshw_i2c.h b/userspace/libswitchhw/libshw_i2c.h
index 02dc9486d..c308bc609 100644
--- a/userspace/libswitchhw/libshw_i2c.h
+++ b/userspace/libswitchhw/libshw_i2c.h
@@ -20,12 +20,14 @@
 #define PCA9554_CMD_POLARITY_REG	2
 #define PCA9554_CMD_DIR_REG		3
 
+#define I2C_CHIP_PCA9554 1
+
 //output bitmap for each expander (all out)
 #define WRSWHW_OUTPUT_BITMAP 		0
 //initial state for outputs
 #define WRSWHW_INITIAL_OUTPUT_STATE	(LINK1_SFP_TX_DISABLE | LINK0_SFP_TX_DISABLE)
 
-int wrswhw_pca9554_configure(struct i2c_bus* bus, uint32_t address);
+int wrswhw_pca9554_configure(struct i2c_bus* bus, uint32_t address,uint8_t value);
 int wrswhw_pca9554_set_output_reg(struct i2c_bus* bus, uint32_t address, uint8_t value);
 
 int wrswhw_pca9554_get_input(struct i2c_bus* bus, uint32_t address);
-- 
GitLab