Commit graph

126,787 commits

Author SHA1 Message Date
Jilay Pandya
da241fe722 drivers: serial: uart_async_to_irq.c check if baudrate is not zero
assert if baudrate is not zero in order to avoid division by zero error

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2025-01-07 00:26:56 +01:00
James Roy
d6b01bc8a0 style: Add parens to the disp expr
Add parentheses to the displacement expression
to prevent priority issues after macro expansion.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2025-01-07 00:26:47 +01:00
TOKITA Hiroshi
afd16b9e07 drivers: serial: pl011: Enable PINCTRL conjuction with dt prop 'pinctrl-0'
If there is a pinctrl-0 property, PINCTRL will be enabled in
conjunction with it.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2025-01-07 00:26:37 +01:00
TOKITA Hiroshi
bcb4aae0c5 dts: bindings: serial: pl011: Make included reset-device.yaml
The PL011 driver has already implemented supporting reset device
behavior.
However, the support is incomplete because the `arm,pl011.yaml`,
does not contain a `reset-device.yaml`.

Add include directive to `arm,pl011.yaml` to including
`reset-device.yaml` to complete the support for reset device.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2025-01-07 00:26:20 +01:00
Jordan Yates
052aaf6abe doc: _scripts: gen_devicetree_rest: add individual files
Add a CLI argument for specifying individual files to be added to the
parsing. This is useful for downstream users that wish to import files
such as `bindings/spi/spi-device.yaml`, without also pulling in all the
associated SPI controllers.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-01-07 00:26:08 +01:00
Krzysztof Chruściński
226be20689 drivers: clock_control: nrf: Add helper macro for getting clock frequency
Add NRF_PERIPH_GET_FREQUENCY() that returns the frequency of clock
that is used for the node.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-01-07 00:25:49 +01:00
Jordan Yates
13df3b9f62 spi: context: update state when already locked
Update the context state parameters when the context is already locked.
This allows changing the callback information for asynchronous
operations while the context is locked.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-01-07 00:25:33 +01:00
Jordan Yates
ebc2ca59e3 spi: spi_context: extract lock condition
Extract the lock condition to a dedicated variable to make future
changes clearer.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-01-07 00:25:33 +01:00
Krzysztof Chruściński
9af987d5d4 tests: drivers: uart: mix_fifo_poll: Add UARTE120 to nrf54h20dk test
Add configuration for UARTE120 fast instance. Use multi-instance capability
of the test to run same test on UARTE120 and slow UARTE peripheral.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-01-07 00:25:15 +01:00
Krzysztof Chruściński
146fa18b06 tests: drivers: uart: mix_fifo_poll: Tweak testcase.yaml
Do not use CONFIG_UART_NRFX_UARTE_LEGACY_SHIM=n because this option
is going to be deprecated and this option does not support all uart
instances (e.g. uart120). Limit testing of configuration with
CONFIG_UART_0_ENHANCED_POLL_OUT=y to legacy platforms. nrf54x
platforms have ENDTX-STOPTX short so this feature is not supported
and needed there.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-01-07 00:25:15 +01:00
Krzysztof Chruściński
b5807a98e1 tests: drivers: uart: mix_fifo_poll: Rework to support multi-instance
Rework test to allow testing multiple UART instances in a single
run.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-01-07 00:25:15 +01:00
Krzysztof Chruściński
90b4ddd87a tests: drivers: uart: mix_fifo_poll: Change fixture to uart_loopback
gpio_loopback fixture is used for single pair of shortened pins. For
this test 2 pairs are needed (cts-rts + tx-rx) so gpio_loopback does
not describe it correctly.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-01-07 00:25:15 +01:00
Dawid Niedzwiecki
8aa4aa7edf drivers: flash: stm32h7: do not unlock CR at the end of init
Do not unlock CR at the end of initialization.

The lock mechanism is to protect unwanted registers modifications due to
software bugs. There is no point in leaving the registers unlock once
the driver is initialized.

Signed-off-by: Dawid Niedzwiecki <dawidn@google.com>
2025-01-06 22:36:28 +01:00
Paul Wedeck
7405a25b58 drivers: uart_wch: add interrupt-driven device bindings
Currently, the uart_wch driver only supports the polling API.
This patch introduces bindings for the interrupt-driven API.

Signed-off-by: Paul Wedeck <paulwedeck@gmail.com>
2025-01-06 22:36:20 +01:00
Dong Wang
dd5f11cb04 kernel: timeout: ensure next timeout is set when aborting the first timeout
This ensures that the system clock is correctly updated when the first
timeout is aborted, preventing unexpected early wake-up by the system clock
programmed previously.

Signed-off-by: Dong Wang <dong.d.wang@intel.com>
2025-01-06 22:36:07 +01:00
Yishai Jaffe
6ba0563fe2 shell: uart: added shell command
Added shell command for UART. Currently only able to set baudrate and
flow control.

Signed-off-by: Yishai Jaffe <yishai1999@gmail.com>
2025-01-06 20:34:52 +01:00
Fabrice DJIATSA
c7da46a243 tests: drivers: uart: uart_async_api: fix error on test_write_abort
With the changes made in PR #76061, only on the F429ZI platform, in
the test_write_abort test,the number of received data (2) is not equal
to the number of sent data (1). It looks like uart_tx_abort is done very
quickly, and the callback doesn't have enough time to deal with it.
Adding a small delay solves the problem and doesn't affect results on
other platforms.

Signed-off-by: Fabrice DJIATSA <fabrice.djiatsa-ext@st.com>
2025-01-06 20:34:17 +01:00
Fabrice DJIATSA
921e281ef0 tests: drivers: uart: uart_async_api: disable userspace permissions
Test cases on F746ZG work with USERSPACE config not enabled.
PR #80944 forces the use of the TEST_ENABLE_USERSPACE config with
the "select" statement instead of "imply," which is more restrictive
for test case dependencies.This leads to the error
"Memory region 0x2004d180 (size 8) write access denied" on boards.
By setting CONFIG_TEST_USERSPACE=n, the TEST_ENABLE_USERSPACE config will
not be enabled.

Signed-off-by: Fabrice DJIATSA <fabrice.djiatsa-ext@st.com>
2025-01-06 20:34:17 +01:00
Ryan McClelland
57b3eb6213 drivers: i3c: cdns: fix rr slot lookup when dyn is 0
When attaching a device, it should look up if the dynamic addr is
already attached only, and not by the static addr.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-01-06 20:33:57 +01:00
Khoa Nguyen
bf1e996e42 tests: drivers: uart: Support test uart_async_api for Renesas RA8
Add overlay to support test uart_async_api for Renesas ek_ra8d1, mck_ra8t1

Signed-off-by: Khoa Nguyen <khoa.nguyen.xh@renesas.com>
2025-01-06 20:33:46 +01:00
Ryan McClelland
4991eef14d drivers: i3c: ccc: use SIZEOF_FIELD
Use the SIZEOF_FIELD macro to make things look prettier.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-01-06 20:33:37 +01:00
Ryan McClelland
6e271cfbb7 drivers: i3c: cdns: use SIZEOF_FIELD
Use the SIZEOF_FIELD macro to make things look prettier.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-01-06 20:33:37 +01:00
Ryan McClelland
a7ca9d8e66 drivers: i3c: cdns: report sdr error code
Report the i3c error code in the payload.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-01-06 20:33:37 +01:00
Ryan McClelland
acc39e4622 drivers: i3c: add i3c error type in payload
Add the SDR Error Code to be written in to the payload following
section 5.1.10.2 of the I3C v1.1.1 specification.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-01-06 20:33:37 +01:00
Ryan McClelland
08624b251f drivers: i3c: shell: add shell cmd for ibi hj response
Add a shell command the i3c ibi hj response api.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-01-06 20:33:26 +01:00
Ryan McClelland
71ad773f12 drivers: i3c: cdns: implement api for hj response
Implement the api for ibi hj response

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-01-06 20:33:26 +01:00
Ryan McClelland
7554da7e8b drivers: i3c: add ibi hj reponse api
Add an api to ack or nack ibi hj requests.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-01-06 20:33:26 +01:00
Ryan McClelland
b5f447ced2 drivers: i3c: split up i3c_device_basic_info_get
For ENTDAA, BCR and DCR is always transmitted back up to the controller.
When `i3c_bus_init` is done, it does the ENTDAA then it would get the
basic info would get the BCR and DCR again. This was rather reduntant.
This now splits it up so there is a function called
`i3c_device_adv_info_get` which gets the mrl, mwl, getcaps, and the
mxds. `i3c_device_basic_info_get` now only just gets the bcr and dcr.
There is also an inline function called `i3c_device_info_get` which
will get everything.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-01-06 20:33:16 +01:00
Andy Ross
eb7ab85fd8 boards/mediatek: Fix DTS mistakes
The two interrupt controller registers on 818x got spoonerized, oops.
Hilariously it actually worked (mostly) becuase the interrupt would
still be delivered, the controller isn't involved in the ACK/clear
process on thsi device, the and the set of pending interrupts was
masked against enabled ones.  Found it by accident when I moved things
around and caught a "spurious" interrupt.

Also the 8195 DRAM region was all packed in a single block that doesn't
honor the two regions defined in the host devicetree.  That's benign
from Zephyr (the memory in the hole actually is usable) but dangerous
for SOF as the second region is used by the host driver to allocate
DMA buffers and we can't touch it except as directed.  Honor the
scheme used by the other devices.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
619c1ff577 soc/mediatek: Don't scan SRAM for winstream in mtk_adsp_load.py
For the same reason that this script can't zero the SRAM region (it
spontaneously reboots my 8186 device) we can't scan the SRAM for the
winstream header.  It's never there anyway, it lives in .rodata.

This is likely a hardware bug, but as it's an older platform and this
is test code it's probably best to just keep it as a workaround.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
2860ab9179 soc/mediatek/adsp: Enable winstream console
Enable a winstream console via the new "STATIC" platform API, and add
code to the loader script to read it (largely cribbed with
modifications from the same feature in cavstool.py, we have nowhere to
share code like this, alas).

The older logging feature is still present as an "oldlog" mode to the
script.  We can leave it for a bit as a failsafe (e.g. for debugging
issues with winstream) and remove it later.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
14418a7f39 drivers/console: Add static buffer feature to winstream_console
The winstream code itself is reasonably generic, but the console
integration was written to the intel_adsp memory window driver only,
as that was the only consumer.

Add an alternative that allows the winstream to be pointed to by a
linker symbol instead.  The platform layer is responsible for putting
it where it needs to go.

Also includes a 20-byte "descriptor" recodr (with a very large magic
number) in the binary that points to the winstream, for the benefit of
external tooling that needs to find it at runtime.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
84b3343dfa soc/mediatek/adsp: Set CONFIG_DCACHE_LINE_SIZE correctly
These devices have non-standard cache lines (128 bytes), and were
inheriting an incorrect setting for this kconfig.

Also clean up some related feature kconfigs which were being ignored
and not set =y.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
2cbce9e8d1 soc/mediatek/mtk_adsp: Support __nocache
This is a pre-existing (but rarely used) Zephyr linker tag.  Support
it instead of reinventing something similar.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
8b39d4a613 arch/xtensa: Add build-time validation of cache line kconfig
Xtensa cache line sizes aren't an obtuse area of pedantry like they
are in x86.  Different cores already in Zephyr are already using
variant cache line sizes (64 and 128 bytes are both common).

And I tripped over this by using the wrong value because the kconfig
was being inherited (incorrectly) from a default somewhere.

Xtensa exposes the correct value in core-isa.h (well, unless the
toolchain/hal gets messed up).  Add a check to make sure that our
platform kconfig gets it right.

Note that qemu/dc233c was already getting this wrong, leaving the
value at the kconfig default of zero.  That was benign (qemu doesn't
provide any cache emulation for incoherent DMA), but needs to be
fixed.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
dadd1a340f soc/mediatek: Add second "DMA" memory region
The Linux SOF driver owns this space, but puts buffers here which the
DSP is expected to read and write.  Give it a space in the default MPU
mapping.

Note that this assumes that the DMA region is numerically above the
linkable DRAM region in the address space.  That's true for existing
devices, but likely to be broken in the future.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
481e2f2c97 soc/mediatek: Fix typo in mt8196 DMA region
Off-by-one-megabyte bug.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
905938fdf9 soc/mediatek: Add "mem" dump feature to mtk_adsp_load.py
Add a quick feature to pretty-print the Linux devicetree memory
regions defined for the DSP.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
b2c9fd94bc soc/mediatek/adsp: Union mbox ISRs
The SOF source code is confusing.  On some hardware these devices have
distinct IRQs assigned, and on others they seem to share an ISR for
all.  Leave the existing assignments in place for SOF-compatibility,
but union all the devices into a single ISR path that will poll each
(there are only two).  This will work in all configurations, and we
can figure out the proper architecture at leisure.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
cba7faedf9 boards/mediatek/mt8196: Fix mailbox addressses
Slipped an offset when transcribing these.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
624515f8d0 soc/mediatek: Add SOF extended manifest to link
SOF needs this information for rimage to work, it contains data needed
by the kernel loader and not firmware per se.  Note that contra other
SOF platforms, this leaves the data in the live firmware image so it
can be inspected at runtime.  That's not needed by core SOF code, but
is handy for debugging.  And these devices have a ton of DRAM space
available.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Derek Snell
88b9cb6efc drivers: flash: soc_flash_mcux: remove CMD_MARGIN_CHECK
The CMD_BLANK_CHECK can return errors when the flash is readable, and
should only be used after programming, not in is_area_readable().  From
the LPC55S69 datasheet: "As cells age and lose charge, a correctly
programmed address will fail this check, while still being able to be
read successfully for the remaining duration of the data retention time."

Signed-off-by: Derek Snell <derek.snell@nxp.com>
2025-01-06 17:13:49 +00:00
Haiyue Wang
f9bff7f32f modules: lvgl: Rename the VDB custom section Kconfig name
There are 4 Kconfig names about the "Draw Buffer". Rename 'VBD' to 'VDB'
in Kconfig option 'LV_Z_*VBD*_CUSTOM_SECTION' to make name consistent.

config LV_Z_VDB_ALIGN
	int "Rending buffer alignment"

config LV_Z_VBD_CUSTOM_SECTION
	bool "Link rendering buffers to custom section"

config LV_Z_DOUBLE_VDB
	bool "Use two rendering buffers"

config LV_Z_VDB_SIZE
	int "Rendering buffer size"
	default 100 if LV_Z_FULL_REFRESH

And the draw buffer definition is now:

	static uint8_t buf0[BUFFER_SIZE]
	#ifdef CONFIG_LV_Z_VDB_CUSTOM_SECTION
		Z_GENERIC_SECTION(.lvgl_buf)
	#endif
			__aligned(CONFIG_LV_Z_VDB_ALIGN);

Signed-off-by: Haiyue Wang <haiyuewa@163.com>
2025-01-06 17:13:29 +00:00
Arif Balik
afa54a23f3 boards: st: fix partition size for nucleo_l452re
Fixed wrong partitions size for nucleo_l452re
which should be 16KB

Signed-off-by: Arif Balik <arifbalik@outlook.com>
2025-01-06 17:13:17 +00:00
Dmitrii Golovanov
d2c19a0535 arch: nios2: timing: Fix timing cycles rollover
Fix arch_timing_cycles_get() to prevent overflow on the clock rollover.

The issue is observable on tests/benchmarks/wait_queues and
tests/benchmarks/sched_queues with BENCHMARK_NUM_ITERATIONS is large
enough, e.g. default 1000.

Signed-off-by: Dmitrii Golovanov <dmitrii.golovanov@intel.com>
2025-01-06 17:13:10 +00:00
Grzegorz Runc
9fcb17400b soc: stm32: add support for stm32h757
Add support for STM32H757 SoC, which shares its design
with STM32H747 with added cryptography peripherals.

Signed-off-by: Grzegorz Runc <g.runc@grinn-global.com>
2025-01-06 17:12:55 +00:00
Luc BEAUFILS
6f240ef18c doc: stm32l562e_dk: add a screen and touch panel section
The screen and touch panel are working with zephyr. Add it in the board
documentation.

Signed-off-by: Luc BEAUFILS <luc.beaufils@savoirfairelinux.com>
2025-01-06 16:10:42 +01:00
Luc BEAUFILS
fe41896475 boards: stm32l562e_dk: add support for touchscreen
The stm32l562e_dk board uses a ft6x06 i2c controller for the touchscreen.
The zephyr driver ft5336 can control it.

Signed-off-by: Luc BEAUFILS <luc.beaufils@savoirfairelinux.com>
2025-01-06 16:10:42 +01:00
Francois Ramu
04880448c7 tests: drivers: watchdog api testing on the stm32h7rs boards
Add the overlay file to run tests/drivers/watchdog/wdt_basic_api
on the nucleo_h7s3l8 and stm32h7s78_dk target boards

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-01-06 16:10:27 +01:00
Francois Ramu
556bf375a9 tests: drivers: adc api testing on the stm32h7s3l8 nucleo
Add the overlay file to run the tests/drivers/adc/adc_api
on the nucleo_h7s3l8

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-01-06 16:10:27 +01:00