diff options
author | Jerome Glisse <glisse@freedesktop.org> | 2007-07-17 22:40:03 +0200 |
---|---|---|
committer | Jerome Glisse <glisse@freedesktop.org> | 2007-07-17 22:40:03 +0200 |
commit | a7e43bd704dfb3957ace1f3d94e2c323364d443b (patch) | |
tree | ddde1ba6aa8d58398fa21ff599e75dbd26104cbb | |
parent | 94758f61f44cb5c385eaba4005d1d2d3e1178b39 (diff) |
avivotool: 0x7e30 i2c line does not seems to work like other.
-rw-r--r-- | avivotool/avivotool.c | 18 |
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); |