Commit graph

11,885 commits

Author SHA1 Message Date
Zhaoxiang Jin
59add91a26 boards: frdm_mcxa346: Add opamp for frdm_mcxa346
1. Add opamp node for mcxa346.
2. Support opamp for frdm_mcxa346.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-09-24 19:18:11 -04:00
Zhaoxiang Jin
e3d0a2bcc3 boards: frdm_mcxa266: Add opamp for frdm_mcxa266
1. Add opamp node for mcxa266.
2. Support opamp for frdm_mcxa266.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-09-24 19:18:11 -04:00
Zhaoxiang Jin
42a72631b4 boards: frdm_mcxa156: Add opamp for frdm_mcxa156
1. Add opamp node for mcxa156.
2. Support opamp for frdm_mcxa156.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-09-24 19:18:11 -04:00
Zhaoxiang Jin
bb73dd0b3a drivers: opamp: Add NXP opamp driver implementation
This commit includes the following changes:
1. Add top level CMakeLists.txt entry and Kconfig.
2. Add bindings for opamp-controller.
2. Add bindings for nxp,opamp and nxp,opamp_fast.
3. Implemented NXP opamp and opamp_fast device driver.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-09-24 19:18:11 -04:00
Allen Zhang
502620e8c7 dts: mcxw235,mcxw236: add dts for MCXW235 and MCXW236
add dts for device MCXW235 and MCXW236

Signed-off-by: Allen Zhang <chunfeng.zhang@nxp.com>
2025-09-24 19:17:22 -04:00
Johan Alfvén
ec72295251 drivers: misc: ethos_u: add fast-memory-region support
Add optional fast-memory-region property to the Ethos-U driver. When
present in the devicetree, the driver passes the region base and size
to ethosu_init(), allowing platforms to use dedicated SRAM for improved
NPU performance.

If the property is not specified, the driver falls back to using NULL/0,
keeping existing behavior unchanged.

Signed-off-by: Johan Alfvén <johan.alfven@arm.com>
2025-09-24 15:51:24 +01:00
Dimitrije Lilic
0c4c305c9a drivers: adc: max32: Support for RTIO stream
Updated MAX32 driver with RTIO  stream functionality.

Signed-off-by: Dimitrije Lilic <dimitrije.lilic@orioninc.com>
2025-09-23 17:50:25 -04:00
Vladislav Pejic
bc0683b6a2 driver: adc: ad405x: Add RTIO stream
Added support for RTIO stream.
Also added sampling_period property to the DTS. This is for setting the
sampling period when streaming is used.
Hardware or kernel timer can be
used for this.
To use hardware timer you need to add it to the DTS. Example:

{
	chosen {
		zephyr,adc-clock = &counter0;
	};
};

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2025-09-23 17:50:25 -04:00
Gerard Marull-Paretas
c89b3a877a dts: arm: sifli: sf32lb52x: define gpioa nodes
Add nodes for the GPIO controller (controlling pins PA00-44). Naming is
a bit confusing. In some places you'll find HPSYS_GPIO, other GPIO1,
pins are named PA00-PA44... I've chosen "GPIOA". Because the Zephyr GPIO
API assumes a maximum of 32 pins per controller, we have to split the
controller into 32-bit wide blocks. In reality, the controller
internally works like that (see the `reg` addresses), however, the whole
block is clocked by a single RCC _switch_.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-23 17:50:16 -04:00
Gerard Marull-Paretas
3eca7ef291 dts: bindings: gpio: add sifli,sf32lb-gpio
Add bindings for the SF32LB GPIO controller.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-23 17:50:16 -04:00
Gerard Marull-Paretas
3a56ded095 dts: bindings: gpio: add sifli,sf32lb-gpio-parent
SiFli SF32LB SoCs have a single GPIO controller block which manages all
pins (> 32). However, Zephyr API expects ports to have up to 32 pins. So
in order to make things compatible, we introduce a Zephyrism in
devicetree: a parent node with common properties (e.g. IRQ, RCC clock,
etc.) and children nodes for each 32 pin block. See upcoming devicetree
definition for more details.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-23 17:50:16 -04:00
Gerard Marull-Paretas
e22844325f dts: bindings: pinctrl: sifli,sf32lb52-pinmux: add port/offset cells
So we can reference later to any of the PAD_XX_YY registers from e.g.
GPIO nodes, where we need to write pad configs like pull-ups.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-23 17:50:16 -04:00
Chekhov Ma
1ea2c63081 drivers: gpio: retire pca6416a driver
pca6416a driver can be replaced by pca_series driver, which covers a
larger number of devices.

Signed-off-by: Chekhov Ma <chekhov.ma@nxp.com>
2025-09-23 12:04:12 -04:00
Chekhov Ma
6c62afd21f drivers: gpio: pca_series: add support for pcal953x and pcal64xx
add support for pca9538, pcal9539.

Add support for pcal6408 and pcal6416, which is originally supported
by pcal64xxa driver. These device has the same register layout as
pcal9538 and pcal9539 respectively, which means they can be seamlessly
supported by pca_series driver.

Signed-off-by: Chekhov Ma <chekhov.ma@nxp.com>
2025-09-23 12:04:12 -04:00
Mohamed Azhar
33486ed643 dts: arm: microchip: add pinctrl dts node and bindings for Port G1 IP
Add pinctrl dts node for PIC32CM JH family devices and
update binding file for Microchip Pinctrl Port G1 IP

Signed-off-by: Mohamed Azhar <mohamed.azhar@microchip.com>
2025-09-23 09:41:05 +01:00
Hoang Nguyen
d11e2e09ab dts: renesas: Add system timer support for RZ/V2L, RZ/A3UL
Add gtm, os_timer nodes to Renesas RZ/V2L, RZ/A3UL

Signed-off-by: Hoang Nguyen <hoang.nguyen.jx@bp.renesas.com>
Signed-off-by: Tien Nguyen <tien.nguyen.zg@renesas.com>
2025-09-23 09:39:35 +01:00
Raffael Rostagno
bbea66edae dts: esp32h2: Add ieee802154 support
Add ieee802154 support for ESP32-H2.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2025-09-22 17:52:46 -04:00
Yurii Lozynskyi
c15920613d drivers: counter: add PSC3M5 counter driver
- Add a new counter driver implementation based on the PDL for
  Infineon CAT1B devices. This enables support for hardware
  counters on the PSC3M5 platform.
- Add IFX_TCPWM_Counter_DeInit and IFX_TCPWM_Counter_Init
  macros to include/zephyr/drivers/timer/ifx_tcpwm.h
  and sort all of the macros in that file

Signed-off-by: Yurii Lozynskyi <yurii.lozynskyi@infineon.com>
2025-09-22 17:50:00 -04:00
Dong Wang
1730c0daab soc: ish: Disable D0i3 low-power state for ISH
- It's not fully enabled.
- Chrome ISH cannot reach such deep low-power state for current scenarios.
- Chrome ISH's panic info mechanism needs SRAM content kept with ISH
reset, but D0i3 has whole SRAM banks power-off.

Signed-off-by: Dong Wang <dong.d.wang@intel.com>
2025-09-22 13:30:55 -04:00
Dong Wang
57ae93e8e3 soc: ish: Move PM init into power.c and connect IRQs in it
- Add SOC interrupt properties and interrupt-names ("reset_prep", "pcidev",
  "pmu2ioapic") to intel_ish5 DTS files so PM IRQs are discoverable via DT.
- Move SEDI PM initialization and IRQ setup into ISH SOC PM init:
- Remove the direct call to sedi_pm_init() from soc_early_init_hook in
soc.c.
Previously SEDI code has those IRQ numbers hard coded and calls Zephyr APIs
to connect IRQs, which should be avoided.

Signed-off-by: Dong Wang <dong.d.wang@intel.com>
2025-09-22 13:30:55 -04:00
Sai Santhosh Malae
295431dad5 drivers: power_domain: siwx91x: Add power domain driver for siwx91x SoC
1. Added siwx91x power domain node in siwg917.dtsi
2. Updated UART device nodes to reference the newly added power domain.
3. Implemented power domain driver to manage power domain transitions
   for the SoC.

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-09-22 13:27:01 -04:00
Sai Santhosh Malae
380f35a76a drivers: dma: siwx91x: DTS changes for siwx91x GPDMA driver
1. Create a YAML file for gpdma node
2. Add GPDMA node in the siwx917.dtsi

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-09-22 13:26:52 -04:00
Eve Redero
6b809c2107 boards: add steelseries apex_pro_mini
Initial support for the Apex Pro Mini keyboard,
based on STM32L412.

Signed-off-by: Eve Redero <eve.redero@gmail.com>
2025-09-22 11:17:44 +02:00
Ayush Singh
2ac7899791 dts: arm64: ti: am62x_a53: Add MAIN domain RTI
- Add Real Time Interrupt (RTI) nodes.
- Works as watchdog timers.

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-09-20 23:05:44 +02:00
Alexandre Rey
d571f90183 drivers: cop: add NXP cop driver
Port NXP cop driver to Zephyr

Signed-off-by: Alexandre Rey <alx.rey@icloud.com>
2025-09-20 11:08:45 +02:00
Zhaoxiang Jin
25ede2daf7 boards: Enable cmp on frdm_mcxc242
Enable cmp on frdm_mcxc242

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-09-19 17:47:58 -04:00
Zhaoxiang Jin
6d724bd80d drivers: comparator: Enable nxp comparator (cmp)
Enable nxp comparator (cmp)

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-09-19 17:47:58 -04:00
Ioannis Karachalios
9fe858e886 dts: renesas: smartbond: Update timer2 node status
PM and PM_DEVICE should be enabled, by default. The latter, require that
timer2 node be employed and reserved for the OS tick generation.

Signed-off-by: Ioannis Karachalios <ioannis.karachalios.px@renesas.com>
2025-09-19 16:34:37 +02:00
Gerard Marull-Paretas
33f0a194d7 dts: bindings: add puya vendor prefix
To be used for some NOR flash devices.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
9a1bb99d02 dts: arm: sifli: sf32lb52x: define mpi1/2
MPI1/2 are memory controllers (PSRAM, NOR, NAND, etc.).

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
dd0e353ca6 dts: bindings: memory-controllers: add sifli,sf32lb-mpi
Binding for SiFli SF32LB Memory Peripheral Interface (MPI).

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
8e17e6d5b7 dts: arm: sifli: sf32lb52x: define usart1
Define node for USART1. Other available USART instances will be added in
the future.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
085e0a1fde dts: bindings: serial: add sifli,sf32lb-usart
For the UART IP in SF32LB SoCs.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
ba98762f53 dts: arm: sifli: sf32lb52x: define pinctrl
Add a node for pinctrl (PINMUX).

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
445efe2969 dts: bindings: pinctrl: add sifli,sf32lb52x-pinmux
Add bindings for the SF32LB52X SoCs PINMUX peripheral. Note that
SF32LB56X SoCs contain a compatible IP (not others, where HPSYS_CFG is
not required), so if SF32LB56X support is added, binding could be
adjusted to reflect 52x/56x support.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
cc9fd35378 dts: arm: sifli: sf32lb52x: define RCC clock controller
This is defined as a subnode because RCC is a MFD device (clock and
reset controller), however, Zephyr does not allow >1 device per DT node!

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
c5e4e38a1f dts: bindings: clock: add sifli,sf32lb-dll
Add binding for SF32LB DLL clock.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
21813831e1 dts: bindings: clock: add sifli,sf32lb-rcc-clk
Add binding for SF32LB RCC (clock part).

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
cdf4fb13d9 dts: arm: sifli: sf32lb52x: define pmuc
Add a devicetree node for PMUC.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
135dc1b65b dts: bindings: power: add sifli,sf32lb-pmuc
Add bindings for the SiFli SF32LB PMUC. PMUC is a sort of "syscon" type
register block used to control multiple power-management related stuff.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
0996652790 dts: arm: sifli: sf32lb52x: define RCC
Add node for RCC.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
348248570a dts: bindings: mfd: add sifli,sf32lb-rcc
SiFli SF32LB RCC (Reset and Clock Control).

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
25160c1328 dts: arm: sifli: sf32lb52x: define HXT48 clock
Add node for the HXT48 clock.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
6b9d4700d5 dts: bindings: clock: add sifli,sf32lb-hxt48
Add binding for SF32LB HXT48 clock.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
7732d47129 dts: arm: sifli: sf32lb52x: define all fixed clocks
Refer to Ch 2 "Clock and Reset" from reference manual. Some may require
specific bindings in the future if they can be configured (e.g. RC48).

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
62e887d138 dts: arm: sifli: sf32lb52x: define AON entry
Add entry for SF32LB AON.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
ab70b4c3a2 dts: bindings: power: add sifli,sf32lb-aon
SiFli SF32LB AON module controls certain low-power or clocks, e.g.
enablement of HXT48 on different LP modes, etc.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
087ab5a567 dts: arm: sifli: sf32lb52x: define cfg
Define node for SF32LB HPSYS_CFG.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
df3d8e87be dts: bindings: syscon: add sifli,sf32lb-cfg
SiFli SoCs have a multi-purpose register set named HPSYS_CFG, which we
can treat as a "syscon".

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00
Gerard Marull-Paretas
a9c5a7fb21 dts: arm: sifli: add sram layout default schemes
SRAM is segmented as:

- RAM0: 128K (DTCM)
- RAM1: 128K
- RAM2: 256K

where:

- RAM0 can be accessed by all peripherals except PTC1/2.
- RAM1/RAM2 have its own port, so e.g. master 1 can access RAM1 while
  master 2 can access RAM2.

Depending on the application, one may decide to just use the whole RAM
as a single block, split RAM0 (DTCM) and RAM1/2, etc. For now, provide 2
schemes:

- Use all SRAM as a single block
- Use RAM0 (DTCM) + RAM1/2

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2025-09-19 16:34:15 +02:00