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
..
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 modules: hal_infineon: fix CMake Warning when build non Infineon device 2022-05-16 10:17:29 +02:00
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 kconfig: remove Enable from boolean prompts 2022-03-09 15:35:54 +01:00
mbedtls modules: mbedtls: support stripping newline from debug log messages 2022-08-17 12:03:52 +02:00
nanopb kconfig: remove Enable from boolean prompts 2022-03-09 15:35:54 +01:00
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
TraceRecorder Modules: Percepio TraceRecorder: Update module from v4.5.2 to v4.6.0(RC1) 2022-02-01 07:45:09 -05: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 modules: cmsis_nn: Move Kconfig prompt out of CMSIS-DSP menu 2022-05-04 18:57:41 -04:00
Kconfig.cmsis_dsp modules: cmsis_dsp: Fix missing common tables dependency for SVM 2022-05-05 11:58:11 +09:00
Kconfig.cmsis_nn modules: cmsis: integrate CMSIS-NN 2022-03-22 12:56:02 +01:00
Kconfig.cypress
Kconfig.eos_s3
Kconfig.esp32 soc: xtensa: esp32_net: update kconfig 2022-08-16 18:06:02 +02:00
Kconfig.imx drivers: pinctrl: refactor pin control support for imx rt 2022-05-12 16:57:17 -05:00
Kconfig.infineon
Kconfig.libmetal
Kconfig.lvgl manifest: Update lvgl 2022-08-12 17:54:03 -05:00
Kconfig.mcuboot_bootutil everywhere: fix typos 2022-03-18 13:24:08 -04:00
Kconfig.mcux nxp_imx: rt: add XBARA Inter-Peripheral Crossbar Switch Kconfig option 2022-07-01 16:23:11 +00:00
Kconfig.microchip modules: Add entry for Microchip mpfs hal 2022-05-06 11:32:54 +02:00
Kconfig.nuvoton
Kconfig.open-amp
Kconfig.silabs
Kconfig.simplelink
Kconfig.sof
Kconfig.st
Kconfig.stm32 module: Kconfig stm32 includes the DELAYBLOCK (DLYB) 2022-05-12 14:56:25 -05:00
Kconfig.syst
Kconfig.telink
Kconfig.tinycbor modules: tinycbor: Deprecate the module 2022-04-08 15:58:49 +02:00
Kconfig.tinycrypt
Kconfig.vega
Kconfig.wurthelektronik modules: Added hal_wurthelektronik module. 2022-08-31 21:47:58 +00:00
Kconfig.xtensa
modules.cmake