Zephyr Project API  3.2.0
A Scalable Open Source RTOS
spi_emul.h
Go to the documentation of this file.
1/*
2 * Copyright 2020 Google LLC
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_DRIVERS_SPI_SPI_EMUL_H_
8#define ZEPHYR_INCLUDE_DRIVERS_SPI_SPI_EMUL_H_
9
10#include <zephyr/device.h>
11#include <zephyr/drivers/emul.h>
12#include <zephyr/drivers/spi.h>
13#include <zephyr/types.h>
14
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32struct spi_msg;
33struct spi_emul_api;
34
36struct spi_emul {
38
40 const struct emul *target;
41
42 /* API provided for this device */
43 const struct spi_emul_api *api;
44
45 /* SPI chip-select of the emulated device */
47};
48
65typedef int (*spi_emul_io_t)(const struct emul *target, const struct spi_config *config,
66 const struct spi_buf_set *tx_bufs, const struct spi_buf_set *rx_bufs);
67
75int spi_emul_register(const struct device *dev, struct spi_emul *emul);
76
80};
81
89
90#ifdef __cplusplus
91}
92#endif
93
98#endif /* ZEPHYR_INCLUDE_DRIVERS_SPI_SPI_EMUL_H_ */
Public API for SPI drivers and applications.
int(* spi_emul_io_t)(const struct emul *target, const struct spi_config *config, const struct spi_buf_set *tx_bufs, const struct spi_buf_set *rx_bufs)
Definition: spi_emul.h:65
int spi_emul_register(const struct device *dev, struct spi_emul *emul)
uint32_t spi_emul_get_config(const struct device *dev)
int target
Definition: main.c:68
struct _snode sys_snode_t
Definition: slist.h:33
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
Runtime device structure (in ROM) per driver instance.
Definition: device.h:435
Definition: emul.h:67
SPI buffer array structure.
Definition: spi.h:445
SPI controller configuration structure.
Definition: spi.h:308
Definition: spi_emul.h:78
spi_emul_io_t io
Definition: spi_emul.h:79
Definition: spi_emul.h:36
const struct emul * target
Definition: spi_emul.h:40
sys_snode_t node
Definition: spi_emul.h:37
uint16_t chipsel
Definition: spi_emul.h:46
const struct spi_emul_api * api
Definition: spi_emul.h:43