Two fixes for the async RX path:
1. Only invoke the user callback for valid packets.
2. Re-check rx_cb != NULL before restarting RX. The user's callback may
call lora_recv_async(dev, NULL) to stop reception.
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
Fix three issues in the spi_transfer() helper:
1. pass NULL instead of the data pointer so the SPI driver sends dummy
bytes during reads rather than the caller's buffer contents (usually
rubbish)
2. unify TX and RX buf_set count. The old logic used different counts for
TX and RX, which caused a length mismatch when data_len > 0 on reads.
3. pass NULL for the rx buf_set on write operations. The chip's MISO output
during command writes is undefined, so a full-duplex transceive is only
needed for reads.
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
Add shell commands for the ADC emulator driver (zephyr,adc-emul) to
allow runtime configuration of emulated ADC values during testing and
development.
The new shell commands support:
- Setting constant raw ADC codes for a channel
- Setting constant input voltage in millivolts for a channel
Commands are dynamically populated with available ADC emulator devices
from the devicetree. This enables interactive testing of ADC-dependent
code without requiring physical hardware or signal generators.
Example usage:
adc_emul <device> raw <channel> <value>
adc_emul <device> mv <channel> <millivolts>
Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
Change the ADC emulator driver to accept differential mode configuration
instead of rejecting it with -ENOTSUP. When differential mode is requested,
the driver now logs a warning that samples are provided as raw codes and
continues operation.
This allows testing of ADC configurations that use differential mode
without requiring the emulator to implement full differential conversion
logic. The raw code values can still be set via shell commands or API
calls for testing purposes.
Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
Adding a way to configure x-loop increments greater than 1.
Fixing an issue where DMA descriptors that were allocated from a shared
pool were never freed.
Signed-off-by: Brett Peterson <brett.peterson@infineon.com>
This PR adds a new driver for the QEMU Firmware Configuration Device.
It implements the device for both X86 and MMIO architectures (e.g. ARM).
It also supports the DMA interface for write support.
Signed-off-by: Maximilian Zimmermann <gitmz@posteo.de>
Adding some of the missing pieces to the HM01b0 video class.
changed the VIDEO define to match all of the other video drivers
that I have tried:
That is CONFIG_VIDEO_HIMAX_HM01B0 to CONFIG_VIDEO_HM01B0
Added a few more format sizes: 324x324 to 324x244 164x122
match the spec.
Added BAYER format for the color camera (VIDEO_PIX_FMT_SBGGR8)
Only for Full, and QVGA, as cameras with BAYER filter do
not support the binning mode.
Added 4 data bit support, using new format: VIDEO_PIX_FMT_Y4
Support for hflip/vflip controls.
Added the frmival set/get/enum functions, to allow us better
control of how many frames are generated per second.
Used the reset register enumeration similar to other implementions,
such as Arduino library, Teensy Library, and OpenME
Signed-off-by: Kurt Eckhardt <kurte@rockisland.com>
Do not add a newline when flushing the buffer to the host terminal.
The caller may not want these newlines to be added, and the host
terminal can handle line wrapping on its own.
Signed-off-by: Joakim Andersson <joerchan@gmail.com>
Add buffer size configuration for posix console stdout buffer.
This allows to increase the buffer size for the posix console, which is
needed to avoid message flushed in the middle of ansi escape sequences.
Signed-off-by: Joakim Andersson <joerchan@gmail.com>
The macro was incorrectly using the rssi variable as input instead of
its v parameter. This only worked because a variable called rsii was
defined in the calling context.
Signed-off-by: Gabriele Zampieri <gabriele.zampieri@arsenaling.com>
Currently there's no way of disabling an RTC alarm if it's set; only if
it's active. This commit disables the alarm, regardless of the status.
Signed-off-by: Emil Lindqvist <emil@lindq.gr>
rtc_counter rejected rtc_alarm_set_time() before rtc_set_time() because the
epoch offset was not yet established. This breaks rtc_api on boards using
the zephyr,rtc-counter wrapper.
Fix by tracking whether the epoch is valid and deferring counter alarm
programming until rtc_set_time() establishes the epoch (then reschedule).
Also fix alarm pending semantics so an alarm is marked pending when it
fires regardless of whether a callback is installed, and treat -ETIME
from counter_set_channel_alarm() (with EXPIRE_WHEN_LATE) as an immediate
expiry by setting pending.
Signed-off-by: Holt Sun <holt.sun@nxp.com>
Replaces the event handling of drivers using gpio_stepper_common with
the new event handling logic.
Signed-off-by: Jan Behrens <jan.behrens@navimatix.de>
The new event handling is based on the one from gpio_stepper_common but
is designed to be useable by different types of stepper motion
controllers.
Signed-off-by: Jan Behrens <jan.behrens@navimatix.de>
Fixes callbacks not being executed if ISR_SAFE_EVENTS is disabled and
and the trigger_callback function is executed in an ISR context.
Signed-off-by: Jan Behrens <jan.behrens@navimatix.de>
Do not enable this driver class by default.
Whoever needs it should select it instead.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
WIth the rework of the vlan handeling, the iface init
will only be executed once per instance, so we don't need
that check anymore.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
Basic support for GlobalTop PA6H GNSS module.
API added: set_fix_rate, get_fix_rate, set_enabled_systems,
and get_enabled_systems.
Signed-off-by: Hong Nguyen <hong.nguyen.k54@gmail.com>
Add support for reset extended operation to clear all volatile register
settings. Notably, ECC enable and block protection registers are not
reset by a soft reset.
Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
This update configures the board to support the CYW55513 connectivity
module by enabling the required Kconfig symbols and defining the
HCI UART interface in the Devicetree
Changes:
- dts: Enable the Infineon HCI UART node with hardware flow control.
- pinctrl: Configured UART pins (TX, RX) and hardware flow control
pins (RTS, CTS) specifically for the Bluetooth HCI interface
- defconfig: Adjusted CONFIG_MAIN_STACK_SIZE to provide sufficient
headroom for the Bluetooth HCI driver and event processing.
- kconfig: make AIROC_WIFI6 selection conditional on WIFI to fix
dependency warnings in BLE-only builds.
Signed-off-by: Merin George <merin.george@infineon.com>
Introduces common Kconfig configurations for the CYW55513 connectivity
module, supporting both Murata 2FY and discrete implementations.
Additionally, updates the HCI driver to include a new vendor-specific
command required for updating the SCO route to PCM
Signed-off-by: Merin George <merin.george@infineon.com>
Update the Infineon PDL UART driver to support Zephyr's standard
UART hardware flow control configuration.
Flow control is now derived from uart_config.flow_control allowing
applications to enable RTS/CTS using the generic UART API and
devicetree settings
configure the RTS rx fifo trigger level when flow control is enabled
Signed-off-by: Merin George <merin.george@infineon.com>
Update bindings to consume a NVMEM cell instead of raw addresses, and
update the driver to support obtaining calibration data using the NVMEM
subsystem. For backwards compatibility and reduced footprint, the old
mechanism (direct MMIO read) is retained; a Kconfig option is introduced
to allow selecting which mechanism is used.
The sensor binding and SoC DTSI is updated accordingly.
Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
Update bindings to consume a NVMEM cell instead of raw addresses, and
update the driver to support obtaining calibration data using the NVMEM
subsystem. For backwards compatibility and reduced footprint, the old
mechanism (direct MMIO read) is retained; a Kconfig option is introduced
to allow selecting which mechanism is used.
The sensor binding and SoC DTSI is updated accordingly.
Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
- Get unit number and memory size from devicetree
- Renesas RZ/T2L uses at25sf128a flash chip which differs from RZ/T2M
and RZ/N2L supported previously. The Write Status Command may write
incorrect data to Status Register or Configuration Register on this
chip. Remove this code to make the driver common for other SoCs.
Signed-off-by: Tien Nguyen <tien.nguyen.zg@renesas.com>
Configure Timing Adapter (TA) child nodes during driver initialization.
This allows running inference with user-configured memory bandwidth and
latency models described in Devicetree.
Signed-off-by: Johan Alfvén <johan.alfven@arm.com>
Add RISC-V APLIC driver split into shared core and MSI-specific
modules following the GICv3/ITS pattern:
- intc_riscv_aplic_priv.h: private header with struct aplic_cfg,
register helpers, and aplic_msi_init() declaration
- intc_riscv_aplic.c: core driver with domain enable, source
configuration, device instantiation; calls aplic_msi_init()
when CONFIG_RISCV_APLIC_MSI is enabled
- intc_riscv_aplic_msi.c: MSI-specific code for APLIC target
routing, GENMSI injection, and MSI address geometry setup
This split allows direct delivery mode support to be added later
without touching MSI code.
Signed-off-by: Afonso Oliveira <afonso.oliveira707@gmail.com>
Add RISCV_APLIC base Kconfig (enabled by DT_HAS_RISCV_APLIC_ENABLED)
and RISCV_APLIC_MSI sub-config that is only available when every APLIC
node in the devicetree has an msi-parent property. This prevents
build failures when APLIC is used in direct delivery mode without an
IMSIC. Update CMakeLists.txt to build intc_riscv_aplic.c for the
base config and intc_riscv_aplic_msi.c for the MSI sub-config.
Signed-off-by: Afonso Oliveira <afonso.oliveira707@gmail.com>
- Fix lp_gpio Kconfig dependency to use proper
DT_HAS_ESPRESSIF_ESP32_LPGPIO_ENABLED symbol instead of
SOC_ESP32C6_LPCORE, and separate GPIO_ESP32 from LPGPIO_ESP32
- fix lp_gpio compatible string to espressif,esp32-lpgpio to
match the corrected Kconfig dependency
- enable global LP core interrupts at startup via
ulp_lp_core_intr_enable() in lp_core_startup(); the LP core
has no interrupt allocator so this must be done once for any
peripheral using the single interrupt vector
- enable lp_gpio in gpio_wakeup sample overlay
- fix ESP_CONSOLE_UART_NUM default for LP HP UART console
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
Correct an #if which otherwise is always true, so we do not
refer to a function which does not exist otherwise.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
This PR uses the correct macro that actually set VOS0
(thanks to @pillo79 that got the bottom of the problem discovering
that this is a bug in the STM zephyr driver).
A bug report that explains the problem can be found here:
zephyrproject-rtos#104536.
Signed-off-by: Francois Ramu <francois.ramu@st.com>
Remove pin slot assignment if GPIO pin interrupt is disabled,
otherwise a new interrupt configured while the interrupt is
disabled will cause re-enabling of the original interrupt
to override the slot assigned of the last interrupt configured.
Signed-off-by: Torbjørn Biering Tvermosegaard <tbt@foss.dk>
Add PWM driver for the Infineon PSoC4 family.
This includes SoC-specific register configurations, API calls,
and hardware instance mapping required for PSoC4 compatibility.
Signed-off-by: Surya Prakash T <suryat@aerlync.com>
Signed-off-by: Manojkumar Konisetty <manoj@aerlync.com>
Signed-off-by: Sayooj K Karun <sayooj@aerlync.com>
Fix race condition in riscv_clic_irq_set_pending() and other CLIC
functions when called from ISR context. The original code used unsafe
two-step CSR operations (MISELECT write followed by MIREG access) that
could be interrupted between steps, leading to incorrect register access.
Replace runtime IS_ENABLED() conditionals with compile-time preprocessor
directives for better code structure and explicit error handling when
platform configuration is incomplete.
Use atomic micsr_* and micsr2_* helpers that perform IRQ-locked indirect
CSR operations, ensuring proper MISELECT/MIREG register pairing.
Changes:
- Convert all CLIC functions to use compile-time ifdef structure
- Replace unsafe CSR operations with atomic micsr_*/micsr2_* helpers
- Use micsr_* (MIREG) for CLIC_INTIP, CLIC_INTCTRL, CLIC_CFG
- Use micsr2_* (MIREG2) for CLIC_INTIE, CLIC_INTATTR
- Add explicit error messages for unsupported configurations
- Fix bit_offset variable scope to avoid redefinition
Signed-off-by: Alexios Lyrakis <alex_gfd@hotmail.com>
STANDBY state can place the peripheral into a
low‑power state, and transitioning to it before
a TX transmission completes may cause data loss
Signed-off-by: Yassine El Aissaoui <yassine.elaissaoui@nxp.com>
Add explicit clock configuration and enable calls during driver
initialization.
Note: -ENOSYS is temporarily ignored as not all clock control
drivers currently implement the configure API. This handling
should be removed once all clock drivers support configure.
Signed-off-by: Albort Xue <yao.xue@nxp.com>
This commit add phy driver support for Maxlinear GPY111. This driver
implements vendor specific behaviour rgmii delay time setup, which is
not present in the generic MII driver.
Signed-off-by: Nhat Ta <nhat-minh.ta.yn@bp.renesas.com>