Add empty branch MCUX_SIRC_CLK in clock on to avoid incorrect return
value for drivers which use this clock.
Signed-off-by: Yves Wang <zhengjia.wang@nxp.com>
On mcxw70, the flash cache is managed by the underlying driver from
hal_nxp. The method used in the soc_flash_mcux driver is not suitable
for this platform, and should be disabled.
Signed-off-by: Axel Le Bourhis <axel.lebourhis@nxp.com>
Zephyr has currently no flash translation layer implemented. This commit
adds the basic possibility to use Dhara as FTL in Zephyr. It is
implemented as disk driver that can be placed between a filesystem and a
flash driver.
Signed-off-by: Pascal Linder <pascal.linder@zuehlke.com>
Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
NAND flash translation layers require the flash extended operations API
for bad block management. Add it here without implementation to test an
FTL on the flash simulator.
Signed-off-by: Pascal Linder <pascal.linder@zuehlke.com>
Add extended operations to the flash API to support marking blocks
as bad and checking if a block is bad. This is necessary for
NAND flash devices, which can have bad blocks that need to be managed.
Signed-off-by: Pascal Linder <pascal.linder@zuehlke.com>
Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
Add counter timer driver support for Realtek Bee series SoCs,
including RTL87x2G and RTL8752H.
This driver is based on the hardware timer and supports:
- Relative alarm configuration
- Top value configuration
Signed-off-by: Yuzhuo Liu <yuzhuo_liu@realsil.com.cn>
Add the microchip,rgmii-delay binding for KSZ9131 PHYs and use it
on the SAMA7G54-EK board DTS.
GMAC0 on SAMA7G54-EK is connected to a KSZ9131 PHY over RGMII and
requires internal delay configuration equivalent to rgmii-id for
reliable gigabit operation.
Add KSZ9131 RGMII DLL delay configuration using Clause-22 indirect
MMD access.
The KSZ9131 PHY uses MMD device 2, registers 76 and 77, to control
RXC and TXC DLL delay bypass. Configure these registers according
to the requested RGMII delay mode:
- none
- id
- rxid
- txid
Delay setting would be skipped for variants that do not support RGMII
like KSZ9131MNX
Signed-off-by: Balaji Vasudevan <balaji.vasudevan@microchip.com>
Add support for the CONFIG_WDT_DISABLE_AT_BOOT Kconfig option.
If the watchdog timer is enabled by default on the target board,
enabling this option will explicitly disable the watchdog during
the driver initialization phase.
Signed-off-by: Kevin Wang <kevinwang821020@google.com>
Rx packet notified from low layer with an
error status are skipped and the rx failure
is notified to upper layer through
the IEEE802154_EVENT_RX_FAILED event
Signed-off-by: Vincent Tardy <vincent.tardy@st.com>
Refactor the PWM capture interrupt handler to properly support all
three capture channels (A, B, and X).
Clear capture FIFOs by reading CVAL registers during enable_capture
Signed-off-by: Felix Wang <fei.wang_3@nxp.com>
Add feature check to ensure these functions are only called when the
hardware supports input filter capture registers.
Update device tree binding documentation to clarify that the
input-filter-count and input-filter-period properties only take
effect when the capture input filter register is available.
Signed-off-by: Felix Wang <fei.wang_3@nxp.com>
- Deletes virtual "nxp,cmc-reset-cause" compatible,
as it is covered by existing "nxp,cmc".
- Fixes the issue discovered during discussion in
https://github.com/zephyrproject-rtos/zephyr/issues/104464
#issuecomment-3957779329
Signed-off-by: Andrej Butok <andrey.butok@nxp.com>
Some modem's reply "NO CARRIER" on the ATD command, until we are
connected to the network. This causes first dial-up attempt to fail.
When waiting for retry-timer, we might receive "+CEREG:" or "+CGEV:"
events, indicating that we are connected.
We should re-trigger the dial-up script immediately, instead of waiting
for timer.
When the dial up script succeed, we don't anymore receive "+CEREG" so
that should be handled in await_registered state.
Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
The DBI configuration was incorrectly using bitwise OR to set the
color_coding field instead of direct assignment. The 'mode' field
was being used when 'color_coding' should have been set.
Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
In the function mc_cgm_clock_control_on, in first switch-case
was added a default-case which returns -ENOTSUP.
The fist switch-case is followed by two switch-cases (for adc, lpcmp),
and one if-condition (for tempsens).
If none of the cases in the first switch is fulfilled,
(e.g. trying to enable clock for adc) function early returns -ENOTSUP,
and the rest of the code becomes UNREACHABLE.
This bugfix groups all the switches and the if-condition (for tempsens),
in one main switch and keeps the return ENOTSUP as the default case,
considering that this return was added for a reason.
Signed-off-by: Martin Martincek <martin.martincek@nxp.com>
Apply PINCTRL_STATE_SLEEP on suspend and PINCTRL_STATE_DEFAULT
on resume. If a sleep pinctrl state is defined in the board DTS,
pins will be reconfigured on suspend. If not defined, the call
is a no-op.
Signed-off-by: Jacob Wienecke <jacob.wienecke@nxp.com>
Apply PINCTRL_STATE_SLEEP on suspend and PINCTRL_STATE_DEFAULT
on resume. If a sleep pinctrl state is defined in the board DTS,
pins will be reconfigured on suspend. If not defined, the call
is a no-op.
Signed-off-by: Jacob Wienecke <jacob.wienecke@nxp.com>
Apply PINCTRL_STATE_SLEEP on suspend and PINCTRL_STATE_DEFAULT on resume
so that pins are in low-power configuration if defined in the dts
Signed-off-by: Jacob Wienecke <jacob.wienecke@nxp.com>
Apply PINCTRL_STATE_SLEEP on suspend and PINCTRL_STATE_DEFAULT on resume
to ensure pins take on the DTS defined sleep state if one is defined.
TURN_ON already applies PINCTRL_STATE_DEFAULT (could be removed
potentially). RESUME handles the case where the device suspends without
full power-off.
Signed-off-by: Jacob Wienecke <jacob.wienecke@nxp.com>
Apply PINCTRL_STATE_SLEEP on suspend and PINCTRL_STATE_DEFAULT on resume
so that pin configuration is updated for low power modes.
Previously the suspend and resume actions were empty, leaving pins in
their active configuration during sleep. On SoCs like RW6xx where pad
control registers survive low power modes, this allos boards to define
sleep pinctrl states with appropriate pull or drive setting s to minimize
leakage.
Signed-off-by: Jacob Wienecke <jacob.wienecke@nxp.com>
Fix broken FS26 watchdog field extraction and refresh checks.
Correct the device status macro, simple watchdog write error
handling, related register field helper macros, and use integer
duty-cycle values when selecting the watchdog window.
Signed-off-by: Yves Wang <zhengjia.wang@nxp.com>
implement configure_ramp api
drop set_max_velocity and set_max_acceleration from
stepper_tmcm3216.h
Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
Function for calculating acceleration in the timebase of
the motion controller using clock_frequency and input
acceleration in Hz/s
Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
Make usage of the macro VIDEO_FMT_IS_YUV/RGB/BAYER in order to
check the colorspace of a format.
Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Add categories of pixel formats along with macros to detect
whether a pixel format is part of that category.
This can be used to detect multiple properties in a
maintainable way.
Signed-off-by: Josuah Demangeon <me@josuah.net>
When writing a full-screen with a single buffer, stm32_ltdc_write() calls
stm32_ltdc_sync_frame() which resets the semaphore, sets the given buffer
to pend_buf, enables LTDC line interrupt and waits for the semaphore to be
given. However, the semaphore is never given by stm32_ltdc_global_isr()
because it skips given it when front_buf != pend_buf which is the case
because they are the same because there is just a single buffer and
front_buf == pend_buf.
The solution is not to call stm32_ltdc_sync_frame() when the same buffer is
used.
Signed-off-by: Ilia Kharin <akscram@gmail.com>
When stm32_ltdc_sync_frame() is called, it resets a semaphore, enables LTDC
line interrupt and waits until the semaphore is given. When the interrupt
occurs, stm32_ltdc_global_isr() is invoked and it gives the semaphore only
when front_buf != pend_buf. That is, if stm32_ltdc_sync_frame() is called
with pend_buf equal to front_buf, it would wait forever for the semaphore
to be given. Hence, a deadlock occurs. In order to catch such situation,
an assert is added in stm32_ltdc_sync_frame() when it's called with
pend_buf which is equal to front_buf.
Signed-off-by: Ilia Kharin <akscram@gmail.com>
1.The color_coding in mipi_dbi_config shall not be extracting it from
the bus_type field and shall have dedicated color_coding field.
2.Update device tree binding to include pinctrl support and
declare mipi-dbi bus compatibility.
Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
Removed the driver knowing anything about what color each channel is.
When you output to an LED with a buffer it simply writes the
channels out with buffer.
Also removed the assumptions that the leds are either
a) RGB or b) 3 channels and instead use them the way they are defined.
That is for example if we have 4 channels, we could define an LED
with just one color in it and we could define another with three.
The user can define 4 leds each with color yellow.
For each LED it counts how many buffers were used by previous LEDs and
starts there and outputs N channels.
Decided it looked cleaner to use helper function write channels, so
implemented it and added it to the call table.
Updated sample:
It manually computes which channel maps to red, green and blue and then
uses those indexes to map the table of colors to the right channels.
Signed-off-by: Kurt Eckhardt <kurte@rockisland.com>
more refactoring, don't use the 94 registers everywhere.
Introduce structure, with registers and fixed values, and use it.
Signed-off-by: Kurt Eckhardt <kurte@rockisland.com>
In preparation to allow this driver to support more than
one IS31FL319x object such as ...97, rename the
source file and the functions to make them more
generic.
I also changed the enumeration/creation of object
to generate the right names for the current 94 objects
Renamed the Kconfig file. Updated CMakeLists.txt to
check for different condition to build source file
The samples driver is31fl3194 was also renamed to
is31fl319x. All of the references to use 9x instead
of 94. The updated sample required an update to the
doc script redirect.py to reflect the new name.
Signed-off-by: Kurt Eckhardt <kurte@rockisland.com>
Allow STM32 RTC driver to call LL_RCC_EnableRTC() for STM32WB0x series
now that the function is defined in WB0x HAL v1.3.0
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
Add input drive TSI (Touch Sensing Input) peripheral.
The driver uses a delayed work queue to periodically scan enabled
channels and reports touch/release events through the input API.
Signed-off-by: Qiang Zhang <qiang.zhang_6@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>
Add display driver for NXP i.MX LCDIFV2 controller.
The driver supports:
- RGB565, RGB888, and ARGB8888 pixel formats
- Configurable framebuffer allocation (0-2 buffers)
- Partial display updates when driver framebuffers are enabled
- Display blanking control
- Backlight GPIO control
- Pinctrl integration
- Cache coherency support via MCUX cache API
Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
The i2c_rts5912_recover_bus kicks in after an i2c transfer error to
recover the bus and uses the i2c pins in gpio mode. This MCU allows
using pins in a 3.3V domain at 1.8V by setting compatible input
thresholds, the problem though is that then if the pin is set to
push-pull output it's going to drive back up to 3.3V.
Avoid that by setting the pin as open drain before setting it as output.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Replaces usage of these deprecated macros with ones that support
fixed and mapped partition compatibles. Also includes an update to
hal_espressif which also (rightly or wrongly) has zephyr specific
code in it
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>