16#include <zephyr/device.h>
17#include <zephyr/drivers/i2c.h>
18#include <zephyr/dt-bindings/i2c/i2c.h>
22#include "pw_i2c/initiator.h"
23#include "pw_sync/lock_annotations.h"
24#include "pw_sync/mutex.h"
31 enum class BitRate : uint32_t {
34 kStandard100kHz = I2C_SPEED_SET(I2C_SPEED_STANDARD),
35 kFast400kHz = I2C_SPEED_SET(I2C_SPEED_FAST),
36 kFastPlus1MHz = I2C_SPEED_SET(I2C_SPEED_FAST_PLUS),
37 kHigh3p4MHz = I2C_SPEED_SET(I2C_SPEED_HIGH),
38 kUltra5MHz = I2C_SPEED_SET(I2C_SPEED_ULTRA),
42 :
Initiator(Initiator::Feature::kStandard),
44 config_(I2C_MODE_CONTROLLER | I2C_SPEED_SET(I2C_SPEED_DT)) {}
49 :
Initiator(Initiator::Feature::kStandard),
51 config_(I2C_MODE_CONTROLLER |
static_cast<uint32_t
>(bitrate)) {}
The common, base driver interface for initiating thread-safe transactions with devices on an I2C bus....
Definition: initiator.h:52
Definition: initiator.h:28
std::chrono::duration< rep, period > duration
Alias for durations representable with this clock.
Definition: system_clock.h:90
constexpr Initiator()
Definition: initiator.h:71
#define PW_GUARDED_BY(x)
Definition: lock_annotations.h:60
#define PW_LOCKS_EXCLUDED(...)
Definition: lock_annotations.h:176
Cross-platform I2C library.
Definition: address.h:19