Zephyr API Documentation 4.0.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
transceiver.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022 Vestas Wind Systems A/S
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_DRIVERS_CAN_TRANSCEIVER_H_
8#define ZEPHYR_INCLUDE_DRIVERS_CAN_TRANSCEIVER_H_
9
10#include <zephyr/drivers/can.h>
11#include <zephyr/device.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
36typedef int (*can_transceiver_enable_t)(const struct device *dev, can_mode_t mode);
37
42typedef int (*can_transceiver_disable_t)(const struct device *dev);
43
44__subsystem struct can_transceiver_driver_api {
45 can_transceiver_enable_t enable;
46 can_transceiver_disable_t disable;
47};
48
66static inline int can_transceiver_enable(const struct device *dev, can_mode_t mode)
67{
68 return DEVICE_API_GET(can_transceiver, dev)->enable(dev, mode);
69}
70
85static inline int can_transceiver_disable(const struct device *dev)
86{
87 return DEVICE_API_GET(can_transceiver, dev)->disable(dev);
88}
89
94#ifdef __cplusplus
95}
96#endif
97
98#endif /* ZEPHYR_INCLUDE_DRIVERS_CAN_TRANSCEIVER_H_ */
#define DEVICE_API_GET(_class, _dev)
Expands to the pointer of a device's API for a given class.
Definition device.h:1221
Controller Area Network (CAN) driver API.
uint32_t can_mode_t
Provides a type to hold CAN controller configuration flags.
Definition can.h:116
static int can_transceiver_enable(const struct device *dev, can_mode_t mode)
Enable CAN transceiver.
Definition transceiver.h:66
static int can_transceiver_disable(const struct device *dev)
Disable CAN transceiver.
Definition transceiver.h:85
Runtime device structure (in ROM) per driver instance.
Definition device.h:411