Commit Graph

561 Commits

Author SHA1 Message Date
Rbb666 46fdeefb32 refactor(pic): dispatch NVIC IRQs through traps 2026-08-12 12:54:50 +08:00
Rbb666 6b4f34204e feat(dm): support OFW on Cortex-M targets
Add the ARM NVIC PIC driver, no-MMU I/O mapping, built-in FDT support, and Cortex-M CPU hooks required by the native RT-Thread device model.
2026-08-12 12:54:50 +08:00
GUI 9d04b6baab
[dm][clk] fixup the work flow of CLK (#11673)
* [dm][clk] fixup the work flow of CLK

Add RT_CLK_F_SET_RATE_NO_REPARENT so clock providers can preserv
the currently selected parent during rate changes.
Round and re-read the effective clock rate after parent handling,
skip redundant gate toggles and hardware programming when
the target is already active, and fix error handling for parent-clock allocation failures.

Signed-off-by: GuEe-GUI <2991707448@qq.com>

* style: format code with clang-format

* style: format complete changed files with clang-format

---------

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2026-08-08 18:25:02 +08:00
GUI a2c196d643
[dm][phye] Add Mode/State and MIPI D-PHY timing helper (#11675)
* [dm][phye] Add Mode/State and MIPI D-PHY timing helper

Extend the generic PHY framework with cached mode and submode state,
avoiding redundant hardware mode changes.
Add MIPI D-PHY default timing calculation helpers based on
pixel clock or lane high-speed clock, and expose the new API through rtdevice.h.

Signed-off-by: GuEe-GUI <2991707448@qq.com>

* style: format code with clang-format

* style: format complete changed files with clang-format

---------

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2026-08-07 21:31:43 +08:00
GUI 19e9be8779
[dm][ufs] fixup the ufs supported (#11646)
* [dm][block] add 4K support for EFI partion

Signed-off-by: GuEe-GUI <2991707448@qq.com>

* [dm][ufs] fixup the linkup flow

Signed-off-by: GuEe-GUI <2991707448@qq.com>

* style: format code with clang-format

* style: format complete changed files with clang-format

* drivers: address UFS review feedback

---------

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2026-08-07 16:54:29 +08:00
GuEe-GUI abc2c59e57 style: format code with clang-format 2026-08-07 09:26:42 +08:00
GuEe-GUI 871d9f5922 [dm][graphic] update graphic
1. Add FB_ACTIVATE_* cmd
2. Fixup the vsync
3. Update the graphic test

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2026-08-07 09:26:42 +08:00
GuEe-GUI 395dff4e2e [dm][misc] make RT_BITS_PER_LONG custom mode
Signed-off-by: GuEe-GUI <2991707448@qq.com>
2026-08-06 11:14:28 +08:00
GuEe-GUI fe751c1521 [dm][core] Add rt_bus_probe_device API
Add rt_bus_probe_device() to retry driver matching for a registered
but unbound device. Use it when an OFW-created platform device
is requested again, while preserving native-bus ownership
for I2C, SPI, and other non-platform devices.
Also instantiate eligible child platform devices after a parent node is registered.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2026-08-03 09:36:21 +08:00
GuEe-GUI a7b0182817 [dm][tee] support Trusted Execution Environment (TEE)
Signed-off-by: GuEe-GUI <2991707448@qq.com>
2026-07-27 17:53:20 +08:00
mnikapl954 8e68826dc3 [drivers][adc] Fix misleading doxygen for rt_adc_voltage 2026-07-22 20:57:55 +08:00
mnikapl954 108a958a9d [drivers][dac] Fix wrong rt_dac_write arguments in doxygen example 2026-07-22 19:59:36 +08:00
wdfk-prog 937be2c97d
feat[ADC]: 新增 ADC V2 驱动支持 (#11440)
* feat[ADC V2]: add ADC V2 driver support

add ADC V2 core APIs, session state management, and sequence read support
add STM32 ADC V2 HAL backend with internal-channel and VREF handling
add per-series STM32 ADC V2 default configuration headers
wire ADC V2 Kconfig and SConscript integration for components and STM32 BSP drivers
keep ADC V2 mutually exclusive with the legacy ADC driver path

* feat[ADC V2]: add ADC V2 MSH special channel read support

add generic ADC V2 MSH commands for probing, configuring, raw reads, voltage reads, and sequence reads
add STM32 ADC V2 backend special commands for VREFINT, temperature sensor, and VBAT reads
add STM32 helper APIs for special logical channels, sampling time, resolution, and temperature calculation
wire ADC V2 MSH sources through Kconfig and SConscript

* feat[ADC V2]: add ADC V2 stream DMA support

add ADC V2 stream APIs with latest-frame and FIFO buffering policies
wire STM32 ADC V2 to circular DMA stream mode with per-instance Kconfig options
extend STM32 ADC config headers and DMA helpers for stream DMA configuration
add FinSH stream commands for start, read, cancel, and stop operations
handle Cortex-M7 cache-safe DMA buffers for STM32 stream sampling

* feat[ADC V2]: add timer trigger support for ADC V2 streams

add ADC V2 trigger configuration, validation, and lifecycle coordination
add timer update trigger support through clock timer TRGO controls
map STM32 ADC V2 timer update triggers to HAL external trigger selector fields
add Kconfig, SConscript, and MSH entries for ADC trigger setup and inspection

* feat[ADCV2]: add timer and comparator trigger selectors

add ADC V2 timer compare and analog comparator trigger configuration support
extend clock timer trigger config with compare event and channel fields
wire STM32 ADC external trigger selector mappings for TIM update, TIM compare, and COMP output
add FinSH trigger_set commands and Kconfig switches for timer and comparator trigger backends

* fix[ADC V2]: resolve ADC V1 compatibility Kconfig loop

* ci[ADC V2][stm32]: add ADC v2 peripheral config for stm32f407-rt-spark BSP
2026-07-07 08:59:22 +08:00
GuEe-GUI 11ca166006 [dm][ptp] support Precision Time Protocol (PTP) IEEE 1588 clock
Signed-off-by: GuEe-GUI <2991707448@qq.com>
2026-06-29 16:55:18 +08:00
wdfk-prog 1f9146897b feat[serial][v2]: add RX DMA event mode control
add serial v2 RX DMA event mode configuration for DMA-enabled builds
support STM32 UART RX DMA half/full transfer interrupt policy selection
validate RX DMA event mode before applying serial configuration
restore serial configuration when backend configure fails
2026-06-27 11:39:10 +08:00
GuEe-GUI e280f213bf [dm][dvfs] support Dynamic Voltage and Frequency Scaling (DVFS)
1. Support DVFS and finsh cmd, there are 6 governors:
   - conservative
   - freedom
   - performance
   - powersave
   - schedutil
2. Support DVFS for SCMI.
3. Port the Cooling device for DVFS.
4. Port the PM with DVFS.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2026-06-23 08:02:09 +08:00
Guorui Li 09334ce771
doc: add Doxygen comments to DMA driver subsystem #11477 2026-06-16 10:21:41 +08:00
GuEe-GUI 8517f2d086 [dm][virtio] support virtio dm
1. version for v1.2
2. support packed queue
1. support MMIO/PCI over bus
2. new virtio queue api with dma/cpu sync
3. update for virtio device drivers:
  - net
  - block
  - console
  - input
  - gpu
4. new virtio device drivers:
  - 9p
  - crypto
  - rng
  - scmi
  - scsi

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2026-06-15 10:00:57 +08:00
GuEe-GUI 63965cb103 [bsp][zynqmp-a53-dfzu2eg] enable full dm
This is a builtin fdt example BSP

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2026-06-08 14:57:37 +08:00
GuEe-GUI 46b90df247 [dm][rpmsg] support Remote Processor Messaging (RPMSG)
Signed-off-by: GuEe-GUI <2991707448@qq.com>
2026-05-11 14:09:04 +08:00
GuEe-GUI ea13820c2c [dm][ufs] support Universal Flash Storage (UFS)
Support UFS over PCI, too.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2026-05-04 18:41:16 +08:00
Evlers 8be4b05af6
[drivers][power] add CLI helpers and current control support#11301
- add msh commands to inspect/operate power supplies and regulators
- expose snapshot/name helpers so shells and daemons can enumerate nodes safely
- add current support for regulator
- relax DM-only constraints in power/regulator stacks so basic builds work without DM/OFW
- solve the problem of enabling counting for regulator
2026-04-07 11:50:11 +08:00
wdfk-prog 6a635e32d9 fix[stm32][spi]: add usage_freq and compute transfer timeout by frequency 2026-03-16 22:05:48 +08:00
wdfk-prog cda0a63ab5 refactor(core): Move __rt_fls to kservice 2026-03-12 16:40:33 +08:00
wdfk-prog b0af22a96f feat[i2c]: add bus configuration and max-hz control 2026-03-12 15:15:02 +08:00
Shaun ffcd1cb316 fix(drivers/ipc): correct rt_ringbuffer_peek to not consume data 2026-02-25 17:53:06 +08:00
wdfk-prog 06e829b1b3 docs(can): improve dev_can.h docs for batched RX example 2026-02-03 18:40:45 +08:00
Damon 88c1e6c88a
sdio: fix missing card status polling after CMD6 in eMMC DDR mode switch 2026-02-01 14:02:10 +08:00
Bernard Xiong 743b614875
[components][clock_time] Refactor time subsystem around clock_time (#11111)
* [components][clock_time] Refactor time subsystem around clock_time

Introduce the clock_time core with clock source/event separation, high-resolution scheduling, and boot-time helpers, plus clock_timer adapters for timer peripherals.

Remove legacy ktime/cputime/hwtimer implementations and migrate arch and BSP time paths to the new subsystem while keeping POSIX time integration functional.

Update drivers, Kconfig/SConscript wiring, documentation, and tests; add clock_time overview docs and align naming to clock_boottime/clock_hrtimer/clock_timer.

* [components][clock_time] Use BSP-provided clock timer frequency on riscv64

* [risc-v] Use runtime clock timer frequency for tick and delays

* [bsp] Add clock timer frequency hooks for riscv64 boards

* [bsp] Update Renesas RA driver doc clock_timer link

* [bsp] Sync zynqmp-r5-axu4ev rtconfig after config refresh

* [bsp][rk3500] Update rk3500 clock configuration

* [bsp][hpmicro] Add rt_hw_us_delay hook and update board delays

* [bsp][stm32l496-st-nucleo] enable clock_time for hwtimer sample in ci

* [bsp][hpmicro] Fix rtconfig include scope for hpm6750evk

Move rtconfig.h include outside the ENET_MULTIPLE_PORT guard for hpm6750evk and hpm6750evk2 so configuration macros are available regardless of ENET settings.

* [bsp][raspi3] select clock time for systimer

* [bsp][hpm5300evk] Trim trailing blank line

* [bsp][hpm5301evklite] Trim trailing blank line

* [bsp][hpm5e00evk] Trim trailing blank line

* [bsp][hpm6200evk] Trim trailing blank line

* [bsp][hpm6300evk] Trim trailing blank line

* [bsp][hpm6750evk] Trim trailing blank line

* [bsp][hpm6750evk2] Trim trailing blank line

* [bsp][hpm6750evkmini] Trim trailing blank line

* [bsp][hpm6800evk] Trim trailing blank line

* [bsp][hpm6e00evk] Trim trailing blank line

* [bsp][nxp] switch lpc178x to gcc and remove mcx timer source

* [bsp][stm32] fix the CONFIG_RT_USING_CLOCK_TIME issue.

* [docs][clock_time] add clock time documentation

* [docs][clock_time] Update clock time subsystem documentation

- Update device driver index to use correct page reference
- Clarify upper layer responsibilities in architecture overview
- Update README to describe POSIX/libc, Soft RTC, and device driver usage
- Refine architecture diagram with improved layout and color scheme
- Remove obsolete clock_timer.md file

* [kernel][utest] Trim trailing space

* [clock_time] Fix hrtimer wrap handling

* [clock_time] fix the static rt_inline issue

* [clock_time] fix the rt_clock_hrtimer_control result issue
2026-01-31 17:44:27 +08:00
GUI c6498b5f65
[sdio][dm] update for DM (#11078)
* [sdio][dm] import Kconfig for DM

Signed-off-by: GuEe-GUI <2991707448@qq.com>

* [sdio] fixup IRQ and mmcsd threads' stack size default

Signed-off-by: GuEe-GUI <2991707448@qq.com>

* [sdio][dm] Support DM mode

1. Support features read by DM.
2. Support regulator API in drivers.
3. Support send tuning option CMD.
4. Replace `switch_uhs_voltage` by `signal_voltage_switch`.

Signed-off-by: GuEe-GUI <2991707448@qq.com>

* [dm][sdhci] Cleanup the SDHCI

Signed-off-by: GuEe-GUI <2991707448@qq.com>

* [sdio][dm] add new SDIO/SDHCI drivers

1. SDHCI support on PCI bus
2. Synopsys DesignWare MMC Family(MMIO/PCI)

Signed-off-by: GuEe-GUI <2991707448@qq.com>

---------

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-26 21:04:42 +08:00
GuEe-GUI 9370f81ad7 [dm][include] fixup loss' header
Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-22 13:24:41 +08:00
GUI 43733268c1
[dm][firmware][scmi] support ARM-SCMI interface #11069 2025-12-19 21:20:17 +08:00
GuEe-GUI b4d332706e [dm][power] add power reset and supply framework
1. Board level reset or poweroff
2. Power supply class

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-17 10:29:05 +08:00
GuEe-GUI e83a6e9baa [dm][scsi] Add parallel_io option for SCSI host
Some SCSI supported parallel_io = RT_TRUE, like UFS.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-16 11:39:41 +08:00
GuEe-GUI 4913211409 [dm][core] add common machine power interface
Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-16 11:35:35 +08:00
GuEe-GUI 5abecc1fd0 [dm][graphic] support dm mode
1. Add backlight framework for graphic.
2. Add framebuffer and plane, power, EDID for graphic framework
3. Add boot logo render for graphic
4. Update lcd.h

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-15 16:54:23 +08:00
GUI d8709ba9fb
[dm][hwcache] support hwcache (#11049)
Some ARCH not has std cache ops, such as RISC-V

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-13 16:32:25 +08:00
GuEe-GUI 335a1242b0 [dm][clk] refactoring the CLK framework
The old CLK is can't link all hardware clock cell in system that the
API of layout such as 'set_parent' can't work as expected.

Some hareware clock cell need some flags to prevent some dangerous behaviors, eg:
When a clock cell is link to the PMU, the SoC will power-down if the cell is
disable.

The new CLK can do it, and make the CLK drivers implemented easier from
TRM/DataSheet.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-12 13:33:28 +08:00
GuEe-GUI dd20176cba [dm][hwspinlock] support hwspinlock
Hardware spinlock modules provide hardware assistance for
synchronization and mutual exclusion between heterogeneous processors
and those not operating under a single, shared operating system.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-11 11:08:33 +08:00
GuEe-GUI 22a77f2694 [dm][nvmem] support nvmem
Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES...

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-10 17:04:23 +08:00
GUI 3ff3fc3948
[dm][input] support input #11031 2025-12-10 16:58:10 +08:00
GuEe-GUI 6c0753cb8f [dm][pinctrl] new interface for 'pin_gpio_request'
Some GPIO should apply GPIO mode by pinctrl, add `pin_ctrl_gpio_request`
for GPIO driver to apply it auto.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-10 16:53:09 +08:00
GuEe-GUI 056ae364cb [dm][core] add new API for DM
1. rt_dm_dev_is_big_endian
2. rt_dm_dev_get_prop_fuzzy_name

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-09 21:04:16 +08:00
GuEe-GUI 7357abdc37 [dm][core] cleanup format
Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-09 21:04:16 +08:00
GuEe-GUI c74148a8b3 [dm][core] add common stack size for DM
DM driver is public, they don't know the size of the thread stack default.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-09 21:04:16 +08:00
GUI 6618fa1cf6
[Driver][MISC] Update ADC/PWM (#11003)
* [DM][MISC] Make Kconfig(ADC/PWM) import for DM

* [Driver][MISC][ADC] Fixup ADC

1. Fixup error no.
2. Fixup type of control for args.
3. Fixup value no init.

* [Driver][MISC][PWM] Enable `rt_pwm_get` API

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-09 09:49:02 +08:00
GuEe-GUI 62e1fe3699 [Drivers/phy] Fixup header include for v2
Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-04 16:05:37 +08:00
GuEe-GUI 798c84647c [DM/I2C] Update I2C for DM
1. Add get id match data API.
2. Set I2C device name default before adding to bus.
3. Add Kconfig import for DM.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-04 16:00:13 +08:00
GuEe-GUI e5db582cfa [DM/MISC] Update MISC API
1. Fixup RT_DIV_ROUND_DOWN_ULL and RT_DIV_ROUND_UP_ULL, rt_do_div.
2. Support RT_DIV_ROUND_CLOSEST_ULL.
3. Make new DIV API.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-04 15:59:52 +08:00
GUI e5e0ad29bf
[DM/DMA] Update DMA #10987
* Append WT attribute.
* Change the API with pool size only.
* Add address mask for DMA
* Change DMA lock to mutex
* Add pause callback for DMA engine driver
* Add DMA Engine test
* Add ARM PL330 DMA Engine driver
2025-12-03 21:47:49 +08:00