summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerome Glisse <glisse@freedesktop.org>2007-07-17 22:40:03 +0200
committerJerome Glisse <glisse@freedesktop.org>2007-07-17 22:40:03 +0200
commita7e43bd704dfb3957ace1f3d94e2c323364d443b (patch)
treeddde1ba6aa8d58398fa21ff599e75dbd26104cbb
parent94758f61f44cb5c385eaba4005d1d2d3e1178b39 (diff)
avivotool: 0x7e30 i2c line does not seems to work like other.
-rw-r--r--avivotool/avivotool.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/avivotool/avivotool.c b/avivotool/avivotool.c
index 244c690..fe82164 100644
--- a/avivotool/avivotool.c
+++ b/avivotool/avivotool.c
@@ -320,8 +320,13 @@ static void AVIVOI2CGetBits(I2CBusPtr b, int *Clock, int *data)
/* Get the result */
val = GET_REG(GPIO_IN);
- *Clock = (val & (1<<0)) != 0;
- *data = (val & (1<<8)) != 0;
+ if (GPIO_IN != 0x7E3C) {
+ *Clock = (val & (1<<0)) != 0;
+ *data = (val & (1<<8)) != 0;
+ } else {
+ *Clock = (val & (1<<2)) != 0;
+ *data = (val & (1<<3)) != 0;
+ }
}
static void AVIVOI2CPutBits(I2CBusPtr b, int Clock, int data)
@@ -329,8 +334,13 @@ static void AVIVOI2CPutBits(I2CBusPtr b, int Clock, int data)
unsigned long val;
val = 0;
- val |= (Clock ? 0:(1<<0));
- val |= (data ? 0:(1<<8));
+ if (GPIO_IN != 0x7E3C) {
+ val |= (Clock ? 0:(1<<0));
+ val |= (data ? 0:(1<<8));
+ } else {
+ val |= (Clock ? 0:(1<<2));
+ val |= (data ? 0:(1<<3));
+ }
SET_REG(GPIO_OUT, val);
/* read back to improve reliability on some cards. */
val = GET_REG(GPIO_OUT);