zephyr/modules
Henrik Brix Andersen 180cdc105e drivers: can: add start and stop CAN controller API functions
Up until now, the Zephyr CAN controller drivers set a default bitrate (or
timing) specified via devicetree and start the CAN controller in their
respective driver initialization functions.

This is fine for CAN nodes using only one fixed bitrate, but if the bitrate
is set by the user (e.g. via a DIP-switch or other HMI which is very
common), the CAN driver will still initialise with the default
bitrate/timing at boot and use this until the application has determined
the requested bitrate/timing and set it using
can_set_bitrate()/can_set_timing().

During this period, the CAN node will potentially destroy valid CAN frames
on the CAN bus (which is using the soon-to-be-set-by-the-application
bitrate) by sending error frames. This causes interruptions to the ongoing
CAN bus traffic when a Zephyr-based CAN node connected to the bus is
(re-)booted.

Instead, require all configuration (setting bitrate, timing, or mode) to
take place when the CAN controller is stopped. This maps nicely to entering
"reset mode" (called "configuration mode" or "freeze mode" for some CAN
controller implementations) when stopping and exiting this mode when
starting the CAN controller.

Fixes: #45304

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-09-13 16:06:50 +00:00
..
TraceRecorder
canopennode drivers: can: add start and stop CAN controller API functions 2022-09-13 16:06:50 +00:00
fff test: fix more legacy #include paths 2022-08-02 16:41:41 +01:00
hal_gigadevice modules: hal_gigadevice: add support for CMP, TMU and SHRTIMER 2022-08-12 14:13:49 +01:00
hal_infineon
hal_nordic includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
hal_nxp drivers: usb: mcux: Restructure driver for SDK updates 2022-09-09 09:44:46 -05:00
hal_rpi_pico modules: hal_rpi_pico: Enable ADC driver 2022-09-06 17:11:19 +02:00
liblc3 modules: liblc3: Rename the module for consistency 2022-08-22 20:40:59 +02:00
littlefs modules: littlefs: use ##__VA_ARGS__ for littlefs log wrappers 2022-09-05 13:41:19 +00:00
loramac-node
lz4
mbedtls modules: mbedtls: support stripping newline from debug log messages 2022-08-17 12:03:52 +02:00
nanopb
openthread net: openthread: priortize usec timer for openthread port. 2022-09-12 10:54:56 +00:00
segger segger: Resolve circular include dependencies 2022-08-02 13:09:21 +02:00
tflite-micro modules: add support for optimized CMSIS-NN kernels 2022-08-18 12:26:51 +02:00
trusted-firmware-a modules: tfa: integrate trusted-firmware-a 2022-09-09 16:36:37 +00:00
trusted-firmware-m includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
uoscore-uedhoc modules: Add uoscore-uedhoc repository 2022-08-12 16:17:59 +02:00
zcbor modules: zcbor: Fix ZCBOR_ASSERT kconfig typo 2022-09-08 15:30:47 +00:00
Kconfig modules: tfa: integrate trusted-firmware-a 2022-09-09 16:36:37 +00:00
Kconfig.altera
Kconfig.atmel
Kconfig.cmsis
Kconfig.cmsis_dsp
Kconfig.cmsis_nn
Kconfig.cypress
Kconfig.eos_s3
Kconfig.esp32 soc: xtensa: esp32_net: update kconfig 2022-08-16 18:06:02 +02:00
Kconfig.imx
Kconfig.infineon
Kconfig.libmetal
Kconfig.lvgl manifest: Update lvgl 2022-08-12 17:54:03 -05:00
Kconfig.mcuboot_bootutil
Kconfig.mcux
Kconfig.microchip
Kconfig.nuvoton
Kconfig.open-amp
Kconfig.silabs
Kconfig.simplelink
Kconfig.sof
Kconfig.st
Kconfig.stm32
Kconfig.syst
Kconfig.telink
Kconfig.tinycbor
Kconfig.tinycrypt
Kconfig.vega
Kconfig.wurthelektronik modules: Added hal_wurthelektronik module. 2022-08-31 21:47:58 +00:00
Kconfig.xtensa
modules.cmake