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 modules: loramac-node: Fix the build issue for US915 and AU915 regions 2021-10-12 15:22:04 -04:00
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 ext: hal: Remove Altera HAL from the tree and use a module 2020-03-20 09:07:16 -04:00
Kconfig.atmel kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
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: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.eos_s3 modules: add Kconfig for QuickLogic EOS S3 module 2020-09-04 14:48:49 -04:00
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 soc: arm: add infineon_xmc series support 2020-05-09 14:21:44 +02:00
Kconfig.libmetal kconfig: Replace non-defconfig single-symbol 'if's with 'depends on' 2020-02-12 10:32:34 -06:00
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 soc: arm: add support for nuvoton numicro m48x series 2020-07-01 21:09:25 +02:00
Kconfig.open-amp ipc: openamp: Expose config options for MASTER/SLAVE builds 2020-03-27 15:20:25 -05:00
Kconfig.silabs kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.simplelink kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.sof modules: Add Sound Open Firmware module 2021-01-06 07:53:46 -06:00
Kconfig.st modules/hal_st: Align sensor drivers to stmemsc HAL i/f v1.03 2020-10-13 09:46:08 -05:00
Kconfig.stm32 module: Kconfig stm32 includes the DELAYBLOCK (DLYB) 2022-05-12 14:56:25 -05:00
Kconfig.syst logging: add STP transport and raw data output support for syst 2020-11-17 10:09:19 -06:00
Kconfig.telink modules: hal_telink: introduce new HAL Telink module 2021-07-21 05:37:12 -04:00
Kconfig.tinycbor modules: tinycbor: Deprecate the module 2022-04-08 15:58:49 +02:00
Kconfig.tinycrypt ext: crypto: Remove TinyCrypt from the tree and use a module 2020-03-20 17:29:48 +01:00
Kconfig.vega modules: vega: add option for indicating the presence of RV32M1 TPM 2020-01-13 09:12:34 -06:00
Kconfig.wurthelektronik modules: Added hal_wurthelektronik module. 2022-08-31 21:47:58 +00:00
Kconfig.xtensa xtensa: add support to build HAL as part of build process 2019-12-18 20:24:18 -05:00
modules.cmake cmake: zephyr modules: sanitize all module name when used as variable 2021-01-20 12:59:19 +01:00