Statistics
| Branch: | Tag: | Revision:

amiro-os / include / amiro / bus / i2c / I2CDriver.hpp @ 58fe0e0b

History | View | Annotate | Download (835 Bytes)

1
/*
2
 * AI2CDriver.hpp
3
 *
4
 *  Created on: Jun 6, 2014
5
 *      Author: Robert ABEL
6
 */
7

    
8
#ifndef AI2CDRIVER_HPP_
9
#define AI2CDRIVER_HPP_
10

    
11
#include <ch.hpp>
12
#include <hal.h>
13

    
14
/**
15
 * @brief   AMiRo
16
 */
17
namespace amiro {
18

    
19
  struct I2CTxParams;
20
  struct I2CRxParams;
21

    
22
  /**
23
   * @brief   I²C Driver Interface
24
   */
25
  class I2CDriver {
26

    
27
  public:
28

    
29
    I2CDriver() {};
30
    virtual ~I2CDriver() {};
31

    
32
    virtual void start(const ::I2CConfig *config) = 0;
33
    virtual void stop() = 0;
34
    virtual i2cflags_t getErrors() = 0;
35
    virtual msg_t masterTransmit(const I2CTxParams *params, systime_t timeout = TIME_INFINITE) = 0;
36
    virtual msg_t masterReceive(const I2CRxParams *params, systime_t timeout = TIME_INFINITE) = 0;
37

    
38
    virtual void acquireBus() = 0;
39
    virtual void releaseBus() = 0;
40

    
41
  };
42

    
43
} /* amiro */
44

    
45
#endif /* AI2CDRIVER_HPP_ */