Loading...
Searching...
No Matches
config.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2020 Inria
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser General
5 * Public License v2.1. See the file LICENSE in the top level directory for more
6 * details.
7 */
8
9#pragma once
10
21
22#include "board.h"
23#include "periph_conf.h"
24
25#include "ztimer.h"
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31/*
32 * @brief Use periph_timer as the base timer for ZTIMER_USEC
33 */
34#define CONFIG_ZTIMER_USEC_TYPE_PERIPH_TIMER (1)
35
36/* for ZTIMER_USEC, use xtimer configuration if available and no ztimer
37 * specific configuration is set. */
38#if CONFIG_ZTIMER_USEC_TYPE_PERIPH_TIMER
39# ifndef CONFIG_ZTIMER_USEC_DEV
40# ifdef XTIMER_DEV
41# define CONFIG_ZTIMER_USEC_DEV XTIMER_DEV
42# endif
43# endif
44# ifndef CONFIG_ZTIMER_USEC_BASE_FREQ
45# ifdef XTIMER_HZ
46# define CONFIG_ZTIMER_USEC_BASE_FREQ XTIMER_HZ
47# endif
48# endif
49# ifndef CONFIG_ZTIMER_USEC_WIDTH
50# ifdef XTIMER_WIDTH
51# define CONFIG_ZTIMER_USEC_WIDTH XTIMER_WIDTH
52# endif
53# endif
54#endif
55
59#ifndef CONFIG_ZTIMER_USEC_DEV
60#define CONFIG_ZTIMER_USEC_DEV (TIMER_DEV(0))
61#endif
62
66#ifndef CONFIG_ZTIMER_LPTIMER_WIDTH
67#define CONFIG_ZTIMER_LPTIMER_WIDTH (32)
68#endif
69
79#ifndef CONFIG_ZTIMER_USEC_MIN
80#define CONFIG_ZTIMER_USEC_MIN (10)
81#endif
82
86#ifndef CONFIG_ZTIMER_USEC_WIDTH
87# if (TIMER_0_MAX_VALUE) == 0xffff
88# define CONFIG_ZTIMER_USEC_WIDTH (16)
89# elif (TIMER_0_MAX_VALUE) == 0xffffffUL
90# define CONFIG_ZTIMER_USEC_WIDTH (24)
91# else
92# define CONFIG_ZTIMER_USEC_WIDTH (32)
93# endif
94#endif
95
99#ifndef CONFIG_ZTIMER_USEC_BASE_FREQ
100#define CONFIG_ZTIMER_USEC_BASE_FREQ (1000000LU)
101#endif
102
106#ifdef MODULE_ZTIMER_PERIPH_RTT
107# define CONFIG_ZTIMER_MSEC_BASE_FREQ (RTT_FREQUENCY)
108# else
109# define CONFIG_ZTIMER_MSEC_BASE_FREQ (CONFIG_ZTIMER_USEC_BASE_FREQ)
110#endif /* MODULE_ZTIMER_PERIPH_RTT */
111
115#ifndef CONFIG_ZTIMER_TIMER_BLOCK_PM_MODE
116# ifdef CONFIG_ZTIMER_USEC_REQUIRED_PM_MODE
117# define CONFIG_ZTIMER_TIMER_BLOCK_PM_MODE CONFIG_ZTIMER_USEC_REQUIRED_PM_MODE
118# else
119# define CONFIG_ZTIMER_TIMER_BLOCK_PM_MODE ZTIMER_CLOCK_NO_REQUIRED_PM_MODE
120# endif
121#endif
122
126#ifndef CONFIG_ZTIMER_LPTIMER_BLOCK_PM_MODE
127# define CONFIG_ZTIMER_LPTIMER_BLOCK_PM_MODE ZTIMER_CLOCK_NO_REQUIRED_PM_MODE
128#endif
129
133#ifndef CONFIG_ZTIMER_RTT_BLOCK_PM_MODE
134# ifdef CONFIG_ZTIMER_MSEC_REQUIRED_PM_MODE
135# define CONFIG_ZTIMER_RTT_BLOCK_PM_MODE CONFIG_ZTIMER_MSEC_REQUIRED_PM_MODE
136# else
137# define CONFIG_ZTIMER_RTT_BLOCK_PM_MODE ZTIMER_CLOCK_NO_REQUIRED_PM_MODE
138# endif
139#endif
140
144#ifndef CONFIG_ZTIMER_RTC_BLOCK_PM_MODE
145# ifdef CONFIG_ZTIMER_SEC_REQUIRED_PM_MODE
146# define CONFIG_ZTIMER_RTC_BLOCK_PM_MODE CONFIG_ZTIMER_SEC_REQUIRED_PM_MODE
147# else
148# define CONFIG_ZTIMER_RTC_BLOCK_PM_MODE ZTIMER_CLOCK_NO_REQUIRED_PM_MODE
149# endif
150#endif
151
161#ifndef CONFIG_ZTIMER_USEC_ADJUST_CLOCK_START
162#define CONFIG_ZTIMER_USEC_ADJUST_CLOCK_START 0
163#endif
164
172#ifndef CONFIG_ZTIMER_USEC_ADJUST_SET
173#define CONFIG_ZTIMER_USEC_ADJUST_SET 0
174#endif
175
186#ifndef CONFIG_ZTIMER_USEC_ADJUST_SLEEP
187#define CONFIG_ZTIMER_USEC_ADJUST_SLEEP 0
188#endif
189
197#ifndef CONFIG_ZTIMER_AUTO_ADJUST_SETTLE
198#define CONFIG_ZTIMER_AUTO_ADJUST_SETTLE 0
199#endif
200
201#ifdef __cplusplus
202}
203#endif
204
ztimer API