2020-02-20 11:51:06 +01:00
|
|
|
#
|
|
|
|
# ztimer dependencies
|
|
|
|
#
|
|
|
|
|
|
|
|
# "ztimer" is the default meta-module of ztimer
|
|
|
|
ifneq (,$(filter ztimer,$(USEMODULE)))
|
|
|
|
USEMODULE += ztimer_core
|
|
|
|
USEMODULE += ztimer_convert_frac
|
|
|
|
USEMODULE += ztimer_convert_shift
|
2020-02-20 12:09:59 +01:00
|
|
|
|
|
|
|
# ztimer's auto_init code resides in it's submodule "ztimer_auto_init",
|
|
|
|
# but RIOT's auto_init scheme expects "auto_init_ztimer" in DEFAULT_MODULES so
|
|
|
|
# it can be disabled (by adding to DISABLE_MODULES).
|
|
|
|
#
|
|
|
|
# "auto_init_%" modules cannot have further dependencies, so we cannot do
|
|
|
|
# "if auto_init_ztimer: use ztimer_auto_init".
|
|
|
|
#
|
|
|
|
# So, if neither "auto_init" nor "auto_init_ztimer" are disabled, pull in
|
|
|
|
# "ztimer_auto_init".
|
|
|
|
DEFAULT_MODULE += auto_init_ztimer
|
|
|
|
ifeq (,$(filter auto_init auto_init_ztimer,$(DISABLE_MODULE)))
|
|
|
|
USEMODULE += ztimer_auto_init
|
|
|
|
endif
|
2020-02-20 11:51:06 +01:00
|
|
|
endif
|
|
|
|
|
2020-05-06 20:16:23 +02:00
|
|
|
# unless ztimer_xtimer_compat is used, make xtimer use ztimer_usec as backend.
|
|
|
|
ifneq (,$(filter ztimer_periph_timer,$(USEMODULE)))
|
2020-02-20 15:33:24 +01:00
|
|
|
ifneq (,$(filter xtimer,$(USEMODULE)))
|
|
|
|
ifeq (,$(filter ztimer_xtimer_compat,$(USEMODULE)))
|
2020-05-06 20:16:23 +02:00
|
|
|
USEMODULE += xtimer_on_ztimer
|
2020-02-20 15:33:24 +01:00
|
|
|
endif
|
|
|
|
endif
|
2020-03-19 18:50:43 +01:00
|
|
|
ifneq (,$(filter evtimer,$(USEMODULE)))
|
|
|
|
USEMODULE += evtimer_on_ztimer
|
|
|
|
endif
|
2020-02-20 15:33:24 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
# make xtimer use ztimer_usec as low level timer
|
|
|
|
ifneq (,$(filter xtimer_on_ztimer,$(USEMODULE)))
|
|
|
|
USEMODULE += ztimer_usec
|
|
|
|
endif
|
|
|
|
|
2020-03-19 18:50:43 +01:00
|
|
|
# make evtimer use ztimer_msec as low level timer
|
|
|
|
ifneq (,$(filter evtimer_on_ztimer,$(USEMODULE)))
|
|
|
|
USEMODULE += ztimer_msec
|
|
|
|
USEMODULE += ztimer_now64
|
|
|
|
endif
|
|
|
|
|
2020-02-20 11:51:06 +01:00
|
|
|
# "ztimer_xtimer_compat" is a wrapper of the xtimer API on ztimer_used
|
2020-02-20 15:33:24 +01:00
|
|
|
# (it is currently incomplete). Unless doing testing, use "xtimer_on_ztimer".
|
2020-02-20 11:51:06 +01:00
|
|
|
ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE)))
|
|
|
|
USEMODULE += div
|
|
|
|
USEMODULE += ztimer_usec
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifneq (,$(filter ztimer_%,$(USEMODULE)))
|
|
|
|
USEMODULE += ztimer_core
|
|
|
|
USEMODULE += ztimer_extend
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifneq (,$(filter ztimer_convert_%,$(USEMODULE)))
|
|
|
|
USEMODULE += ztimer_convert
|
|
|
|
endif
|
|
|
|
|
2020-02-20 15:33:24 +01:00
|
|
|
ifneq (,$(filter ztimer_periph_timer,$(USEMODULE)))
|
2020-02-20 11:51:06 +01:00
|
|
|
FEATURES_REQUIRED += periph_timer
|
|
|
|
endif
|
|
|
|
|
2021-01-07 10:22:56 +01:00
|
|
|
ifneq (,$(filter ztimer_periph_rtc,$(USEMODULE)))
|
|
|
|
FEATURES_REQUIRED += periph_rtc
|
|
|
|
endif
|
|
|
|
|
2020-02-20 15:33:24 +01:00
|
|
|
ifneq (,$(filter ztimer_periph_rtt,$(USEMODULE)))
|
2020-02-20 11:51:06 +01:00
|
|
|
FEATURES_REQUIRED += periph_rtt
|
|
|
|
endif
|
|
|
|
|
2021-01-20 08:39:59 +01:00
|
|
|
ifneq (,$(filter ztimer_periph_ptp,$(USEMODULE)))
|
|
|
|
FEATURES_REQUIRED += periph_ptp_timer
|
|
|
|
endif
|
|
|
|
|
2020-02-20 11:51:06 +01:00
|
|
|
ifneq (,$(filter ztimer_convert_frac,$(USEMODULE)))
|
|
|
|
USEMODULE += frac
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifneq (,$(filter ztimer_usec,$(USEMODULE)))
|
|
|
|
USEMODULE += ztimer
|
2020-02-20 15:33:24 +01:00
|
|
|
USEMODULE += ztimer_periph_timer
|
2020-02-20 11:51:06 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifneq (,$(filter ztimer_msec,$(USEMODULE)))
|
|
|
|
USEMODULE += ztimer
|
2021-06-15 12:19:07 +02:00
|
|
|
FEATURES_OPTIONAL += periph_rtt
|
|
|
|
# HACK: periph_rtt will get used only in the next iteration but an updated
|
|
|
|
# state for FEATURES_USED is needed here so include `features_check.inc.mk`
|
|
|
|
# here instead.
|
|
|
|
# An other option would be to check FEATURES_PROVIDED this would avoid the
|
|
|
|
# order of inclusion problem but it would no take into account possible conflicts
|
|
|
|
# and is also currently not allowed in the build system.
|
|
|
|
# An other alternative would be to delay to the next loop, but this produce a
|
|
|
|
# case where another loop is not executed and the conditional not evaluated
|
|
|
|
# If these kind of usecases pop up before Kconfig migration is completed
|
|
|
|
# then another alternative would be introduce a variable to require an extra
|
|
|
|
# loop independent of USEMODULE, FEATURES_REQUIRED and USEPKG
|
|
|
|
include $(RIOTMAKE)/features_check.inc.mk
|
|
|
|
ifneq (,$(filter periph_rtt,$(FEATURES_USED)))
|
|
|
|
USEMODULE += ztimer_periph_rtt
|
|
|
|
else
|
|
|
|
USEMODULE += ztimer_periph_timer
|
|
|
|
endif
|
2020-02-20 11:51:06 +01:00
|
|
|
endif
|
2021-09-29 09:19:38 +02:00
|
|
|
|
|
|
|
ifneq (,$(filter ztimer_sec,$(USEMODULE)))
|
|
|
|
USEMODULE += ztimer
|
2021-11-02 15:31:04 +01:00
|
|
|
FEATURES_OPTIONAL += periph_rtt
|
2021-09-29 09:19:38 +02:00
|
|
|
# HACK: see above
|
2021-11-02 15:31:04 +01:00
|
|
|
ifneq (,$(filter periph_rtt,$(FEATURES_USED)))
|
|
|
|
USEMODULE += ztimer_periph_rtt
|
2021-09-29 09:19:38 +02:00
|
|
|
else
|
2021-11-02 15:31:04 +01:00
|
|
|
USEMODULE += ztimer_periph_timer
|
2021-09-29 09:19:38 +02:00
|
|
|
endif
|
|
|
|
endif
|