Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
i2c_emul.h
Go to the documentation of this file.
1
7/*
8 * Copyright 2020 Google LLC
9 * Copyright (c) 2020 Nordic Semiconductor ASA
10 *
11 * SPDX-License-Identifier: Apache-2.0
12 */
13#ifndef ZEPHYR_INCLUDE_DRIVERS_I2C_I2C_EMUL_H_
14#define ZEPHYR_INCLUDE_DRIVERS_I2C_I2C_EMUL_H_
15
23#include <zephyr/types.h>
24#include <device.h>
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30struct i2c_msg;
31struct i2c_emul_api;
32
34struct i2c_emul {
36
37 /* API provided for this device */
38 const struct i2c_emul_api *api;
39
40 /* I2C address of the emulated device */
42};
43
57typedef int (*i2c_emul_transfer_t)(struct i2c_emul *emul, struct i2c_msg *msgs,
58 int num_msgs, int addr);
59
68int i2c_emul_register(const struct device *dev, const char *name,
69 struct i2c_emul *emul);
70
74};
75
83
84#ifdef __cplusplus
85}
86#endif
87
92#endif /* ZEPHYR_INCLUDE_DRIVERS_I2C_I2C_EMUL_H_ */
int(* i2c_emul_transfer_t)(struct i2c_emul *emul, struct i2c_msg *msgs, int num_msgs, int addr)
Definition: i2c_emul.h:57
uint32_t i2c_emul_get_config(const struct device *dev)
int i2c_emul_register(const struct device *dev, const char *name, struct i2c_emul *emul)
struct _snode sys_snode_t
Definition: slist.h:33
__UINT32_TYPE__ uint32_t
Definition: stdint.h:60
__UINT16_TYPE__ uint16_t
Definition: stdint.h:59
Runtime device structure (in ROM) per driver instance.
Definition: device.h:367
Definition: emul.h:52
Definition: i2c_emul.h:72
i2c_emul_transfer_t transfer
Definition: i2c_emul.h:73
Definition: i2c_emul.h:34
sys_snode_t node
Definition: i2c_emul.h:35
const struct i2c_emul_api * api
Definition: i2c_emul.h:38
uint16_t addr
Definition: i2c_emul.h:41
One I2C Message.
Definition: i2c.h:145