- Add device tree support for Renesas r7fa4m1ab3cfp with basic
gpio, clock control, sci, counter drivers, adc
- Add clock-frequency in renesas,ra-cgc-pclk binding to use the
clock frequency for iclk
Signed-off-by: Tran Van Quy <quy.tran.pz@renesas.com>
- Remove redundant node adc1 on ra4-cm4-common due to unsupported
- Update interrupt number for spi1
Signed-off-by: Tran Van Quy <quy.tran.pz@renesas.com>
According to the quick start guide of the FRDM-MCXC242 board, PTE0/PTE1
should be used for lpuart1. Enable and configure it in board dts.
Signed-off-by: Alexandre Rey <alx.rey@icloud.com>
Fixes calling the registered callbacks for image being confirmed
if the confirmation was not successful
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Added area_is_subregion() to validate offset and size within bounds.
Ensured read, write, and erase operations check for valid memory regions.
Added null buffer check in read and write functions to prevent errors.
Signed-off-by: Ofir Shemesh <ofirshemesh777@gmail.com>
Under the documentation generation sections, the path to the docs folder
and the zephyr path is inconsistent with the getting started pages.
Update to match
Signed-off-by: Mihira Madhava Bollapragada <madhava@ti.com>
Test was staring a TX transfer and aborting it after 300 us from
the timer handler. Test was assuming that ongoing transfer will
not finish in those 300 us. This might not be true for higher
baudrates. Instead of using fixed timeout, a value is calculated
from the baudrate and targets to abort the transfer after approx.
20 bytes of 95 byte long transfer.
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
Fast instance in nrf54h (uart120) can generate a spurious RXTO event
some time after RXTO event that indicates that RX path is disabled.
The time when event is generated depends on baudrate and when slower
baudrates are used peripheral is disabled on time to not notice it
in the test but with higher baudates issue become visible. In order
to avoid spurious interrupt, RXTO interrupt is disabled during RXTO
event handling and enabled when RX is enabled. This workaround is
applied only for fast instance to avoid unnecessary register
accesses for slower instances.
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
nrf54x devices have UARTE instance capable of using baudrate higher
than 1M. Higher baudrates does not have predefined values for
BAUDRATE register. A formula can be used to calculate BAUDRATE
value that shall be used for desired baudrate. Add UARTE_ANY_HIGH_SPEED
macro which is set when high speed is enabled (uart00 in nrf54lx or
uart120 in nrf54h20). For high speed instance use formula for getting
value that shall be written to BAUDRATE register.
When runtime configuration is not used then same formula is used to
calculate fixed BAUDRATE value.
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
Rename UARTE_ANY_FAST to UARTE_ANY_FAST_PD. There are 2 types of
'fast' UARTE instances. In nrf54h20 instance uart120 is in fast
power domain that requires additional power and clock management
of that domain. In nrf54lx fast uart00 instance does not require
that. Add _PD to indicate fast power domain.
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
Add build test configurations for the silabs_acmp comparator. Enable this
build testing on all series 2 silabs boards that currently support the
comparator driver.
Signed-off-by: Christian Galante <christian.galante@silabs.com>
Add board overlays to execute the comparator gpio_loopback testsuite on
xg24_dk2601b and xg29_rb4412a. The testsuite was executed and was seen
to pass on both boards locally with twister.
Signed-off-by: Christian Galante <christian.galante@silabs.com>
The xg24_dk2601b, xg24_ek2703a, xg27_dk2602a, xg23_rb4210a,
xg24_rb4187c and xg29_rb4412a board yaml files were updated
to support the comparator driver. Documentation hardware
support was updated for each of these boards as well to
mention support for the ACMP hardware block and comparator
driver.
Signed-off-by: Christian Galante <christian.galante@silabs.com>
This implements the comparator driver for silabs acmp peripherals
using the silabs,acmp compatible binding.
Signed-off-by: Christian Galante <christian.galante@silabs.com>
Defines an acmp node for xg21, xg23, xg24, xg27 and xg29
parts, which are all compatible with the silabs,acmp
binding.
Signed-off-by: Christian Galante <christian.galante@silabs.com>
Defines bindings that are compatible with silabs acmp.
`input-positive` and `input-negative` are required
properties to be configured by an application.
It is recommended to use the bindings generated in
`include/zephyr/dt-bindings/comparator/silabs_acmp.h`
and reference your part's design book when configuring
values for these properties.
Signed-off-by: Christian Galante <christian.galante@silabs.com>
Generates bindings that define acmp inputs. These bindings can be
used in devicetree sources to configure the acmp's
input-positive and input-negative properties. Depending on the
part, some inputs may not be available as positive and/or
negative inputs to the ACMP, therefore always reference your
part's design book when selecting these inputs.
Signed-off-by: Christian Galante <christian.galante@silabs.com>
This enables silabs series 2 hal source files for the silabs
acmp module to be compiled when the SOC_SILABS_ACMP
configuration is selected.
Signed-off-by: Christian Galante <christian.galante@silabs.com>
The ACMP module is enabled with this change in the gecko
and simplicity_sdk hal libraries for development on silabs
devices. This is a pre-requisite for implementing the
comparator driver that is compatible with silabs acmp
peripherals.
Signed-off-by: Christian Galante <christian.galante@silabs.com>
Update the irq_enable macro to use the DT_INST_IRQN_BY_IDX helper.
This ensures proper handling of IRQ numbers in systems with multi-level
interrupt configurations.
Signed-off-by: Ajay Neeli <ajay.neeli@amd.com>
Mark the XSI_REALTIME Option Group as supported, such that the
_XOPEN_REALTIME feature test macro may be tested.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
Add a POSIX Option Group called XSI_REALTIME (with Kconfig
option CONFIG_XSI_REALTIME).
When XSI_REALTIME is selected (or when required POSIX Options
are enabled), define _XOPEN_REALTIME to be something other
than -1 (_XOPEN_VERSION seemed appropriate).
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
Since XSI is composed of several distinct POSIX Option Groups
split Kconfig.xsi into separate files - one for each Option
Group.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
For the REALTIME_MINIMAL Application Environment Profile, uncomment
the POSIX_MEMLOCK, POSIX_MEMLOCK_RANGE, POSIX_MEMORY_PROTECTION,
POSIX_MAPPED_FILES, and POSIX_SHARED_MEMORY_OBJECTS options.
These should have been uncommented back when Kconfig options for
those features were added, so this can probably be called a
Kconfig bug.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
Remove arduino_gpio from supported features on pan1781_evb and
pan1782_evb boards due to them expsosing only a "reduced" Arduino header
see compatible panasonic,reduced-arduino-header
Fixes test failures in weekly CI run.
west twister -p pan1782_evb/nrf52833 -s drivers.gpio.st_2pin_arduino
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Add pre-devicetree CMake configuration for SAMR34 Xplained Pro board to
suppress SPI bus bridge warnings promoted to errors in weekly CI run.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
the adc0 node is now disabled by default in the soc
enable it so that adc test passes for this board
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Add an if clause to the CheckPatch Class that checks for windows os.
If windows os, check for perl installation.
If no perl installation present. Fail the check.
Without this change, CheckPatch can fail silently on windows,
as windows does not have a way to run perl scripts.
Signed-off-by: Jacob Wienecke <jacob.wienecke@nxp.com>
Document a C preprocessor limitation that prevents "nested" use of
for-each style devicetree macros in the way users sometimes expect.
Put this in the devicetree.h header where it will show up in the
detailed doxygen description in our HTML documentation, in addition to
being in the sources themselves for people who prefer to look for
docstrings there.
Signed-off-by: Martí Bolívar <marti.bolivar@oss.qualcomm.com>
Fixed a typo in BUILD_ASSERT macro causing driver to effectively fail to
compile as seen in:
west twister -p sam_v71_xult/samv71q21b -s drivers.dac.api
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Based on few tests, it was observed that WPA supplicant's maximum usage
for connection and disconnection is 4360.
This would save ~4K which is huge as we have a crunch for RAM.
This was missed when hostap was upstreamed from NCS.
Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
The current soc clock_init only configures the FlexSPI1 interface and
not the FlexSPI2.
This Commit adds the clock configuration for the second FlexSPI
in case one boots from the FlexSPI2.
Signed-off-by: Felix Schramek <felix.schramek@gmail.com>
lwm2m_gw_handle_req() function logic expects that at least one URI
option was found, therefore add an extra check to return the function
early if that isn't the case.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Implement the HAL callback function `HAL_PCD_ISOINIncompleteCallback` in
which the endpoint write semaphore is given back, thus allowing subsequent
writes to the endpoint after an isochronous transfer has been incompleted
(not read by the host).
This approach was chosen because it is similar to what is done in the
already implemented HAL callback `HAL_PCD_DataInStageCallback` which also
gives the write semaphore back but also calls the endpoint callback
function.
The reason for not also calling the endpoint callback function is because I
do not see any appropriate cb_status (`enum usb_dc_ep_cb_status_code`) to
pass. If passing `USB_DC_EP_DATA_IN` is okay even though "In transaction
done on this EP" is not completely true, then this should also be added.
This has been tested by setting up an isochronous endpoint, writing to it,
and verify that `HAL_PCD_DataInStageCallback` is called and subsequent
writes are possible.
Signed-off-by: Algot Axelzon <algot.axelzon@satcube.com>
Add a sample application that demonstrates how to use the new USB-MIDI 2.0
device class. This shows how to set up the device tree, how to exchange
MIDI data with the host, and how to use the data accessors provided by
the new API.
Signed-off-by: Titouan Christophe <moiandme@gmail.com>
This adds a new USB device class (based on usb/device_next) that implements
revision 2.0 of the MIDIStreaming interface, a sub-class of the USB audio
device class. In practice, the MIDI interface is much more simple and has
little in common with Audio, so it makes sense to have it as a separate
class driver.
MIDI inputs and outputs are configured through the device tree, under a
node `compatible = "zephyr,usb-midi"`. As per the USB-MIDI2.0 spec,
a single usb-midi interface can convey up to 16 Universal MIDI groups,
comprising 16 channels each. Data is carried from/to the host via
so-called Group Terminals, that are organized in Group Terminal Blocks.
They are represented as children of the usb-midi interface in the device
tree.
From the Zephyr application programmer perspective, MIDI data is exchanged
with the host through the device associated with the `zephyr,usb-midi`
interface, using the following API:
* Send a Universal MIDI Packet to the host: `usb_midi_send(device, pkt)`
* Universal MIDI Packets from the host are delivered to the function passed
in `usb_midi_set_ops(device, &{.rx_packet_cb = handler})`
Compliant USB-MIDI 2.0 devices are required to expose a USB-MIDI1.0
interface as alt setting 0, and the 2.0 interface on alt setting 1.
To avoid the extra complexity of generating backward compatible USB
descriptors and translating Universal MIDI Packets from/to the old
USB-MIDI1.0 format, this driver generates an empty MIDI1.0 interface
(without any input/output); and therefore will only be able to exchange
MIDI data when the host has explicitely enabled MIDI2.0 (alt setting 1).
This implementation is based on the following documents, which are referred
to in the inline comments:
* `midi20`:
Universal Serial Bus Device Class Definition for MIDI Devices
Release 2.0
https://www.usb.org/sites/default/files/USB%20MIDI%20v2_0.pdf
* `ump112`:
Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol
With MIDI 1.0 Protocol in UMP Format
Document Version 1.1.2
https://midi.org/universal-midi-packet-ump-and-midi-2-0-protocol-specification
Signed-off-by: Titouan Christophe <moiandme@gmail.com>
Make sure the tests work if VLAN count is set to 0. This means
that only priority tagged (tag 0) VLAN frames can be received.
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
If VLAN count is set to 0, then only priority tagged VLAN frames
that have tag value 0 can be received. Also this means that VLAN
interfaces are not created which can save memory if you do not need
to receive any other VLAN frames than those tagged with value 0.
Fixes#84023
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>