diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-03-25 00:13:23 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-03-25 00:13:23 +0000 |
commit | b72cc8e145a9df3d9b5fe215f89e8dfc4430f84b (patch) | |
tree | ac54a4c30860210259b654ffc307312d15d1ae53 /sim/bfin/ChangeLog | |
parent | eaf863cd1ef55ef8c276e5dd7c277f22522a0436 (diff) | |
download | gdb-b72cc8e145a9df3d9b5fe215f89e8dfc4430f84b.zip gdb-b72cc8e145a9df3d9b5fe215f89e8dfc4430f84b.tar.gz gdb-b72cc8e145a9df3d9b5fe215f89e8dfc4430f84b.tar.bz2 |
sim: bfin: fix GPIO logic bugs when processing events
We need the DIR bit cleared, not set, in order for the pin to be treated
as an input.
When looking up the data value, we need to shift the "level" value over by
"my_port" rather than "bit" as the latter has already been shifted over.
We also should normalize the "level" coming in from the outside worlds to
the set of {0,1} since those are the only values that matter to GPIOs.
We need the BOTH bit set, not cleared, in order for the pin to trigger
on both edges.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'sim/bfin/ChangeLog')
-rw-r--r-- | sim/bfin/ChangeLog | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sim/bfin/ChangeLog b/sim/bfin/ChangeLog index d4a36ca..953192f 100644 --- a/sim/bfin/ChangeLog +++ b/sim/bfin/ChangeLog @@ -1,5 +1,11 @@ 2011-03-24 Mike Frysinger <vapier@gentoo.org> + * dv-bfin_gpio.c (bfin_gpio_port_event): Split dir/inen bit checking. + Normalize "level" to 0/1 values. Shift "level" over by "my_port". + Invert port->both bit check. + +2011-03-24 Mike Frysinger <vapier@gentoo.org> + * dv-bfin_gpio.c (bfin_gpio_io_write_buffer): Subtract 2 from the valuep pointer for clear MMRs, 4 for set MMRs, and 6 for toggle MMRs. |