amiro-os / components / bus / i2c / HWI2CDriver.cpp @ 552936c8
History | View | Annotate | Download (1.468 KB)
| 1 | 58fe0e0b | Thomas Schöpping | #include <amiro/bus/i2c/I2CParams.hpp> |
|---|---|---|---|
| 2 | #include <amiro/bus/i2c/HWI2CDriver.hpp> |
||
| 3 | |||
| 4 | namespace amiro {
|
||
| 5 | |||
| 6 | |||
| 7 | HWI2CDriver:: |
||
| 8 | HWI2CDriver(::I2CDriver *d) : |
||
| 9 | driver(d) {
|
||
| 10 | |||
| 11 | }; |
||
| 12 | |||
| 13 | void
|
||
| 14 | HWI2CDriver:: |
||
| 15 | start(const ::I2CConfig *config) {
|
||
| 16 | |||
| 17 | i2cStart(this->driver, config);
|
||
| 18 | |||
| 19 | }; |
||
| 20 | |||
| 21 | void
|
||
| 22 | HWI2CDriver:: |
||
| 23 | stop() {
|
||
| 24 | |||
| 25 | i2cStop(this->driver);
|
||
| 26 | |||
| 27 | } |
||
| 28 | |||
| 29 | i2cflags_t |
||
| 30 | HWI2CDriver:: |
||
| 31 | getErrors() {
|
||
| 32 | |||
| 33 | return i2cGetErrors(this->driver); |
||
| 34 | |||
| 35 | } |
||
| 36 | |||
| 37 | msg_t |
||
| 38 | HWI2CDriver:: |
||
| 39 | masterTransmit(const I2CTxParams *params, systime_t timeout) {
|
||
| 40 | |||
| 41 | return i2cMasterTransmitTimeout(
|
||
| 42 | this->driver,
|
||
| 43 | params->addr, |
||
| 44 | params->txbuf, |
||
| 45 | params->txbytes, |
||
| 46 | params->rxbuf, |
||
| 47 | params->rxbytes, |
||
| 48 | timeout); |
||
| 49 | |||
| 50 | } |
||
| 51 | |||
| 52 | msg_t |
||
| 53 | HWI2CDriver:: |
||
| 54 | masterReceive(const I2CRxParams *params, systime_t timeout) {
|
||
| 55 | |||
| 56 | return i2cMasterReceiveTimeout(
|
||
| 57 | this->driver,
|
||
| 58 | params->addr, |
||
| 59 | params->rxbuf, |
||
| 60 | params->rxbytes, |
||
| 61 | timeout); |
||
| 62 | |||
| 63 | } |
||
| 64 | |||
| 65 | void
|
||
| 66 | HWI2CDriver:: |
||
| 67 | acquireBus() {
|
||
| 68 | |||
| 69 | #if I2C_USE_MUTUAL_EXCLUSION
|
||
| 70 | i2cAcquireBus(this->driver);
|
||
| 71 | #endif /* I2C_USE_MUTUAL_EXCLUSION */ |
||
| 72 | } |
||
| 73 | |||
| 74 | void
|
||
| 75 | HWI2CDriver:: |
||
| 76 | releaseBus() {
|
||
| 77 | |||
| 78 | #if I2C_USE_MUTUAL_EXCLUSION
|
||
| 79 | i2cReleaseBus(this->driver);
|
||
| 80 | #endif /* I2C_USE_MUTUAL_EXCLUSION */ |
||
| 81 | |||
| 82 | } |
||
| 83 | |||
| 84 | } /* amiro */ |