From 94d46e756e42889c9f4e62ad18043d2c3bff6783 Mon Sep 17 00:00:00 2001 From: Jose Alamos Date: Fri, 2 Jul 2021 14:50:59 +0200 Subject: [PATCH 1/3] cpu/fe310: fix RTT frequency --- cpu/fe310/include/periph_cpu.h | 4 ---- sys/ztimer/Makefile.include | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/cpu/fe310/include/periph_cpu.h b/cpu/fe310/include/periph_cpu.h index d2593b1af0..6ce2c99660 100644 --- a/cpu/fe310/include/periph_cpu.h +++ b/cpu/fe310/include/periph_cpu.h @@ -167,12 +167,8 @@ typedef struct { #define RTT_MIN_FREQUENCY (1U) /* in Hz */ #ifndef RTT_FREQUENCY -#ifdef MODULE_PERIPH_RTC -#define RTT_FREQUENCY (RTT_MIN_FREQUENCY) /* in Hz */ -#else #define RTT_FREQUENCY (RTT_MAX_FREQUENCY) /* in Hz */ #endif -#endif /** * @brief Initialization of the clock diff --git a/sys/ztimer/Makefile.include b/sys/ztimer/Makefile.include index 679b774e3a..dc4f5f3b85 100644 --- a/sys/ztimer/Makefile.include +++ b/sys/ztimer/Makefile.include @@ -8,7 +8,7 @@ endif # might not be the most optimized for conversion guarantees that ztimer_periph_rtt # will have a capable backend. ifneq (,$(filter ztimer_periph_rtt,$(USEMODULE))) - ifneq (,$(filter stm32 nrf5% sam% kinetis efm32,$(CPU))) + ifneq (,$(filter stm32 nrf5% sam% kinetis efm32 fe310,$(CPU))) RTT_FREQUENCY ?= RTT_MAX_FREQUENCY CFLAGS += -DRTT_FREQUENCY=$(RTT_FREQUENCY) endif From e312155f3098279d4b15852181768bb8cbb99221 Mon Sep 17 00:00:00 2001 From: Jose Alamos Date: Wed, 16 Sep 2020 11:13:58 +0200 Subject: [PATCH 2/3] drivers/sx127x: remove ZTIMER_USEC dependency --- drivers/sx127x/Kconfig | 4 ---- drivers/sx127x/Makefile.dep | 1 - drivers/sx127x/sx127x.c | 20 ++++++++++---------- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/drivers/sx127x/Kconfig b/drivers/sx127x/Kconfig index 1e20fc4eb9..cf51ea364b 100644 --- a/drivers/sx127x/Kconfig +++ b/drivers/sx127x/Kconfig @@ -40,10 +40,6 @@ config MODULE_SX127X select MODULE_PERIPH_SPI_GPIO_MODE if HAS_PERIPH_SPI_GPIO_MODE select MODULE_PERIPH_SPI select MODULE_ZTIMER - select MODULE_ZTIMER_PERIPH_TIMER - select MODULE_ZTIMER_USEC select MODULE_ZTIMER_MSEC - imply MODULE_ZTIMER_PERIPH_RTT - endif # TEST_KCONFIG diff --git a/drivers/sx127x/Makefile.dep b/drivers/sx127x/Makefile.dep index 2b79600317..e547d6808f 100644 --- a/drivers/sx127x/Makefile.dep +++ b/drivers/sx127x/Makefile.dep @@ -3,7 +3,6 @@ FEATURES_REQUIRED += periph_gpio_irq FEATURES_REQUIRED += periph_spi FEATURES_OPTIONAL += periph_spi_gpio_mode USEMODULE += iolist -USEMODULE += ztimer_usec USEMODULE += ztimer_msec USEMODULE += lora diff --git a/drivers/sx127x/sx127x.c b/drivers/sx127x/sx127x.c index 4b50f35127..b0400e4663 100644 --- a/drivers/sx127x/sx127x.c +++ b/drivers/sx127x/sx127x.c @@ -45,20 +45,20 @@ #include "debug.h" /* The reset signal must be applied for at least 100 µs to trigger the manual - reset of the device. To ensure this value is big enough even with an - inaccurate clock source, an additional 10 % error margin is added. */ -#define SX127X_MANUAL_RESET_SIGNAL_LEN_US (110U) + reset of the device. In order to avoid a dependency to the high frequency + timers, we round it to 1 ms */ +#define SX127X_MANUAL_RESET_SIGNAL_LEN_MS (1U) /* After triggering a manual reset the device needs at least 5 ms to become - ready before interacting with it. To ensure this value is big enough even - with an inaccurate clock source, an additional 10 % error margin is added. */ -#define SX127X_MANUAL_RESET_WAIT_FOR_READY_US (5500U) + ready before interacting with it. We round up to 6 ms in case the clock + source is not accurate enough */ +#define SX127X_MANUAL_RESET_WAIT_FOR_READY_MS (6U) /* When the device is started by enabling its power supply for the first time i.e. on Power-on-Reset (POR), it needs at least 10 ms after the POR cycle is done to become ready. To ensure this value is big enough even with an inaccurate clock source, an additional 10 % error margin is added. */ -#define SX127X_POR_WAIT_FOR_READY_US (11U * US_PER_MS) +#define SX127X_POR_WAIT_FOR_READY_MS (11U) /* Internal functions */ static int _init_spi(sx127x_t *dev); @@ -116,12 +116,12 @@ int sx127x_reset(const sx127x_t *dev) /* set reset pin to the state that triggers manual reset */ gpio_write(dev->params.reset_pin, SX127X_POR_ACTIVE_LOGIC_LEVEL); - ztimer_sleep(ZTIMER_USEC, SX127X_MANUAL_RESET_SIGNAL_LEN_US); + ztimer_sleep(ZTIMER_MSEC, SX127X_MANUAL_RESET_SIGNAL_LEN_MS); /* Put reset pin in High-Z */ gpio_init(dev->params.reset_pin, GPIO_IN); - ztimer_sleep(ZTIMER_USEC, SX127X_MANUAL_RESET_WAIT_FOR_READY_US); + ztimer_sleep(ZTIMER_MSEC, SX127X_MANUAL_RESET_WAIT_FOR_READY_MS); } return 0; @@ -153,7 +153,7 @@ int sx127x_init(sx127x_t *dev) } /* wait for the device to become ready */ - ztimer_sleep(ZTIMER_USEC, SX127X_POR_WAIT_FOR_READY_US); + ztimer_sleep(ZTIMER_MSEC, SX127X_POR_WAIT_FOR_READY_MS); sx127x_reset(dev); From 8e675cd64f3bd73c56d23328ee9f9d205b81bbc7 Mon Sep 17 00:00:00 2001 From: Francisco Molina Date: Mon, 27 Sep 2021 10:21:36 +0200 Subject: [PATCH 3/3] makefiles/features_modules.inc.mk: add periph_rtc_rtt to init ignore --- makefiles/features_modules.inc.mk | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/makefiles/features_modules.inc.mk b/makefiles/features_modules.inc.mk index 79610756ba..de95d7c4d8 100644 --- a/makefiles/features_modules.inc.mk +++ b/makefiles/features_modules.inc.mk @@ -11,7 +11,12 @@ USEMODULE += $(PERIPH_FEATURES) # Add all USED periph_% init modules unless they are blacklisted ifneq (,$(filter periph_init, $(USEMODULE))) - PERIPH_MODULES := $(filter-out periph_init% periph_common,\ + PERIPH_IGNORE_MODULES := \ + periph_init% \ + periph_common \ + periph_rtc_rtt \ + # + PERIPH_MODULES := $(filter-out $(PERIPH_IGNORE_MODULES),\ $(filter periph_%,$(USEMODULE))) # Use simple expansion to avoid USEMODULE referencing itself PERIPH_INIT_MODULES := $(subst periph_,periph_init_,$(PERIPH_MODULES))