1 /*
2  * Copyright (c) 2024 Espressif Systems (Shanghai) Co., Ltd.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_ESP32C2_H_
8 #define ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_ESP32C2_H_
9 
10 /* Supported CPU clock Sources */
11 #define ESP32_CPU_CLK_SRC_XTAL 0U
12 #define ESP32_CPU_CLK_SRC_PLL  1U
13 #define ESP32_CLK_SRC_RC_FAST  2U
14 
15 /* Supported CPU frequencies */
16 #define ESP32_CLK_CPU_PLL_40M      40000000
17 #define ESP32_CLK_CPU_PLL_60M      60000000
18 #define ESP32_CLK_CPU_PLL_80M      80000000
19 #define ESP32_CLK_CPU_PLL_120M    120000000
20 #define ESP32_CLK_CPU_RC_FAST_FREQ  8750000
21 
22 /* Supported XTAL frequencies */
23 #define ESP32_CLK_XTAL_26M 26000000
24 #define ESP32_CLK_XTAL_32M 32000000
25 #define ESP32_CLK_XTAL_40M 40000000
26 
27 /* Supported RTC fast clock sources */
28 #define ESP32_RTC_FAST_CLK_SRC_XTAL_D2 0
29 #define ESP32_RTC_FAST_CLK_SRC_RC_FAST 1
30 
31 /* Supported RTC slow clock sources */
32 #define ESP32_RTC_SLOW_CLK_SRC_RC_SLOW      0
33 #define ESP32_RTC_SLOW_CLK_SRC_OSC_SLOW     1
34 #define ESP32_RTC_SLOW_CLK_SRC_RC_FAST_D256 2
35 
36 /* RTC slow clock frequencies */
37 #define ESP32_RTC_SLOW_CLK_SRC_RC_SLOW_FREQ      136000
38 #define ESP32_RTC_SLOW_CLK_SRC_OSC_SLOW_FREQ      32768
39 #define ESP32_RTC_SLOW_CLK_SRC_RC_FAST_D256_FREQ  68359
40 
41 /* Modules IDs
42  * These IDs are actually offsets in CLK and RST Control registers.
43  * These IDs shouldn't be changed unless there is a Hardware change
44  * from Espressif.
45  *
46  * Basic Modules
47  * Registers: DPORT_PERIP_CLK_EN_REG, DPORT_PERIP_RST_EN_REG
48  */
49 #define ESP32_LEDC_MODULE               0
50 #define ESP32_UART0_MODULE              1
51 #define ESP32_UART1_MODULE              2
52 #define ESP32_I2C0_MODULE               3
53 #define ESP32_TIMG0_MODULE              4
54 #define ESP32_TIMG1_MODULE              5  /* No timg1 on esp32c2, TODO: IDF-3825 */
55 #define ESP32_UHCI0_MODULE              6
56 #define ESP32_SPI_MODULE                7  /* SPI1 */
57 #define ESP32_SPI2_MODULE               8  /* SPI2 */
58 #define ESP32_RNG_MODULE                9
59 #define ESP32_WIFI_MODULE               10
60 #define ESP32_BT_MODULE                 11
61 #define ESP32_WIFI_BT_COMMON_MODULE     12
62 #define ESP32_BT_BASEBAND_MODULE        13
63 #define ESP32_BT_LC_MODULE              14
64 #define ESP32_AES_MODULE                15
65 #define ESP32_SHA_MODULE                16
66 #define ESP32_ECC_MODULE                17
67 #define ESP32_GDMA_MODULE               18
68 #define ESP32_SYSTIMER_MODULE           19
69 #define ESP32_SARADC_MODULE             20
70 #define ESP32_TEMPSENSOR_MODULE         21
71 #define ESP32_MODEM_RPA_MODULE          22
72 #define ESP32_MODULE_MAX                23
73 
74 #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_ESP32C2_H_ */
75