Commit graph

17805 commits

Author SHA1 Message Date
Jakub Zymelka 65f743619d drivers: nordic: Align VPR launcher for nRF54L15 FLPR core
Add nRF54L15 FLPR support for nordic_vpr_launcher.

Signed-off-by: Jakub Zymelka <jakub.zymelka@nordicsemi.no>
2024-04-16 18:36:58 +01:00
Jun Lin 011b730b4c driver: reset: npcx: add driver support for reset controller
Nuvoton NPCX chips have reset registers which allow to reset the
peripheral hardware modules. This commit adds the support by
implementing the reset driver. Note that only the reset_line_toggle API
is supported because of the nature of the reset controller's design.

Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
2024-04-16 09:09:13 +02:00
Krzysztof Chruściński e10ed057e8 drivers: serial: uart_async_to_irq: Move resetting to disabling function
Move resetting of the receiver state to disabling function so that once
uart is disabled there is no data pending in the module.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2024-04-16 09:07:55 +02:00
Krzysztof Chruściński 8f89013789 drivers: serial: uart_async_rx: Fix uart_async_rx_reset function
Add missing fields clearing to the resetting function.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2024-04-16 09:07:55 +02:00
Armin Brauns 3116970516 drivers: disk: add loopback disk driver
This driver creates a disk_access that transparently reads from and writes
to a file in a file system.

Signed-off-by: Armin Brauns <armin.brauns@embedded-solutions.at>
2024-04-15 10:55:29 -07:00
Krzysztof Chruściński 685e6cec9b drivers: serial: nrf: Adapt config dependencies to nrf54h20
DT nodes and compatible had been renamed and Kconfig option was relying
on the names that do not exists.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2024-04-15 12:53:09 +02:00
Juliane Schulze ca92f96f41 drivers: lis2dh: read reference register prior to wakeup
Fixes #71371

Signed-off-by: Juliane Schulze <juliane.schulze@deveritec.com>
2024-04-15 12:52:39 +02:00
Mike J. Chen 5518b0c698 drivers: i3c: i3c_mcux: retry when timeout occurs in emit stop
Have seen timeout error occur when doing an emit stop at
end of a multiple register write to a mmc5633 mag sensor IC.
The i3c_mcux driver would return on such an error without
doing the k_condvar_broadcast(), since the stop wasn't
technically done (or unclear if it was), and then future
transfers requests waiting on the condvar could be blocked
forever. Add a limited retry when a timeout occurs to
avoid such a stall condition from happening.

Signed-off-by: Mike J. Chen <mjchen@google.com>
2024-04-13 07:05:36 -04:00
Aleksander Wasaznik a64d20f6f0 Bluetooth: host: sched-lock bt_recv()
`bt_recv` is invoked from the BT long work queue, which is preemptible.
The host uses cooperative scheduling to ensure thread safety.

Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
2024-04-13 07:05:20 -04:00
Ricardo Rivera-Matos 30b27c73c3 regulator: cp9314: Cleans sleep related preprocesor directives
Removes conditional calling k_busy_wait() on single threaded
systems and uses k_sleep for both single and multi threaded
systems.

Commit e375d82 ("kernel: Implement k_sleep for Single Thread")
eliminated the need to call k_busy_wait() on single threaded
systems in place of k_sleep.

Signed-off-by: Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
2024-04-12 16:52:18 -04:00
Ricardo Rivera-Matos 7afc5932f0 regulator: regulator_common: Cleans sleep related preprocesor directives
Removes conditional calling k_busy_wait() on single threaded
systems and uses k_sleep for both single and multi threaded
systems.

Commit e375d82 ("kernel: Implement k_sleep for Single Thread")
eliminated the need to call k_busy_wait() on single threaded
systems in place of k_sleep.

Signed-off-by: Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
2024-04-12 16:52:18 -04:00
Marcin Niestroj 3431d09f09 drivers: wifi: esp_at: fix missing channel in scan result
WiFi scan results were not updated with information about channel, after
scan results parsing was updated. Fix that.

Fixes: a6b06004c2 ("drivers: wifi: esp_at: handle commas in SSIDs during
  scan and status")
Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
2024-04-12 16:51:52 -04:00
Guillaume Gautier b567a7db83 drivers: spi: stm32: add pm support
Add power management support for STM32 SPI

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2024-04-12 13:49:04 +02:00
Jędrzej Ciupis 2b23a52642 boards: nrf53: switch to the network CPU management API
Switch to the network CPU management API from direct nrfx calls.

Signed-off-by: Jędrzej Ciupis <jedrzej.ciupis@nordicsemi.no>
2024-04-12 11:31:47 +02:00
Marc Herbert 17081222e2 drivers: dai: intel: ssp: fix LOG_ERR level / false positive
There's no way this log level was intentional: this line is just the
title / prefix of a multi-line section with mostly LOG_INF statements.

Fixes commit 6423bc3bc8 ("drivers: dai: intel: ssp: Improve logging
output") which was very large hence error-prone.

Fixes SOF bug https://github.com/thesofproject/sof/issues/9026

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2024-04-11 17:30:20 -04:00
Henrik Brix Andersen 8eded2f76b drivers: can: add can_get_bitrate_{min,max}(), deprecate existing APIs
Since the minimum/maximum supported bitrates are now stored in the common
CAN controller driver configuration struct, retrieving these can no longer
fail.

Add new CAN controller API functions can_get_bitrate_min() and
can_get_bitrate_max() reflecting this and deprecate the existing
can_get_min_bitrate() and can_get_max_bitrate().

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-04-11 17:08:35 -04:00
Henrik Brix Andersen be54b552d7 drivers: can: fake: specify maximum supported bitrate
Specify a maximum supported bitrate.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-04-11 17:08:35 -04:00
Henrik Brix Andersen 776f771172 drivers: can: loopback: specify maximum supported bitrate
Specify a maximum supported bitrate.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-04-11 17:08:35 -04:00
Tom Burdick 4180d70439 dma: Fix error_callback enable/disable confusion
Previously the logic was inverted for error_callback_en where 0 was
enablement and 1 was disable. This was likely done so that the default,
sensibly so, was to enable the error callback if possible. A variety of
in tree users had confused the enable/disable value.

Change the name of the flag to error_callback_dis where the default
remains 0 (do not disable the callback!) and correct in tree uses of the
flag where it seemed incorrect.

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2024-04-11 17:08:10 -04:00
Jilay Pandya eaa2c60220 refactor: adjust spacing by clang formatting
This commit clang-formats the file after the new additions

Signed-off-by: Jilay Pandya <jilay.pandya@zeiss.com>
2024-04-11 20:09:59 +02:00
Jilay Pandya 895e889b38 fix: sensor: veml7700
This commit introduces checks in order to sanitize input data

Signed-off-by: Jilay Pandya <jilay.pandya@zeiss.com>
2024-04-11 20:09:59 +02:00
Hans Binderup ed06b0ba74 drivers: led: shell: Add devices as sub commands
Currently you have to manually type out the device name for each command.

This commit adds support for <device> entry tab completion and device
lookup if help is enabled.

Signed-off-by: Hans Binderup <habi@bang-olufsen.dk>
2024-04-11 11:36:09 -05:00
Hessel van der Molen c4850efab5 drivers: interrupt_controller: Enable PINT-irq when deepsleep is not used
DisableDeepSleepIRQ() disables the NVIC irq, while PINT need it to fire an
event when the interrupt is used. So while the interrupt is not used in
DeepSleep mode, it should still be available to be used.

Signed-off-by: Hessel van der Molen <hvandermolen@dexels.com>
2024-04-11 11:28:52 -05:00
Aditya Ganesh 9b17a952f6 drivers: can: can_stm32_bxcan.c: Failed to exit sleep mode
Fixes the issue of CAN failing to exit sleep mode
inside can_stm32_init() when a software reset is done.
For stm32 the CAN is first made to enter initialization
mode first and then made to exit the sleep mode.

Signed-off-by: Aditya Ganesh <adityaganesh2k@gmail.com>
2024-04-11 10:34:16 +02:00
Jan Kubiznak ba90f160b9 drivers: adc: adc_ads1119: Fix configuration register access.
The adc_ads1119 driver is unable to overwrite the configuration register,
the chip therefore always works with its default settings. Register access
macros are fixed by this commit.

Fixes: #70091

Signed-off-by: Jan Kubiznak <jan.kubiznak@deveritec.com>
2024-04-11 09:09:20 +02:00
Daniel DeGrasse 6294f4b541 drivers: usb: usb_dc_mcux: add case for RW6xx SOC series
Add case for RW6xx SOC series to indicate which device controller is in
use.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-04-11 09:09:00 +02:00
David Leach 00b46686b1 drivers: lpc55s36: Remove deprecated CSS driver
CSS was deprecated from the mcu-sdk. Removing driver from lpc55s36
to clear build error.

This is a temporary patch to remove the build error.

Fixes #69961

Signed-off-by: David Leach <david.leach@nxp.com>
2024-04-10 14:11:34 -04:00
Marcin Niestroj 424ea9f5e4 drivers: wifi: esp_at: do not connect socket on bind(INADDR_ANY)
All connect() syscalls result in EISCONN error, since underlying
_sock_connect() is attempted to be called twice. Once from net_context.c'
bind_default() (with INADDR_ANY) as part of esp_bind() and second time as
part of esp_connect().

Do not call _sock_connect() from esp_bind(INADDR_ANY), which happens as
part of connect().

Fixes: dbf3d6e911 ("drivers: esp_at: implement bind() and recvfrom() for
  UDP sockets")
Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
2024-04-10 12:23:12 -05:00
Marcin Niestroj ea44e2715a drivers: net: nsos: update unwatched file descriptor with poll()
zsock_poll_internal() iterates through all fds to call
ZFD_IOCTL_POLL_UPDATE on them. In cases when -EAGAIN is returned from one
of such syscalls (which happens for example for TLS sockets when in the
middle of a TLS handshake) whole fds array is iterated once again. This
means that ZFD_IOCTL_POLL_UPDATE can be called more than once for a single
preceding ZFD_IOCTL_POLL_PREPARE operation. This resulted in error in
nsos_adapt_poll_remove() call, which was not intended to be called twice.

In case ZFD_IOCTL_POLL_UPDATE is called second time, update 'revents' just
by calling poll() syscall on the host (Linux) side with 0 timeout.

Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
2024-04-10 11:30:04 -04:00
Marcin Niestroj 7c506fad6b drivers: net: nsos: fix error message on EPOLL_CTL_DEL error
Fix a copy-pasted error message to reference proper epoll_ctl() operation.

Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
2024-04-10 11:30:04 -04:00
Lyle Zhu 97fcbc905b drivers: memc: fix FlexRAM bank cfg issue
From IMXRT1170RM.pdf, iomuxc_gpr->GPR17 is
used to configure FlexRAM bank 0~7.
iomuxc_gpr->GPR18 is used to configure
FlexRAM bank 8~15.

Set low 2 bytes to iomuxc_gpr->GPR17.
Set high 2 bytes to iomuxc_gpr->GPR18.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2024-04-10 11:28:32 -04:00
Armando Visconti 38738265b9 drivers/sensor: use sensor APIs to convert to units
Make use of sensor_ug_to_ms2() and sensor_10udegrees_to_rad() APIs
to convert from raw values into proper units (i.e. m/s^2 for accel
and rad/s for gyro).

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2024-04-10 15:55:32 +02:00
Seppo Takalo 41d70de91e drivers: eth: stellaris: Fix build error
Apparently there was a typo in the last commit.
Looks like it was refactored without trying to build.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2024-04-10 15:55:13 +02:00
Francois Ramu 01684df03a drivers: flash: stm32 ospi flash driver the correct erase instruction
Use the most adapted instruction for the sector erase command
It can be 0x20 or ox21 or 0x21DE in octo - DTR mode.
The value is given by the SFDP table and  filled in the erase_types
 table the during the SFDP discovery process.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2024-04-10 08:00:53 -04:00
Dominik Ermel 5a0ecb9641 flash: Move dependency on FLASH_PAGE_LAYOUT where it belongs
The commit adds dependency on Kconfig FLASH_PAGE_LAYOUT to subsystems
that really require it:
 FCB, NVS, LittleFS
and removes direct selection from '*.conf' files where no longer
needed.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2024-04-10 10:01:40 +02:00
TOKITA Hiroshi e678a6247d drivers: serial: rpi_pico: Migrate to pl011 driver
RaspberryPi Pico's UART can be operated with the pl011 driver.
Replace it with this.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2024-04-10 10:01:25 +02:00
TOKITA Hiroshi e93cf224b6 drivers: serial: pl011: Add err_check function
Implementing err_check function by porting from
rpi_pico implementation.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2024-04-10 10:01:25 +02:00
TOKITA Hiroshi dd84e8db26 drivers: serial: pl011: Use clock control to determine frequency
If a clock control device is set in the `clocks` property,
it is used to determine the frequency.
If `fixed-clock` is set for the clocks, we use that value as is.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2024-04-10 10:01:25 +02:00
TOKITA Hiroshi 80b8ef80b3 drivers: serial: pl011: Add capability for handling reset device
Reset the device on initializing if the node inherits
`reset-device.yaml`.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2024-04-10 10:01:25 +02:00
TOKITA Hiroshi 155fee5924 drivers: serial: pl011: Introduce macros to separate device-dependent code
Introduce the `COMPAT_SPECIFIC_...` macros to determine the function name
from the compatible name.
These macros allow the isolation of device-dependent code in a generic way.

For example, if the compatible name is `ambiq,uart`,
The `COMPAT_SPECIFIC_DEFINE` macro is replaced by `AMBIQ_UART_DEFINE`.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2024-04-10 10:01:25 +02:00
Henrik Brix Andersen f7b92f1eae drivers: can: shell: use CAN_STD_ID_MASK/CAN_EXT_ID_MASK
Use CAN_STD_ID_MASK/CAN_EXT_ID_MASK instead of
CAN_MAX_STD_ID/CAN_MAX_EXT_ID.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2024-04-10 10:00:59 +02:00
Nazar Palamar a83d2dad8d wifi: airoc: remove dependency on CYHAL
Removing dependency on cyhal in airoc wifi driver.

It need to build airoc wifi driver with different than
PSoC 6 Soc like STM32

Signed-off-by: Nazar Palamar <nazar.palamar@infineon.com>
2024-04-09 16:57:49 +02:00
Jędrzej Ciupis 774dd16555 drivers: ieee802154: gracefully handle invalid Ack timestamp
The nRF IEEE 802.15.4 driver might report a received Ack frame with
invalid timestamp, if the timestamp could not have been taken. The upper
layers are not prepared to handle such a case as they expect that for a
received frame, the timestamp is always present and valid.

This commit detects this situation and handles it gracefully by
reporting the transmission as failed as if no Ack was received.

Signed-off-by: Jędrzej Ciupis <jedrzej.ciupis@nordicsemi.no>
2024-04-09 07:37:10 -04:00
Benedikt Schmidt 888d071fe7 drivers: sensor: implement output diagnostics sensor for TLE9104
Implement a sensor for the output diagnostics of the power train
switch TLE9104.

Signed-off-by: Benedikt Schmidt <benedikt.schmidt@embedded-solutions.at>
2024-04-09 11:07:27 +02:00
Benedikt Schmidt 84a40778af drivers: gpio: split up driver for TLE9104 into a MFD
Split up the driver for the power train switch TLE9104 into a
MFD and GPIO.

Signed-off-by: Benedikt Schmidt <benedikt.schmidt@embedded-solutions.at>
2024-04-09 11:07:27 +02:00
Axel Haslam 11e50e750e drivers: usb: stm32: Dont disable ULPI clock on low power
When running the cdc_acm demo on a board with an external ULPI
phy, the device is unable to enumerate:

usb 1-1.8.3.1: new full-speed USB device number 51 using ehci-pci
usb 1-1.8.3.1: device descriptor read/64, error -32
usb 1-1.8.3.1: device descriptor read/64, error -32

the console shows:

[00:00:00.001,000] cdc_acm_echo: Wait for DTR
[00:00:00.007,000] usb_cdc_acm: Device suspended
[00:00:00.902,000] usb_cdc_acm: Device resumed
[00:00:00.902,000] usb_cdc_acm: from suspend
[00:00:25.526,000] usb_cdc_acm: Device suspended

By not disabling the ULPI clock in low power, the usb enumeration
is working and we can run the cdc_acm demo. While touching
this code, add some comments to clarify the macro nesting.

Signed-off-by: Axel Haslam <ahaslam@baylibre.com>
2024-04-09 11:07:14 +02:00
Jiafei Pan 46ce8741bd clock: mcux_ccm: add gpt ipg clock
GPT IPG clock is using GPTx_CLK_ROOT.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2024-04-09 11:06:24 +02:00
Jiafei Pan 6a9407ede4 drivers: counter: gpt: enable MMIO memory mapping
Map the device memory in case of running with MMU on Cortex-A
Core.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2024-04-09 11:06:24 +02:00
Laurentiu Mihalcea 399c2cba65 nxp: imx8ulp: enable pinctrl
This commit enables pinctrl on i.MX8ULP. This includes:
	1) Adding `pinctrl_soc.h` header file.
	2) Adding DTS node for IOMUXC1, which is one of the
	IPs responsible for managing the 8ULP pads.
	3) Adding .dtsi with pin definitions. For now, only
	the LPUART7 pads are added to this file because this
	is going to be the only consummer for now.
	4) Modifying the `pinctrl_imx.c` driver to work for 8ULP.
	5) Enabling the `CONFIG_HAS_MCUX_IOMUXC`, which is a
	dependency of `CONFIG_PINCTRL_IMX`.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-04-09 11:06:14 +02:00
Laurentiu Mihalcea d42dfc36d7 drivers: pinctrl: Kconfig.imx: enable PINCTRL_IMX by default
Currently, when using the `pinctrl_imx.c` driver one has
to manually enable `CONFIG_PINCTRL_IMX` even if the pinctrl
node using the driver is enabled. This is redundant and prone
to error as one would expect the driver to be enabled when
the node is also enabled.

This commit fixes the issue by enabling `CONFIG_PINCTRL_IMX`
by default and adding a new dependency on the state of the
pinctrl node (i.e: node needs to be enabled for the configuration
to also be set to `y`).

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-04-09 11:06:14 +02:00