Zephyr API Documentation 4.1.99
A Scalable Open Source RTOS
 4.1.99
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ch32v00x-clocks.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Michael Hope
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_CH32V00X_CLOCKS_H_
8#define ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_CH32V00X_CLOCKS_H_
9
10#define CH32V00X_HB_PCENR_OFFSET 0
11#define CH32V00X_PB2_PCENR_OFFSET 1
12#define CH32V00X_PB1_PCENR_OFFSET 2
13
14#define CH32V00X_CLOCK_CONFIG(bus, bit) (((CH32V00X_##bus##_PCENR_OFFSET) << 5) | (bit))
15
16#define CH32V00X_CLOCK_DMA1 CH32V00X_CLOCK_CONFIG(HB, 0)
17#define CH32V00X_CLOCK_SRAM CH32V00X_CLOCK_CONFIG(HB, 2)
18
19#define CH32V00X_CLOCK_AFIO CH32V00X_CLOCK_CONFIG(PB2, 0)
20#define CH32V00X_CLOCK_IOPA CH32V00X_CLOCK_CONFIG(PB2, 2)
21#define CH32V00X_CLOCK_IOPB CH32V00X_CLOCK_CONFIG(PB2, 3)
22#define CH32V00X_CLOCK_IOPC CH32V00X_CLOCK_CONFIG(PB2, 4)
23#define CH32V00X_CLOCK_IOPD CH32V00X_CLOCK_CONFIG(PB2, 5)
24#define CH32V00X_CLOCK_ADC1 CH32V00X_CLOCK_CONFIG(PB2, 9)
25#define CH32V00X_CLOCK_TIM1 CH32V00X_CLOCK_CONFIG(PB2, 11)
26#define CH32V00X_CLOCK_SPI1 CH32V00X_CLOCK_CONFIG(PB2, 12)
27#define CH32V00X_CLOCK_USART2 CH32V00X_CLOCK_CONFIG(PB2, 13)
28#define CH32V00X_CLOCK_USART1 CH32V00X_CLOCK_CONFIG(PB2, 14)
29
30#define CH32V00X_CLOCK_TIM2 CH32V00X_CLOCK_CONFIG(PB1, 0)
31#define CH32V00X_CLOCK_TIM3 CH32V00X_CLOCK_CONFIG(PB1, 2)
32#define CH32V00X_CLOCK_WWDG CH32V00X_CLOCK_CONFIG(PB1, 11)
33#define CH32V00X_CLOCK_I2C1 CH32V00X_CLOCK_CONFIG(PB1, 21)
34#define CH32V00X_CLOCK_PWR CH32V00X_CLOCK_CONFIG(PB1, 28)
35
36#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_CH32V00X_CLOCKS_H_ */