Brian Silverman | 0aa48a9 | 2014-01-25 17:10:17 -0800 | [diff] [blame] | 1 | #include "bbb/gpo.h" |
Daniel Petti | d6ff3d5 | 2014-01-02 11:24:39 -0800 | [diff] [blame] | 2 | |
| 3 | #include <stdio.h> |
Brian Silverman | 0aa48a9 | 2014-01-25 17:10:17 -0800 | [diff] [blame] | 4 | #include <errno.h> |
| 5 | #include <string.h> |
Brian Silverman | e364e38 | 2014-02-08 21:51:33 -0800 | [diff] [blame^] | 6 | #include <unistd.h> |
Daniel Petti | d6ff3d5 | 2014-01-02 11:24:39 -0800 | [diff] [blame] | 7 | |
| 8 | #include "aos/common/logging/logging.h" |
| 9 | |
| 10 | namespace bbb { |
| 11 | |
Brian Silverman | 0aa48a9 | 2014-01-25 17:10:17 -0800 | [diff] [blame] | 12 | Gpo::Gpo(int bank, int pin, bool initial_value) |
| 13 | : GpioPin(bank, pin, false, initial_value) {} |
| 14 | |
| 15 | void Gpo::Set(bool high) { |
Brian Silverman | e364e38 | 2014-02-08 21:51:33 -0800 | [diff] [blame^] | 16 | // TODO(brians): Figure out why this breaks it. |
| 17 | //rewind(value_handle_); |
| 18 | if (fputc(high ? '1' : '0', value_handle_) == EOF) { |
Brian Silverman | 0aa48a9 | 2014-01-25 17:10:17 -0800 | [diff] [blame] | 19 | LOG(FATAL, "fputc(%c, %p) for pin (%d,%d) failed with %d: %s\n", |
| 20 | high ? '1': '0', value_handle_, bank_, pin_, errno, strerror(errno)); |
Daniel Petti | d6ff3d5 | 2014-01-02 11:24:39 -0800 | [diff] [blame] | 21 | } |
Brian Silverman | e364e38 | 2014-02-08 21:51:33 -0800 | [diff] [blame^] | 22 | sync(); |
Daniel Petti | d6ff3d5 | 2014-01-02 11:24:39 -0800 | [diff] [blame] | 23 | } |
| 24 | |
Daniel Petti | fe47525 | 2014-01-05 14:15:16 -0800 | [diff] [blame] | 25 | } // namespace bbb |