nuttx/arch/arm/src
Marco Casaroli f0e4f61add arch/arm/rp23xx: Add RTC using the POWMAN always-on timer.
The RP2350 has no dedicated RTC block (the RP2040 one was removed).  Use the
POWMAN always-on timer instead: a 64-bit millisecond counter clocked from the
low-power oscillator, so it keeps running across warm resets.

Enabling CONFIG_RP23XX_RTC selects CONFIG_RTC and builds the driver, which
implements the simple up_rtc_initialize()/up_rtc_time()/up_rtc_settime()
interface backing the system clock (seconds resolution).  up_rtc_initialize()
sources the timer from the low-power oscillator at a 1 kHz tick and starts it,
preserving the value when the timer is already running.  POWMAN register writes
carry the required 0x5afe password.

Document the RTC on the rp23xx platform page: an "RTC" section explaining how
the POWMAN always-on timer is used (LPOSC clocking, the 0x5afe password and the
four 16-bit time registers, stopping the counter to reload it), with reference
links to the RP2350 datasheet Power chapter and the pico-sdk hardware_powman /
pico_aon_timer implementation the driver mirrors.  The same references are
noted in the driver header.

Assisted-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
2026-07-26 19:21:34 +08:00
..
a1x include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
am67 boards/arm/am67: Add support for t3-gem-o1 board. 2026-05-28 14:16:03 +02:00
am335x style: fix checkpatch issues after debug.h move 2026-04-07 07:50:06 -03:00
arm arm/arm: remove duplicate .globl for up_saveusercontext 2026-06-26 15:16:20 -03:00
armv6-m arm/armv6-m: remove duplicate .globl for up_saveusercontext 2026-06-26 15:16:20 -03:00
armv7-a arm/armv7-a: remove duplicate .globl for up_saveusercontext 2026-06-26 15:16:20 -03:00
armv7-m arm/armv7-m: remove duplicate .globl for up_saveusercontext 2026-06-26 15:16:20 -03:00
armv7-r arm/armv7-r: remove duplicate .globl for up_saveusercontext 2026-06-26 15:16:20 -03:00
armv8-m arch/arm: set PSPLIM to top of TLS region to protect it from overflow 2026-07-20 20:59:06 -03:00
armv8-r arm/armv8-r: remove duplicate .globl for up_saveusercontext 2026-06-26 15:16:20 -03:00
at32 drivers: Fix comment typos — 'Pubic' → 'Public' across drivers and headers. 2026-07-02 13:29:48 +08:00
c5471 drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02:00
cmake cmake/elf: Fix ELF entry point from __start to _start 2026-06-08 16:03:21 +08:00
common arch/arm: Fix Kconfig style 2026-07-25 14:08:18 -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 drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02:00
dm320 style: fix checkpatch issues after debug.h move 2026-04-07 07:50:06 -03:00
efm32 arch: remove PULSECOUNT references from PWM drivers 2026-05-25 14:33:11 +02: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: imx9: allow last CCM root index 2026-07-06 22:04:14 +08:00
imxrt !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
kinetis !nuttx: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-19 16:21:28 +08:00
kl !drivers/pwm: remove PWM_MULTICHAN option 2026-05-18 11:35:25 -04:00
lc823450 libs/libc: Fix divide-by-zero in stat() with large filesystem block sizes 2026-07-16 23:37:22 +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
nrf52 arch: remove PULSECOUNT references from PWM drivers 2026-05-25 14:33:11 +02:00
nrf53 arch: remove PULSECOUNT references from PWM drivers 2026-05-25 14:33:11 +02:00
nrf91 arch/arm: nrf91: bound modem version parsing 2026-07-06 07:58:13 +02: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/arm/rp23xx: Add RTC using the POWMAN always-on timer. 2026-07-26 19:21:34 +08:00
rp2040 rp2040/rp23xx: preserve SIE_CTRL.PULLUP_EN in usbdev_register 2026-07-16 15:45:19 +08:00
rtl8720c drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02:00
rtl8720f arch/arm/ameba: pack fwlib/wifi archives from an explicit object list 2026-07-17 08:30:47 -03:00
rtl8721dx arch/arm/rtl8721dx: add shared Ameba GPIO driver. 2026-07-21 08:34:05 +02:00
s32k1xx libs/libc: Fix divide-by-zero in stat() with large filesystem block sizes 2026-07-16 23:37:22 +08:00
s32k3xx !nuttx: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-19 16:21:28 +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 drivers/audio/i2s: Fix unsigned integers in function signatures 2026-07-05 15:06:04 +08:00
stm32c0 arch/arm/src/stm32: unify pulse count driver into common/stm32 2026-07-12 09:35:51 +08:00
stm32f0 arch/arm/src/stm32: unify pulse count driver into common/stm32 2026-07-12 09:35:51 +08: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/stm32: unify and commonize stm32_uid for all STM32 families. 2026-07-04 18:47:45 +08:00
stm32f7 arch/arm/src/stm32{h7,f7,l4}: add 4-bit wide bus support for MMC/eMMC cards 2026-07-21 08:51:38 -03:00
stm32g0 stm32g0: Fix FLASHIF typo 2026-07-24 11:04:08 -03:00
stm32g4 arch/arm/src/stm32: add G4 RNG base address 2026-07-09 09:59:02 -04:00
stm32h5 arch/arm/src/stm32: unify pulse count driver into common/stm32 2026-07-12 09:35:51 +08:00
stm32h7 arch/arm/stm32h7: invalidate dcache after aligned SDMMC RX DMA 2026-07-23 19:47:51 +08:00
stm32l0 arch/arm/src/stm32: unify pulse count driver into common/stm32 2026-07-12 09:35:51 +08:00
stm32l1 !arch/stm32: unify and commonize stm32_uid for all STM32 families. 2026-07-04 18:47:45 +08:00
stm32l4 arch/arm/src/stm32{h7,f7,l4}: add 4-bit wide bus support for MMC/eMMC cards 2026-07-21 08:51:38 -03:00
stm32l5 arch/stm32/serial: simplify ifdefs in ioctl 2026-07-07 01:57:51 +08:00
stm32n6 arch/stm32/serial: simplify ifdefs in ioctl 2026-07-07 01:57:51 +08:00
stm32u5 arch/stm32/serial: simplify ifdefs in ioctl 2026-07-07 01:57:51 +08:00
stm32wb arch/stm32/serial: simplify ifdefs in ioctl 2026-07-07 01:57:51 +08:00
stm32wl5 arch/stm32/serial: simplify ifdefs in ioctl 2026-07-07 01:57:51 +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 drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02: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 arch/qemu-armv7a: kernel mode cmake support 2025-01-02 23:13:07 +08:00
Makefile arch/*/src/Makefile: Avoid uncessary relinking of the nuttx binary. 2026-05-18 09:33:58 +02:00