|
Zephyr API Documentation 4.3.99
A Scalable Open Source RTOS
|
Data Structures | |
| struct | can_driver_config |
| Common CAN controller driver configuration. More... | |
| struct | can_driver_data |
| Common CAN controller driver data. More... | |
| struct | can_driver_api |
| Driver Operations CAN Controller driver operations More... | |
Macros | |
| #define | CAN_CALC_TDCO(_timing_data, _tdco_min, _tdco_max) |
| Calculate Transmitter Delay Compensation Offset from data phase timing parameters. | |
| #define | CAN_DT_DRIVER_CONFIG_GET(node_id, _min_bitrate, _max_bitrate) |
Static initializer for can_driver_config struct. | |
| #define | CAN_DT_DRIVER_CONFIG_INST_GET(inst, _min_bitrate, _max_bitrate) |
Static initializer for can_driver_config struct from DT_DRV_COMPAT instance. | |
Typedefs | |
| typedef int(* | can_set_timing_t) (const struct device *dev, const struct can_timing *timing) |
| Callback API upon setting CAN bus timing See can_set_timing() for argument description. | |
| typedef int(* | can_set_timing_data_t) (const struct device *dev, const struct can_timing *timing_data) |
| Optional callback API upon setting CAN FD bus timing for the data phase. | |
| typedef int(* | can_get_capabilities_t) (const struct device *dev, can_mode_t *cap) |
| Callback API upon getting CAN controller capabilities See can_get_capabilities() for argument description. | |
| typedef int(* | can_start_t) (const struct device *dev) |
| Callback API upon starting CAN controller See can_start() for argument description. | |
| typedef int(* | can_stop_t) (const struct device *dev) |
| Callback API upon stopping CAN controller See can_stop() for argument description. | |
| typedef int(* | can_set_mode_t) (const struct device *dev, can_mode_t mode) |
| Callback API upon setting CAN controller mode See can_set_mode() for argument description. | |
| typedef int(* | can_send_t) (const struct device *dev, const struct can_frame *frame, k_timeout_t timeout, can_tx_callback_t callback, void *user_data) |
| Callback API upon sending a CAN frame See can_send() for argument description. | |
| typedef int(* | can_add_rx_filter_t) (const struct device *dev, can_rx_callback_t callback, void *user_data, const struct can_filter *filter) |
| Callback API upon adding an RX filter See can_add_rx_callback() for argument description. | |
| typedef void(* | can_remove_rx_filter_t) (const struct device *dev, int filter_id) |
| Callback API upon removing an RX filter See can_remove_rx_filter() for argument description. | |
| typedef int(* | can_recover_t) (const struct device *dev, k_timeout_t timeout) |
| Optional callback API upon manually recovering the CAN controller from bus-off state See can_recover() for argument description. | |
| typedef int(* | can_get_state_t) (const struct device *dev, enum can_state *state, struct can_bus_err_cnt *err_cnt) |
| Callback API upon getting the CAN controller state See can_get_state() for argument description. | |
| typedef void(* | can_set_state_change_callback_t) (const struct device *dev, can_state_change_callback_t callback, void *user_data) |
| Callback API upon setting a state change callback See can_set_state_change_callback() for argument description. | |
| typedef int(* | can_get_core_clock_t) (const struct device *dev, uint32_t *rate) |
| Callback API upon getting the CAN core clock rate See can_get_core_clock() for argument description. | |
| typedef int(* | can_get_max_filters_t) (const struct device *dev, bool ide) |
| Optional callback API upon getting the maximum number of concurrent CAN RX filters See can_get_max_filters() for argument description. | |
This group contains the API type definitions, callback signatures, and other helpers required to implement a CAN Controller driver.
| #define CAN_CALC_TDCO | ( | _timing_data, | |
| _tdco_min, | |||
| _tdco_max ) |
#include <zephyr/drivers/can.h>
Calculate Transmitter Delay Compensation Offset from data phase timing parameters.
Calculates the TDC Offset in minimum time quanta (mtq) using the sample point and CAN core clock prescaler specified by a set of data phase timing parameters.
The result is clamped to the minimum/maximum supported TDC Offset values provided.
| _timing_data | Pointer to data phase timing parameters. |
| _tdco_min | Minimum supported TDC Offset value in mtq. |
| _tdco_max | Maximum supported TDC Offset value in mtq. |
| #define CAN_DT_DRIVER_CONFIG_GET | ( | node_id, | |
| _min_bitrate, | |||
| _max_bitrate ) |
#include <zephyr/drivers/can.h>
Static initializer for can_driver_config struct.
| node_id | Devicetree node identifier |
| _min_bitrate | minimum bitrate supported by the CAN controller |
| _max_bitrate | maximum bitrate supported by the CAN controller |
| #define CAN_DT_DRIVER_CONFIG_INST_GET | ( | inst, | |
| _min_bitrate, | |||
| _max_bitrate ) |
#include <zephyr/drivers/can.h>
Static initializer for can_driver_config struct from DT_DRV_COMPAT instance.
| inst | DT_DRV_COMPAT instance number |
| _min_bitrate | minimum bitrate supported by the CAN controller |
| _max_bitrate | maximum bitrate supported by the CAN controller |
| typedef int(* can_add_rx_filter_t) (const struct device *dev, can_rx_callback_t callback, void *user_data, const struct can_filter *filter) |
#include <zephyr/drivers/can.h>
Callback API upon adding an RX filter See can_add_rx_callback() for argument description.
| typedef int(* can_get_capabilities_t) (const struct device *dev, can_mode_t *cap) |
#include <zephyr/drivers/can.h>
Callback API upon getting CAN controller capabilities See can_get_capabilities() for argument description.
#include <zephyr/drivers/can.h>
Callback API upon getting the CAN core clock rate See can_get_core_clock() for argument description.
#include <zephyr/drivers/can.h>
Optional callback API upon getting the maximum number of concurrent CAN RX filters See can_get_max_filters() for argument description.
| typedef int(* can_get_state_t) (const struct device *dev, enum can_state *state, struct can_bus_err_cnt *err_cnt) |
#include <zephyr/drivers/can.h>
Callback API upon getting the CAN controller state See can_get_state() for argument description.
| typedef int(* can_recover_t) (const struct device *dev, k_timeout_t timeout) |
#include <zephyr/drivers/can.h>
Optional callback API upon manually recovering the CAN controller from bus-off state See can_recover() for argument description.
| typedef void(* can_remove_rx_filter_t) (const struct device *dev, int filter_id) |
#include <zephyr/drivers/can.h>
Callback API upon removing an RX filter See can_remove_rx_filter() for argument description.
| typedef int(* can_send_t) (const struct device *dev, const struct can_frame *frame, k_timeout_t timeout, can_tx_callback_t callback, void *user_data) |
#include <zephyr/drivers/can.h>
Callback API upon sending a CAN frame See can_send() for argument description.
| typedef int(* can_set_mode_t) (const struct device *dev, can_mode_t mode) |
#include <zephyr/drivers/can.h>
Callback API upon setting CAN controller mode See can_set_mode() for argument description.
| typedef void(* can_set_state_change_callback_t) (const struct device *dev, can_state_change_callback_t callback, void *user_data) |
#include <zephyr/drivers/can.h>
Callback API upon setting a state change callback See can_set_state_change_callback() for argument description.
| typedef int(* can_set_timing_data_t) (const struct device *dev, const struct can_timing *timing_data) |
#include <zephyr/drivers/can.h>
Optional callback API upon setting CAN FD bus timing for the data phase.
See can_set_timing_data() for argument description
| typedef int(* can_set_timing_t) (const struct device *dev, const struct can_timing *timing) |
#include <zephyr/drivers/can.h>
Callback API upon setting CAN bus timing See can_set_timing() for argument description.
| typedef int(* can_start_t) (const struct device *dev) |
#include <zephyr/drivers/can.h>
Callback API upon starting CAN controller See can_start() for argument description.
| typedef int(* can_stop_t) (const struct device *dev) |
#include <zephyr/drivers/can.h>
Callback API upon stopping CAN controller See can_stop() for argument description.