zephyr/soc/arm
Andrzej Kuros e03d5d4c6d nrf53: RTC pretick allows user channels and require just one CC
The nrf53 pretick can be used with non-zero
`NRF_RTC_TIMER_USER_CHAN_COUNT` Kconfig option.

The nrf53 pretick requires just one RTC1 CC channel.

The nrf53 pretick handles also RTC1 and RTC0 both CCs and OVERFLOW
events by examination of events scheduled on them. The pretick is set
based on number of ticks to the closest event scheduled that can trigger
an interrupt.

Because the operation in `z_arm_on_enter_cpu_idle` hook would
take too much time with interrupts disabled, the
`z_arm_on_enter_cpu_idle_prepare` hook enabled by Kconfig option
`ARM_ON_ENTER_CPU_IDLE_PREPARE_HOOK` is used. It performs RTC0 and RTC1
examination, and sets pretick without interrupts being blocked.

The LDREX/STREX are leveraged to detect if exception took place
between start of `z_arm_on_enter_cpu_idle_prepare` and
`z_arm_on_enter_cpu_idle`. If exception has not been taken, the pretick
calculation can be trusted because source data could not changed and
too much time could not pass. Otherwise the sleep attempt is disallowed,
the idle will loop again and try later.

Prompt for `SOC_NRF53_RTC_PRETICK` Kconfig option allows to control
this option by an user and turn the feature off if necessary.

Signed-off-by: Andrzej Kuroś <andrzej.kuros@nordicsemi.no>
2023-09-30 18:48:19 +02:00
..
ambiq soc: arm: Add support for Ambiq Apollo4 Blue Plus. 2023-09-22 08:29:29 -05:00
arm include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
aspeed toolchain: only include <zephyr/toolchain.h> 2023-09-15 09:27:30 +02:00
atmel_sam include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
atmel_sam0 include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
bcm_vk include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
common/cortex_m dt: Make zephyr,memory-attr a capabilities bitmask 2023-09-15 12:46:54 +02:00
cypress include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
gigadevice include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
infineon_cat1 include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
infineon_xmc include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
intel_socfpga_std include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
microchip_mec Microchip MEC172X: Rework GPIO definitions to separate package types. 2023-09-26 16:53:29 +02:00
nordic_nrf nrf53: RTC pretick allows user channels and require just one CC 2023-09-30 18:48:19 +02:00
nuvoton_npcx include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
nuvoton_numaker include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
nuvoton_numicro include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
nxp_imx random: Fix kconfig symbol name 2023-09-27 11:55:10 -05:00
nxp_kinetis include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
nxp_lpc soc: lpc55s3x: Enable VREF 2023-09-21 09:26:57 +02:00
nxp_s32 soc: nxp_s32: enable RTU.PIT timers for S32ZE 2023-09-29 09:47:35 +02:00
quicklogic_eos_s3 include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
renesas_rcar include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
renesas_smartbond include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
rpi_pico include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
silabs_exx32 soc/arm/silabs_exx32: select missing CONFIG_SOC_GECKO_SERIESx 2023-09-19 09:32:55 -04:00
st_stm32 soc: arm: st_stm32: stm32u5: add stm32u5a5 soc 2023-09-29 10:34:33 +02:00
ti_k3 boards: ti_k3: prevent header dependencies 2023-09-26 12:03:54 +02:00
ti_lm3s6965 include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
ti_simplelink include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
xilinx_zynq7000 include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
xilinx_zynqmp include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
CMakeLists.txt
Kconfig soc: nordic_nrf: nrf91: Add support for nRF9161 SiP / nRF9120 SoC 2023-04-17 09:30:12 -07:00