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>
Add the flash channel support by implementing the controller attached
flash sharing APIs, including flash_read, flash_write, and flash_erase.
For flash_read, the max data payload the module can support is 64 bytes
in one transaction.
For flash_write, the max data payload the module can support is 16
bytes in one transaction.
Signed-off-by: Mulin Chao <mlchao@nuvoton.com>
Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
Adds the dma transfer for the octoSPI on NOR octo Flash
of the stm32h7b3i and stm32h735g disco kits.
The channel for the MDMA is 0-15.
The MDMA request is 0x16 for the OCTOSPI1 fifo threshold
Signed-off-by: Francois Ramu <francois.ramu@st.com>
Adds the dma transfer for the octoSPI on NOR octo Flash
of the stm32l562e_dk disco kit.
The channel for the DMAMUX is 0-15 (0-7 for DMA1, 8-15 for DMA2)
The DMAMUX request is 41 for the OCTOSPI.
Signed-off-by: Francois Ramu <francois.ramu@st.com>
After add zephyr,flash-controller property, most gd32 boards support
flash_shell sample.
gd32vf103c_starter and gd32vf103v_eval only have 32KB SRAM, so we
should reduce CONFIG_HEAP_MEM_POOL_SIZE to 8KB.
gd32f350r_eval only have 16KB driver, exclude from flash_shell sample.
Signed-off-by: HaiLong Yang <hailong.yang@brainco.cn>
In a Controller Area Network a babbling node is a node continuously (and
usually erroneously) transmitting CAN frames with identical - often high -
priority. This constant babbling blocks CAN bus access for any CAN frame
with lower priority as these frames will loose the bus arbitration.
Being able to simulate a babbling CAN node is useful when examining the
behavior of other nodes on the same CAN bus when they constantly loose bus
arbitration.
Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
The commit switches flash area access from FLASH_AREA_ macros
to FIXED_PARTITION_ macros and to usage of DTS node labels,
to identify partitions, instead of label property.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
As of today <zephyr/zephyr.h> is 100% equivalent to <zephyr/kernel.h>.
This patch proposes to then include <zephyr/kernel.h> instead of
<zephyr/zephyr.h> since it is more clear that you are including the
Kernel APIs and (probably) nothing else. <zephyr/zephyr.h> sounds like a
catch-all header that may be confusing. Most applications need to
include a bunch of other things to compile, e.g. driver headers or
subsystem headers like BT, logging, etc.
The idea of a catch-all header in Zephyr is probably not feasible
anyway. Reason is that Zephyr is not a library, like it could be for
example `libpython`. Zephyr provides many utilities nowadays: a kernel,
drivers, subsystems, etc and things will likely grow. A catch-all header
would be massive, difficult to keep up-to-date. It is also likely that
an application will only build a small subset. Note that subsystem-level
headers may use a catch-all approach to make things easier, though.
NOTE: This patch is **NOT** removing the header, just removing its usage
in-tree. I'd advocate for its deprecation (add a #warning on it), but I
understand many people will have concerns.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
We auto-generate DT_COMPAT_<compat> defines so we dont need to
explicitly define them anymore.
NOTE: we need to source Kconfig.zephyr first to pull in the autogen
Kconfig.dts files.
Signed-off-by: Kumar Gala <galak@kernel.org>
Remove the custom Kconfig value for CONFIG_SHELL_ARGC_MAX as it is too low
to account for the new arguments to the "can send" shell command.
The default for CONFIG_SHELL_ARGC_MAX was increased to 20 in
32ebeb0a5c which is sufficient for sending
non-CAN-FD format frames using the new "can send" shell command.
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
Now that crypto drivers are enabled based on devicetree we can
remove any cases of them getting enabled by proj.conf files.
Signed-off-by: Kumar Gala <galak@kernel.org>
Samples testcases should start with 'sample'. Some testcases
start with 'samples'.
This commit rename these testcases.
Signed-off-by: Katarzyna Giadla <katarzyna.giadla@nordicsemi.no>
Many device pointers are initialized at compile and never changed. This
means that the device pointer can be constified (immutable).
Automated using:
```
perl -i -pe 's/const struct device \*(?!const)(.*)= DEVICE/const struct
device *const $1= DEVICE/g' **/*.c
```
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
This change creates an overlay file so that the adc sample
is running on the nucleo_u575zi_q board.
Signed-off-by: Francois Ramu <francois.ramu@st.com>
It is frequent to find variable definitions like this:
```c
static const struct device *dev = DEVICE_DT_GET(...)
```
That is, module level variables that are statically initialized with a
device reference. Such value is, in most cases, never changed meaning
the variable can also be declared as const (immutable). This patch
constifies all such cases.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
- Test effectively requires a microchip,xec-ps2, but it was "optional"
even though the test continued setting up a callback that makes use of
the device.
- Improve test filtering so that it requires a valid compatible to be
enabled (allows to delete redundant ps2 tag)
- Initialize device at compile time (allowing to constify its pointer)
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
- Require peci-0 alias (test without it is pointless)
- Initialize peci device at compile time
- Filter depending on alias
- Remove redundant peci tag
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Rename the can_state enumerations to contain the word STATE to make their
meaning more clear:
- CAN_ERROR_ACTIVE => CAN_STATE_ERROR_ACTIVE
- CAN_ERROR_WARNING => CAN_STATE_ERROR_WARNING
- CAN_ERROR_PASSIVE => CAN_STATE_ERROR_PASSIVE
- CAN_BUS_OFF => CAN_STATE_BUS_OFF
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
Remove the "z" prefix from the public CAN controller API types as this
makes them appear as internal APIs.
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
Names of some testcases are duplicated in another files.
This change rename duplicated testcases.
Signed-off-by: Katarzyna Giadla <katarzyna.giadla@nordicsemi.no>
Explicitly set the newly add public_network and iq_inverted settings
in lora_modem_config in the lora send and receive samples.
Signed-off-by: Tim Cooijmans <timcooijmans@gmail.com>
code to demonstrate the utilization of assymetric
dual core infrastructure based on soft-IPM implementation.
Signed-off-by: Felipe Neves <felipe.neves@linaro.org>
Because 1-wire drivers no longer use depends on serial/i2c, but select
the Kconfig for the bus they depend on, several overlays can be removed.
Signed-off-by: Thomas Stranger <thomas.stranger@outlook.com>
Introduce zephyr,keyboard-scan chosen node property to point to the
node that implements the default KSCAN device. This is similar to
the zephyr,display property.
We switch over the samples to utilize the new property instead of
kscan0 alias.
Signed-off-by: Kumar Gala <galak@kernel.org>
espi saf node is not enabled in mec15xxevb_assy6853.dts so the sample
will fail to build. For now disable CONFIG_ESPI_SAF to get the sample
to build.
Signed-off-by: Kumar Gala <galak@kernel.org>
Now that eeprom drivers are enabled based on devicetree we can
remove any cases of them getting enabled by proj.conf files.
Signed-off-by: Kumar Gala <galak@kernel.org>
Adding configuration to run the watchdog sample application
on the stm32 boards through 2 common overlay files:
one for running on the IWDG one for WWDG, if compatible.
Signed-off-by: Francois Ramu <francois.ramu@st.com>
Having the LED device enabled in devicetree will now get the driver
enabled by default when CONFIG_LED=y is set. So we can remove
setting driver enabling Kconfig values in various .conf files.
Signed-off-by: Kumar Gala <galak@kernel.org>
Building for native_posix_64 exposes faulty format strings.
Changes in this commit also ensure that the shell code gets built in CI,
thus this kind of problem can not be introduced again later on.
Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
Sample has been referencing flash area by its label, but flash device
by chosen `zephyr,flash-controller`, while flash area does not have
to be positioned on a device selected by the chosen directive.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
Now that clock control drivers are enabled based on devicetree we
can remove any cases of them getting enabled by *defconfig and
proj.conf files.
Signed-off-by: Kumar Gala <galak@kernel.org>
Adding the yaml files to sub-applications to avoid bitrot and
specifying the main applications with remote harness instead of
build_only.
Fixes#47613
Signed-off-by: Aastha Grover <aastha.grover@intel.com>
This add a removes the SPI config
for the stm32H735 and stm32H7b3 disco boards
when testing the octoSPI.
Signed-off-by: Francois Ramu <francois.ramu@st.com>
Now that SPI drivers are enabled based on devicetree we can remove
any cases of them getting enabled by *defconfig and proj.conf files.
Signed-off-by: Kumar Gala <galak@kernel.org>