GIC ITS depends on kernel heap, so move GIC initialize to be behind of
heap which initialization priority is CONFIG_KERNEL_INIT_PRIORITY_OBJECTS
(it is 30 by default).
MU mailbox and SCMI objects depend on GIC, so set their init priority
to be same with GIC, the initialization sequence decided by the dts
dependency although they use the same init priority.
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
GIC redistribute and ITS on i.MX 95 is DMA noncoherent, so enable
CONFIG_GIC_V3_RDIST_DMA_NONCOHERENT and CONFIG_GIC_V3_GIC_DMA_NONCOHERENT.
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
GIC v3 ITS is initialized in pre-kernel stage in which sleep function
can't work yet, so use busy delay in pre-kernel stage and use sleep
delay in post-kernel stage.
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
For RDbase used by its command, When GITS_TYPER.PTA = 1, physicall address
is used, the RDbase field consist of bits[51:16] of the address, so need
to left shift the address by 16 bits. But when GITS_TYPER.PTA = 0, PE
number is used, no need to shit anymore.
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
GIC redistributor on Some platform are connected to a non-coherent
downstream interconnect, it need to use Non-cahable and Non-shareable
access atttributes to access external memory. And also flush the
data cache after CPU update related memory.
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
In case of fatal network error (i.e. when the LwM2M client runs out of
retries), call lwm2m_engine_stop() to cleanup any allocated resources
for the client. The engine is dead at that point anyway so the
application needs to recover.
If this isn't done, it is theoretically possible to restart the LwM2M
client (with lwm2m_rd_client_start() which does not report an error in
such case), which in turn could lead to resource leaks (like for
example the observer list is reinitialized) if the application
didn't call lwm2m_rd_client_stop() first. Calling lwm2m_engine_stop()
ensures that all resources are freed even if the application doesn't
call stop before restarting.
Stopping the engine is also needed when the network error occurs when
de-registering - in such case the engine goes straight into the IDLE
state, where it's possible to restart the client and thus reinitialize
the observer lists.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Move control endpoint enable/disable calls to udc_enable()/udc_disable().
It does not change much during USB device support initialization, but
it seems to resolve an issue when starting from RAM, though the real
cause is unknown.
Signed-off-by: Dmitrii Sharshakov <d3dx12.xx@gmail.com>
Add I3C node to MAX32657EVKIT board devicetree and add I3C to the list
of supported drivers.
Signed-off-by: Tahsin Mutlugun <Tahsin.Mutlugun@analog.com>
test_smp_boot_delay sometimes fails due to thread started by IPI
not having started or not finished running:
* Using CPU mask to explicitly state which CPU to start the thread
seems to fix the issue where the thread is not started quickly
enough.
* When the host system is under heavy load (e.g. twister-ing),
emulators may not get enough CPU time to run the newly created
thread. So extend the IPI delay a bit more to allow for this.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
The default supported format in these LCD is RGB565, not BGR565. It is
set to BGR565 because a wrong assumption about "byte swap" in Zephyr.
Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
The RGB565 and BGR565 formats are interchanged in the sample. This leads
to wrong assumptions about "byte swap" in Zephyr and make display
drivers, shields and video sample follow it for a long time. Fix it.
Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
Formats should be coherently set between camera and display. Forcing
RGB565 to BGR565 will break some platforms.
Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
Add missing error checks for mutex locks after the mutexes
were changed to not use K_FOREVER which should not be done in
the BT RX thread.
A larger overhaul of how mutexes are using within the scan delegator
should be considered, as there are a lot of locks and unlocks when
handling the callbacks.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Update the driver to support DMA operations on L4 series devices, with
a shared DMA channel. Split channels do not work on these chips, since
there is no dedicated TX and RX channels on the DMA, so configuring two
channels with SDMMC as the peripheral results in a non-functional
configuration.
Fixes#91216.
Signed-off-by: Jordan Yates <jordan@embeint.com>
Add a helper function that constructs a rtio SQE chain with the purpose
to perform a bus read operation on a list of registers.
Usage:
struct rtio_regs regs;
struct rtio_reg_list regs_list[] = {{regs_addr1, mem_addr_1, mem_len_1},
{regs_addr2, mem_addr_2, mem_len_2},
...
};
regs.rtio_regs_list = regs_list;
regs.rtio_regs_num = ARRAY_SIZE(regs_list);
rtio_read_regs_async(rtio,
iodev,
RTIO_BUS_SPI,
®s,
sqe,
dev,
op_cb);
Signed-off-by: Armando Visconti <armando.visconti@st.com>
PCA9533 is added to the overlay so the new driver
is compiled by the automated “build all LED drivers” test
Signed-off-by: Van Petrosyan <van.petrosyan@sensirion.com>
• Supports led_on/off, led_set_brightness (0–100 %, 152 Hz default),
and led_blink (7 ms – 1.685 s) with automatic sharing of the two
on-chip PWM engines; returns –EBUSY when a third distinct pair is
requested.
• Includes basic runtime-PM boilerplate to honour power-domain control;
the device itself has no dedicated low-power states.
Signed-off-by: Van Petrosyan <van.petrosyan@sensirion.com>
Error codes fall into two main categories:
case 1: NOT_SUPPORT_XXX. This means that the configuration of the
parameter is not supported locally.
case 2: INVALID_XXX. This means that the parameter is not configured or
duplicated in the set_config_req command.
Currently the protocol only supports SBC, so it is only checked for SBC
parameters.
Signed-off-by: Cheng Chang <cheng.chang@nxp.com>
1. Update nxp irtc driver to fix issue in init and alarm function.
2. Update RTC device tree binding to support "share-counter".
3. Update RT700 dtsi to support rtc0 for cpu0 and rtc1 for cpu1.
4. Update readme.
5. Update unit test project conf for RT700.
Signed-off-by: Holt Sun <holt.sun@nxp.com>
The helper function should have the flexibility to have different
expected CS counts. Namely, the test cases where the transfer is
essentially empty should not need to assert CS and many platforms are
failing on CS testing currently due to expecting CS assert and deassert
despite it being a 0 clock/bit transfer being specified.
Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
Use an atomic_t instead of semaphore for counting the CS, semaphore is
too heavy and wrong choice for this variable.
Also, print what the actual value gotten was in case of error.
Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
- Add sink PACS register for PBP public broadcast sink example to make
it work with PBP broadcast source
Signed-off-by: Vinit Mehta <vinit.mehta@nxp.com>
The driver gets FMC bank address using
`FMC_BANK1_<parent_register_value>` define.
This approach has some flaws:
- The parent (bank) register's value might not correspond
sequentially to the expected bank number.
For example: `STM32_FMC_NOSRAM_BANK3` maps to `FMC_BANK1_4`,
instead of `FMC_BANK1_3`.
- Some families don't even define the necessary `FMC_BANK1_x` macros.
To address this, the commit adds an optional `bank-address` property,
providing a direct way to define the FMC bank address for the driver.
Signed-off-by: Georgij Černyšiov <geo.cgv@gmail.com>
Made some order in the Kconfig's for silabs series 2 socs.
Made a distinction between silabs "generic family" (e.g. xg21) and silabs
"device family" (e.g. efr32mg21).
Signed-off-by: Yishai Jaffe <yishai1999@gmail.com>
In 4c93fcd35b, the default use case has been changed to support setting
a custom handler, but it's written in a way to only support MCUX and
SYSTICK based platforms. For any other platform the build break because
of undefined TIMER_IRQ_HANDLER and TIMER_IRQ_NUM.
Fix the conditional so that the custom timer line is only entered if a
custom handler is defined. The test would probably stil not run on those
platforms until a custom case is defined pointing at the custom timer
interrput handler, but at least it won't break CI.
Also drop a closing endif comment as that clearly became misleading.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Otherwise, a previous firmware build could have run into the chip and
keep led control enabled in spite of disabling it through
dts-property.
Signed-off-by: Luis Ubieda <luisf@croxel.com>
Corrected a typo in the project name within the Bluetooth
samples directory. The incorrect name was causing confusion
in documentation and build processes. This change updates
the relevant file(s) to use the correct project name, ensuring
consistency across the Zephyr repository.
Signed-off-by: Gomaa Mohammed Eldebaby <gomaaeldebaby2211@gmail.com>
LTDC interrupt routine is used to reload frame buffer pointer
once full frame is finished flushing. As long as there is no
need to change buffer - there is no need to disturb CPU.
Thus: Enable LTDC interrupt only when new buffer is pending
Signed-off-by: Pavlo Hamov <pasha.gamov@gmail.com>