nuttx/arch/arm/src
raiden00pl a8ac2e74e0 arch/nrf52: add SAADC external TIMER trigger over PPI
The SAADC internal sample timer only works with a single enabled
channel, so hardware-timed multi-channel scan was not possible.  Add
NRF52_SAADC_TIMER_PPI, a third trigger mode in which a general-purpose
TIMER compare event is routed to TASKS_SAMPLE over PPI.  All enabled
channels are scanned, and the TIMER prescaler allows much lower sample
rates than the internal timer, which is limited to 16MHz/CC with CC in
80..2047.

NRF52_SAADC_CONTINUOUS is no longer tied to the internal timer and
works with either source.  Its EasyDMA buffers now hold
NRF52_SAADC_CONTINUOUS_BUFLEN whole scans rather than that many single
samples, so MAXCNT becomes chan_len * BUFLEN.  Samples are interleaved
scan by scan, so a channel map is built once at configure() time and
passed to the upper half with the batch; the upper half already accepts
a per-sample channel array.  A single-channel configuration produces
the same MAXCNT and the same delivery as before.

Because both features want a PPI channel, add a build-time check that
NRF52_SAADC_PPI_CHANNEL and NRF52_SAADC_CONTINUOUS_PPI_CH differ, and
constrain the latter under the SoftDevice controller like the former.

NRF52_SAADC_CHANNELS gains a default and range for the new mode, and
documents that the internal timer is restricted to one channel.

Assisted-by: Claude Code
Signed-off-by: raiden00pl <raiden00@railab.me>
2026-09-28 11:20:31 +02:00
..
a1x include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
am67 drivers/vhost: Optimize vhost-net performance and robustness 2026-09-27 18:41:30 +08:00
am335x boards/arm: Add support for the original BeagleBone 2026-08-19 10:11:38 +08:00
arm !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
armv6-m !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
armv7-a nuttx/atomic: replace atomic_fetch_xxx with atomic_xxx just like zephyr 2026-08-24 13:20:45 +08:00
armv7-m !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
armv7-r !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
armv8-m !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
armv8-r !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
at32 {arm,xtensa}/otg: indent switch bodies per the coding standard. 2026-08-25 16:07:35 +08:00
c5471 drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02:00
cmake arch/arm: Say which linker is missing when FDPIC has none. 2026-09-09 10:21:21 +08:00
common tools/nxflat: Add an Apache-licensed NXFLAT converter. 2026-09-27 11:25:12 -03:00
csk6 include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
cxd32xx include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
cxd56xx arch/atomic: remove up_testset in spinlock 2026-09-08 08:58:54 +08:00
dm320 style: fix checkpatch issues after debug.h move 2026-04-07 07:50:06 -03:00
efm32 {arm,xtensa}/otg: indent switch bodies per the coding standard. 2026-08-25 16:07:35 +08:00
eoss3 include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
fvp-v8r-aarch32 include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
gd32f4 arch/arm/gd32f4: fix missing CTL selector bits in up_disableusartint. 2026-06-11 09:18:15 -03:00
goldfish include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
ht32f491x3 !drivers/pwm: remove PWM_MULTICHAN option 2026-05-18 11:35:25 -04:00
imx1 include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
imx6 include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
imx9 arch/arm/imx9, arch/arm64/imx9: Release eDMA lock before callbacks 2026-09-15 08:41:58 -03:00
imxrt arch/arm/imxrt: Allow serial console in uarts 9-12 2026-09-26 17:05:47 +08:00
kinetis net, arch: Fix nxstyle errors in files the CAN ioctl merge touches. 2026-09-01 17:40:47 +08:00
kl !drivers/pwm: remove PWM_MULTICHAN option 2026-05-18 11:35:25 -04:00
lc823450 arch/atomic: remove up_testset in spinlock 2026-09-08 08:58:54 +08:00
lpc17xx_40xx !drivers/pwm: remove PWM_MULTICHAN option 2026-05-18 11:35:25 -04:00
lpc31xx !nuttx: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-19 16:21:28 +08:00
lpc43xx !sched/clock: remove CONFIG_SYSTEM_TIME64 and always use 64-bit time 2026-05-19 16:21:28 +08:00
lpc54xx !sched/clock: remove CONFIG_SYSTEM_TIME64 and always use 64-bit time 2026-05-19 16:21:28 +08:00
lpc214x arch/lpc214x: Fix LPC214x to work again 2026-07-01 03:00:43 +08:00
lpc2378 arch/arm: Fix LPC2378 to work again 2026-06-30 03:28:12 +08:00
max326xx !sys/types.h: change time_t and clock_t to int64_t to align with other OSes 2026-05-19 16:21:28 +08:00
mcx-nxxx include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
moxart ghs: fix the UsageFault:INVSTATE error triggered by exception_common 2026-01-16 09:41:13 +08:00
mps include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
mx8mp include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
n32h7 arch/arm/n32h7: Add N32H762IIL7 BSP 2026-09-17 09:39:41 -03:00
nrf52 arch/nrf52: add SAADC external TIMER trigger over PPI 2026-09-28 11:20:31 +02:00
nrf53 arch/nrf52,nrf53,nrf91: fix nxstyle issues 2026-09-25 18:24:36 +08:00
nrf54l arm/nrf54l: add GRTC and tickless scheduling 2026-09-25 10:48:00 +02:00
nrf91 arch/nrf52,nrf53,nrf91: fix nxstyle issues 2026-09-25 18:24:36 +08:00
nuc1xx style: fix checkpatch issues after debug.h move 2026-04-07 07:50:06 -03:00
phy62xx drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02:00
qemu include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
ra4 !drivers/pwm: remove PWM_MULTICHAN option 2026-05-18 11:35:25 -04:00
rp23xx arch/atomic: remove up_testset in spinlock 2026-09-08 08:58:54 +08:00
rp2040 arch/arm/rp2040: fix IN endpoint DPSRAM index for bare-eplog callers 2026-09-08 08:22:37 -03:00
rtl8720c sched/semaphore: Fix pre-existing nxstyle issues in the touched files 2026-09-25 10:37:43 +02:00
rtl8720f arch/arm/rtl8720f: add timer driver support 2026-09-01 17:41:14 +08:00
rtl8721dx arch/arm/rtl8721dx: add shared Ameba timer driver 2026-09-01 17:41:14 +08:00
rtl8721f arch/arm/rtl8721f: add timer driver support 2026-09-01 17:41:14 +08:00
rtl8730e arch/arm/rtl8730e: add UART character driver support 2026-09-24 21:24:35 +08:00
s32k1xx arch/atomic: remove up_testset in spinlock 2026-09-08 08:58:54 +08:00
s32k3xx arch/atomic: remove up_testset in spinlock 2026-09-08 08:58:54 +08:00
sam34 !nuttx: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-19 16:21:28 +08:00
sama5 drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02:00
samd2l2 style: fix checkpatch issues after debug.h move 2026-04-07 07:50:06 -03:00
samd5e5 !nuttx: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-19 16:21:28 +08:00
samv7 arch/arm/src/samv7/sam_mcan.c: fix coding style issues 2026-09-23 11:28:27 +08:00
stm32c0 arch/arm/stm32c0: Add USB device support 2026-09-14 18:32:23 -03:00
stm32c5 arch/arm/stm32c5: Add STM32C562 architecture support 2026-08-27 01:07:10 +08:00
stm32f0 boards/nucleo-f072rb: Add USB device support and a CDC/ACM configuration. 2026-08-20 15:16:33 -03:00
stm32f1 !arch/stm32: unify and commonize stm32_uid for all STM32 families. 2026-07-04 18:47:45 +08:00
stm32f2 !arch/stm32: unify and commonize stm32_uid for all STM32 families. 2026-07-04 18:47:45 +08:00
stm32f3 !arch/stm32: unify and commonize stm32_uid for all STM32 families. 2026-07-04 18:47:45 +08:00
stm32f4 arch/arm/stm32f4: add STM32F412CG chip selection 2026-09-01 17:40:30 +08:00
stm32f7 arch/arm/stm32: fix compare-match race and zero-period hang in tickless 2026-09-18 09:30:22 +08:00
stm32g0 arch/arm/stm32: Add USBDEV_M0_V2 IP flag 2026-09-14 18:32:23 -03:00
stm32g4 arch/arm/src/stm32: add G4 RNG base address 2026-07-09 09:59:02 -04:00
stm32h5 arch/arm/stm32h5: add SDMMC1/SDMMC2 driver 2026-09-25 18:30:40 +08:00
stm32h7 arch/arm/stm32h7: Dump FDCAN Rx/Tx FIFO status registers. 2026-09-26 09:59:13 +08:00
stm32l0 boards/nucleo-l073rz: Add USB device support and a CDC/ACM configuration. 2026-08-22 01:23:12 +08:00
stm32l1 !arch/stm32: unify and commonize stm32_uid for all STM32 families. 2026-07-04 18:47:45 +08:00
stm32l4 {arm,xtensa}/otg: indent switch bodies per the coding standard. 2026-08-25 16:07:35 +08:00
stm32l5 stm32l5: Fix nxstyle errors in drivers and board LEDs 2026-09-22 09:21:35 -03:00
stm32n6 arch/stm32/serial: simplify ifdefs in ioctl 2026-07-07 01:57:51 +08:00
stm32u0 arch/arm: add stm32u0 support 2026-08-18 15:00:15 +02:00
stm32u3 arch/arm/stm32: Unify Cortex-M33 RCC include names 2026-08-27 01:07:10 +08:00
stm32u5 arch/arm/stm32: Unify Cortex-M33 RCC include names 2026-08-27 01:07:10 +08:00
stm32wb arch/arm/stm32: fix compare-match race and zero-period hang in tickless 2026-09-18 09:30:22 +08:00
stm32wl5 arch/arm/stm32: use common SYSTICK_HCLKd8 symbol 2026-08-18 09:34:58 +08:00
str71x style: fix checkpatch issues after debug.h move 2026-04-07 07:50:06 -03:00
tiva arch/arm/src/at32/at32_can: Division by Zero in CAN Bit Timing Commands 2026-06-17 09:01:52 -03:00
tlsr82 !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
tms570 include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
xmc4 arch/arm: xmc4: fix VADC index bounds checks 2026-07-06 07:47:17 +02:00
.gitignore
CMakeLists.txt
Makefile tools: fix stale archive members surviving a Kconfig-driven CSRCS change 2026-07-28 21:26:03 -03:00