Commit graph

24538 commits

Author SHA1 Message Date
Camille BAUD
94f78a035b drivers: display: Fix Black White Red SSD16xx displays
This fixes SSD16xx tricolor displays being all red when using this driver.

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-05-25 21:55:17 +02:00
Miguel Gazquez
be9549be60 soc: Add support for the WCH CH32V303
Adds support for building an image for the ch32v303.

Signed-off-by: Miguel Gazquez <miguel.gazquez@bootlin.com>
2025-05-24 18:03:53 +02:00
Miguel Gazquez
2b91c467f2 modules: Update hal_wch
Update hal_wch.

As the hal upstream changed name, there is now a name conflict.
Rename ch32fun.h to hal_ch32fun.h to fix this conflict.

Signed-off-by: Miguel Gazquez <miguel.gazquez@bootlin.com>
2025-05-24 18:03:53 +02:00
Flavio Ceolin
dfde32144a drivers; crypto: Remove TinyCrypt shim
TC crypto driver was depecrated in 4.0 release. Time to
remove it \o/

Signed-off-by: Flavio Ceolin <flavio.ceolin@gmail.com>
2025-05-23 17:41:06 -04:00
Julien Panis
dd5ed02146 drivers: adc: Add support for cc23x0 ADC
Add support for 16-channel ADC to cc23x0 SoC. The driver supports the
following conversion modes:
- Single channel | Single conversion,
- Sequence of channels (up to 4) | Single conversion.

Signed-off-by: Julien Panis <jpanis@baylibre.com>
2025-05-23 19:49:48 +02:00
Derek Snell
66eb61ae38 drivers: clock_control_mcux_syscon: confine RTC code to SOC_SERIES_MCXN
Some RTC clock code introduced is specific to SOC_SERIES_MCXN, and
causes build failures on other SOCs.

Signed-off-by: Derek Snell <derek.snell@nxp.com>
2025-05-23 17:20:51 +02:00
Jérôme Pouiller
d7f1c0ad5f drivers: wifi: siwx91x: Add support for Enhanced Legacy Power Save
Siwx91x support a specific mode slightly better than the old legacy PS
mode.

This mode has to be set on the NWP boot, so it is not easy to configure
it during the runtime. Hence, this patch only provide a compile time
option to enable it.

Co-authored-by: Arunmani Alagarsamy <arunmani.a@silabs.com>
Signed-off-by: Arunmani Alagarsamy <arunmani.a@silabs.com>
Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-05-23 17:20:34 +02:00
Jérôme Pouiller
c3ce29eb81 drivers: wifi: siwx91x: Add support for get_power_save_config()
We can now implement the get_power_save_config() callback.

Co-authored-by: Arunmani Alagarsamy <arunmani.a@silabs.com>
Signed-off-by: Arunmani Alagarsamy <arunmani.a@silabs.com>
Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-05-23 17:20:34 +02:00
Arunmani Alagarsamy
adae16812e drivers: wifi: siwx91x: Add support for set_power_save()
Added power-save mode support to optimize station wake-up timing
and reduce power consumption. The device currently supports
only legacy power-save mode.

This feature can be tested using the Wifi shell:
  - ps: Enable the PS. By default, the device operates in fast
        PSP mode.
  - ps_exit_strategy: Updates mode if enabled; otherwise, follows
        the configured exit strategy when power-save is enabled.
  - ps_wakeup_mode: Configures the wake-up behavior.
  - ps_timeout: Defines the timeout duration for power-save mode.

Co-authored-by: Arunmani Alagarsamy <arunmani.a@silabs.com>
Signed-off-by: Arunmani Alagarsamy <arunmani.a@silabs.com>
Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-05-23 17:20:34 +02:00
Phi Bang Nguyen
e462ef3c07 drivers: video: ov7670: Set default format to RGB565 QVGA
The default format for ov7670 is currently VGA YUYV and it counts on the
smartdma to reset the format to RGB565 QVGA when get_format() is called.

Recently, set_format() is decoupled from get_format() so this assumption
is nolonger correct.

Set the default format to RGB565 QVGA instead.

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2025-05-23 15:39:31 +02:00
Hao Luo
0e4ff0f3fe drivers: gpio: ambiq: need to select AMBIQ_HAL_USE_GPIO
This commit selects AMBIQ_HAL_USE_GPIO to include ambiq GPIO HAL

Signed-off-by: Hao Luo <hluo@ambiq.com>
2025-05-23 11:04:34 +02:00
Luca Burelli
8151dd9c6c drivers: flash_stm32h7: fix flash size detection
Commit 0e41b07309 ("drivers : flash:
update way to get flash size") changed the way to get flash size from
the LL_FLASH_GetSize() HAL function to the current DT_REG_SIZE() macro.

However, they are not equivalent:

- With LL_FLASH_GetSize(), REAL_FLASH_SIZE_KB returned the *total* size
  of the Flash memory, reading it from a ROM register of the CPU. For
  example, it was 2048 (2MB) for a STM32H747xI.

- The current DT_REG_SIZE() applies to a flash *bank*, therefore it only
  returns half of the total Flash size on dual bank devices.

This mismatch causes issues with the DISCONTINUOUS_BANKS logic below,
incorrectly matching partitions close to the end of the first bank as
appearing to span both and triggering the "range overlaps discontinuity"
check later.

Fix it by doubling the size when appropriate, in the same way it is
already done for the M4 core.

Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
2025-05-23 11:04:15 +02:00
Emil Lindqvist
65b7470972 hwinfo: stm32: reverse device id byte order to match v4.1 order
Reverse back the device id byte order to the way it was in v4.1 to
return the same device id.

Signed-off-by: Emil Lindqvist <emil@lindq.gr>
2025-05-23 11:04:10 +02:00
Ayush Singh
4c3491d8a4 drivers: i2c: omap: Fix for RAM MMIO
- RAM MMIO is initialized using DEVICE_MMIO_MAP. So add it to init code.

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-05-23 11:04:00 +02:00
Ayush Singh
d4ee678fe3 drivers: i2c: omap: Use non-named mmio macros
- Since only one mmio region is used, use the non-named macros

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-05-23 11:04:00 +02:00
Ayush Singh
9db744ba06 drivers: i2c: omap: Use DEVICE_MMIO macro for registers
- Use DEVICE_MMIO_* macros for getting the registers.
- These macros automatically used the proper RAM/ROM address.

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-05-23 11:04:00 +02:00
Jaro Van Landschoot
219770df71 drivers: audio: pcm1681: add driver
Add a basic driver for the PCM1681 and PCM1681-Q1 DAC

Signed-off-by: Jaro Van Landschoot <jaro.vanlandschoot@basalte.be>
2025-05-23 11:03:32 +02:00
Stoyan Bogdanov
cfe7a58a28 drivers: counter: Add support for cc23x0 LGPT
Add support for LGPT0, LGPT1, LGPT2 and LGPT3 to cc23x0 SoC.

Signed-off-by: Stoyan Bogdanov <sbogdanov@baylibre.com>
2025-05-23 11:03:24 +02:00
Yishai Jaffe
fc56305c2f drivers: display: st7567: add display_clear support
Add support for `display_clear` API to the st7567 display.

Signed-off-by: Yishai Jaffe <yishai1999@gmail.com>
2025-05-23 09:37:58 +02:00
Yishai Jaffe
bdb69c4afd drivers: display: ls0xx: add display_clear support
Add support for `display_clear` API to the Sharp display.

Signed-off-by: Yishai Jaffe <yishai1999@gmail.com>
2025-05-23 09:37:48 +02:00
Markus Lassila
28e40128aa modem_cellular: Close carrier with suspend
Fix regression introduced by dormant state, where the
carrier does not get closed when Cellular Modem driver
is suspended.

Signed-off-by: Markus Lassila <markus.lassila@nordicsemi.no>
2025-05-23 09:37:29 +02:00
Yuval Peress
6c73b5813f i2c: npcx: Loosen requirements for target registration
Allow NPCX_I2C_ERROR_RECOVERY as a valid state when registering a
target.

Signed-off-by: Yuval Peress <peress@google.com>
2025-05-22 23:57:08 +02:00
Yuval Peress
270c98bc23 i2c: npcx: Improve error logging
Add the device name to the error logs so we can differentiate which
device caused the error and not just which port.

Signed-off-by: Yuval Peress <peress@google.com>
2025-05-22 23:57:08 +02:00
Yuval Peress
27f6bc861c i2c: npcx: Remove erroneous debug messages
When enabling I2C debug logging these messages make it impossible to
see what's going on.

Signed-off-by: Yuval Peress <peress@google.com>
2025-05-22 23:57:08 +02:00
jhan bo chao
85dc257072 drivers: counter: rts5912: clear pending irq when setup
clear pending irq when setup.

Signed-off-by: jhan bo chao <jhan_bo_chao@realtek.com>
2025-05-22 20:57:15 +02:00
Alain Volmat
1d6c2c7926 drivers: video: introduction of imx335 sensor driver
Add support for the Sony IMX335 CSI sensor.
This sensor supports resolution of 2592x1944 in RGGB bayer format
either 10 or 12 bits and using 2 or 4 CSI lanes.
For the time being only 10 bits on 2 CSI lanes is supported via
this commit.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-05-22 20:56:38 +02:00
Guillaume Gautier
b2f8496389 drivers: i2c: stm32 i2cv1 controller driver using rtio
Adds the simplest possible I2Cv1 controller driver for STM32 with the RTIO
interface. Currently only interrupt driven transfers are supported.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-05-22 20:56:28 +02:00
Guillaume Gautier
e8bd35e305 drivers: i2c: stm32 i2cv2 controller driver using rtio
Adds the simplest possible I2Cv2 controller driver for STM32 with the RTIO
interface. Currently only interrupt driven transfers are supported.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
Co-authored-by: Tom Burdick <thomas.burdick@intel.com>
2025-05-22 20:56:28 +02:00
Guillaume Gautier
2397a6322f drivers: i2c: move functions to a common file
In preparation of the introduction of the STM32 I2Cv2 RTIO driver, move
some functions that are used in both drivers into a common file.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-05-22 20:56:28 +02:00
Guillaume Gautier
0c59977195 drivers: i2c: renaming, formatting and clean up
Rename all functions and macros starting by stm32_i2c_* to i2c_stm32_* to
harmonize the driver.
Reformat some indents for better alignment.
Remove i2c_stm32_get_config function declaration from header since it is
not used.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-05-22 20:56:28 +02:00
Jonathan Nilsen
51609f0380 drivers: firmware: nrf_ironside: add IRONside update service
Add an IPC service API for triggering updates of the Nordic IRONside SE
firmware using the IRONside call module.

Co-authored-by: Håkon Amundsen <haakon.amundsen@nordicsemi.no>
Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
2025-05-22 16:17:35 +02:00
Sebastian Bøe
14a47cbe05 drivers: firmware: nrf_ironside: add IRONside CPUCONF service
Add an IPC service API for booting local domain cores.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
2025-05-22 16:17:35 +02:00
Fabio Baltieri
a361c45af6 drivers: dp: use atomic APIs for pin set/reset
Use LL_GPIO_SetOutputPin and LL_GPIO_ResetOutputPin for the STM32
optimized DP functions. This yelds a speedup of the bit-banged interface
from about 585kHz to 640kHz on an STM32C0.

Suggested-by: Mathieu Choplain <mathieu.choplain@st.com>
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2025-05-22 13:44:55 +02:00
Fabio Baltieri
fd44146ad2 drivers: dp: rework the ARM delay loop
Rework the ARM delay loop to avoid it causing assembler issue in the
rest of the code.

Link: https://github.com/zephyrproject-rtos/zephyr/pull/90211#issuecomment-2894157705
Suggested-by: Mathieu Choplain <mathieu.choplain@st.com>
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2025-05-22 13:44:55 +02:00
Jordan Yates
4904c27777 regulator: npm1300: convert regulator GPIOs to array
Convert the enable, pwm, and retention `gpios` properties away from the
GPIO specifier space to an integer array.

While this is a less specific type than the GPIO property, it has the
advantage of not requiring the PMIC gpios node to be both present and
enabled.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-05-22 13:44:31 +02:00
Jordan Yates
2203a571bc net: nsos_sockets: conn_mgr support
Add support for using native sockets with the connectivity API. This
allows libraries that use the connectivity API to be tested in an
application with real connectivity, without external hardware.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-05-22 11:31:54 +02:00
Yau-ming Leung
6dff8dc639 drivers: icm42688: fix accel and gyro frequency in period calculation
When calculating accel and gyro period for 12.5Hz, the frequency value is
incorrect. Updated to correct value.

Signed-off-by: Yau-ming Leung <ymleung314@gmail.com>
2025-05-22 11:31:41 +02:00
Yau-ming Leung
39923e3e19 drivers: icm42688: pin9 function
PIN9 of an ICM42688 can be configured as an interrupt output, external
clock input or frame sync output. Pin function can now be set via a sensor
attribute.

Signed-off-by: Yau-ming Leung <ymleung314@gmail.com>
2025-05-22 11:31:41 +02:00
Benson Huang
728a018f86 drivers: gpio: Fix GPIO initial status
The current procedure to initialize the GPIO is:
If the GPIO is configured as GPIO_OUTPUT and also has the
GPIO_OUTPUT_INIT_HIGH flag, set it to output high; otherwise, set it to
output low.

This may fail if the GPIO is simply configured as GPIO_OUTPUT without
specifying either INIT_HIGH or INIT_LOW, which means it is intended to
preserve the previous status. But in this case, we are currently setting it
to output low.

Fix this by explicitly initializing the GPIO to high or low according to
the configuration:
If the GPIO is configured as GPIO_OUTPUT and also with the
GPIO_OUTPUT_INIT_HIGH flag, set it to output high.
If the GPIO is configured as GPIO_OUTPUT and also with the
GPIO_OUTPUT_INIT_LOW flag, set it to output low.
If the GPIO is configured as GPIO_OUTPUT only,
do not set the output value.

Signed-off-by: Benson Huang <benson7633769@gmail.com>
2025-05-22 04:51:57 +02:00
jhan bo chao
98478189f2 drivers: adc: rts5912: clear pending irq when setup
clear pending irq when setup.

Signed-off-by: jhan bo chao <jhan_bo_chao@realtek.com>
2025-05-22 04:51:36 +02:00
Felix Moessbauer
84ebbdcd4b fuel_gauge: add basic support for AXP2101 chip
The AXP2101 chip is a multi functional power chip offering a regulator,
charge controller and a fuel gauge (battery percentage and voltage).
Hereby, the fuel gauge provides much more reliable data compared to using
an ADC.

We implement minimal support for this chip (connected state, voltage and
gauge) and bind it to the fuel gauge subsystem.

Closes: #89158
Signed-off-by: Felix Moessbauer <felix.moessbauer@gmail.com>
2025-05-22 04:51:27 +02:00
Fabio Baltieri
ac1dec0498 led: drop led_context.h
led_context.h contains a single struct with max and min period, current
drivers that use it have hardcoded values and they set it at init.

This data is not used anywhere, and it makes very little sense to use
some SRAM for it.

Hardcode the limit for each driver and drop the struct and file.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2025-05-22 02:21:51 +02:00
Peter van der Perk
49e33d38c1 drivers: sensor: qdec_tpm: Add QDEC support for NXP TPM
Allows to run the NXP Timer/PWM Module (TPM) in Quadrature
Decoder Mode.

Signed-off-by: Peter van der Perk <peter.vanderperk@nxp.com>
2025-05-22 02:21:39 +02:00
Lin Yu-Cheng
1e38f94473 drivers: timer : fix rtmr timer.
RTMR clear the interrupt status bit in the init and isr function.

Signed-off-by: Lin Yu-Cheng <lin_yu_cheng@realtek.com>
2025-05-22 02:21:12 +02:00
Stoyan Bogdanov
bdca32d88f drivers: flash: Remove VIMS calls for cc23x0
Remove VIMS calls for flash operations, since they are not needed.

Signed-off-by: Stoyan Bogdanov <sbogdanov@baylibre.com>
2025-05-21 19:57:28 +02:00
Tobias Meyer
713fc17a26 drivers: stts22h: Add attr_lower/high_tresh
Add threshold attribute handling to set low and high
temperature at runtime and validation for runtime changes

Signed-off-by: Tobias Meyer <tobiuhg@gmail.com>
2025-05-21 19:56:38 +02:00
Josuah Demangeon
638cb67191 drivers: video: sw_generator: sort header alphabetically
Sort alphabetically the header added in the previous few commits
as well as the original implementation.

Signed-off-by: Josuah Demangeon <me@josuah.net>
2025-05-21 19:56:30 +02:00
Josuah Demangeon
4f344584ce drivers: video: sw_generator: fix div by zero on very low framerate
When the FPS value stored in data->frame_rate is zero, a division by zero
occurs. Fix it by clamping the frame rate between min and max values.

Signed-off-by: Josuah Demangeon <me@josuah.net>
2025-05-21 19:56:30 +02:00
Josuah Demangeon
5687dc80c7 drivers: video: sw_generator: make k_work_sync a local variable
The documentation of k_work_cancel_delayable_sync() states that the input
k_work_sync parameter needs to be valid until the function call returns,
so there is no need to preserve the state across successive calls.
Now that there is a single work-related field in the struct, rename it
to simply "work".

Signed-off-by: Josuah Demangeon <me@josuah.net>
2025-05-21 19:56:30 +02:00
Josuah Demangeon
04912d461b drivers: video: sw_generator: introduce the RGB24 test pattern
This complements the 32-bit RGB (XRGB32) test pattern with an equivalent
24-bit RGB (RGB24) implementation.

Signed-off-by: Josuah Demangeon <me@josuah.net>
2025-05-21 19:56:30 +02:00