Zephyr API Documentation 4.2.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
12
13#ifndef ZEPHYR_INCLUDE_DRIVERS_CAN_TRANSCEIVER_H_
14#define ZEPHYR_INCLUDE_DRIVERS_CAN_TRANSCEIVER_H_
15
16#include <zephyr/drivers/can.h>
17#include <zephyr/device.h>
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
31
37
42typedef int (*can_transceiver_enable_t)(const struct device *dev, can_mode_t mode);
43
48typedef int (*can_transceiver_disable_t)(const struct device *dev);
49
50__subsystem struct can_transceiver_driver_api {
51 can_transceiver_enable_t enable;
52 can_transceiver_disable_t disable;
53};
54
56
72static inline int can_transceiver_enable(const struct device *dev, can_mode_t mode)
73{
74 return DEVICE_API_GET(can_transceiver, dev)->enable(dev, mode);
75}
76
91static inline int can_transceiver_disable(const struct device *dev)
92{
93 return DEVICE_API_GET(can_transceiver, dev)->disable(dev);
94}
95
99
100#ifdef __cplusplus
101}
102#endif
103
104#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:1350
Main header file for Controller Area Network (CAN) driver API.
uint32_t can_mode_t
Provides a type to hold CAN controller configuration flags.
Definition can.h:122
static int can_transceiver_enable(const struct device *dev, can_mode_t mode)
Enable CAN transceiver.
Definition transceiver.h:72
static int can_transceiver_disable(const struct device *dev)
Disable CAN transceiver.
Definition transceiver.h:91
Runtime device structure (in ROM) per driver instance.
Definition device.h:510