Zephyr Project API 4.3.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
bflb_bl61x_clock.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025 MASSDRIVER EI (massdriver.space)
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_BFLB_BL61X_CLOCK_H_
8#define ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_BFLB_BL61X_CLOCK_H_
9
10#include "bflb_clock_common.h"
11
12#define BL61X_CLKID_CLK_ROOT BFLB_CLKID_CLK_ROOT
13#define BL61X_CLKID_CLK_RC32M BFLB_CLKID_CLK_RC32M
14#define BL61X_CLKID_CLK_CRYSTAL BFLB_CLKID_CLK_CRYSTAL
15#define BL61X_CLKID_CLK_BCLK BFLB_CLKID_CLK_BCLK
16#define BL61X_CLKID_CLK_WIFIPLL 4
17#define BL61X_CLKID_CLK_AUPLL 5
18#define BL61X_CLKID_CLK_160M 6
19
20#define BL61X_AUPLL_DIV2 0
21#define BL61X_AUPLL_DIV1 1
22#define BL61X_WIFIPLL_240MHz 2
23#define BL61X_WIFIPLL_320MHz 3
24
25/* Overclocked
26 * BCLK divider MUST be set so BCLK is 80MHz or slower to operate safely,
27 * However BCLK of up to 130 MHz have been observed to be tolerated.
28 * Drivers are able to compose a clock viable for them from clock sources (typically BCLK)
29 * so no additional settings are required for the peripherals.
30 * Breaks most complex peripherals (Wifi)
31 * and peripherals that can use the peripheral bus as master (DMA and DMA-using drivers).
32 * Flash input clock must be tuned to fit the new clocks.
33 */
34
35/* Overclock PLL to 480MHz for div ID 1 and 360MHz for div ID 2
36 * Safe (default) core voltages are used (1.10v).
37 */
38#define BL61X_WIFIPLL_OC_360MHz (2 | 0x10)
39#define BL61X_WIFIPLL_OC_480MHz (3 | 0x10)
40
41/* Overclock PLL to 640MHz for div ID 1 and 480MHz for div ID 2.
42 * This is the absolute maximum the PLL can provide.
43 */
44#define BL61X_WIFIPLL_OCMAX_480MHz (2 | 0x20)
45#define BL61X_WIFIPLL_OCMAX_640MHz (3 | 0x20)
46
47#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_BFLB_BL61X_CLOCK_H_ */