Line data Source code
1 0 : /*
2 : * Copyright (c) 2023 Renesas Electronics Corporation
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : #ifndef ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_SMARTBOND_CLOCK_CONTROL_H_
8 : #define ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_SMARTBOND_CLOCK_CONTROL_H_
9 :
10 : #include <zephyr/device.h>
11 : #include <zephyr/drivers/clock_control.h>
12 :
13 : #ifdef __cplusplus
14 : extern "C" {
15 : #endif
16 :
17 : /** @brief Smartbond clocks
18 : *
19 : * Enum oscillators and clocks.
20 : */
21 0 : enum smartbond_clock {
22 : /* Not a clock, used for error case only */
23 : SMARTBOND_CLK_NONE,
24 : SMARTBOND_CLK_RC32K,
25 : SMARTBOND_CLK_RCX,
26 : SMARTBOND_CLK_XTAL32K,
27 : SMARTBOND_CLK_RC32M,
28 : SMARTBOND_CLK_XTAL32M,
29 : SMARTBOND_CLK_PLL96M,
30 : SMARTBOND_CLK_USB,
31 : SMARTBOND_CLK_DIVN_32M,
32 : SMARTBOND_CLK_HCLK,
33 : SMARTBOND_CLK_LP_CLK,
34 : SMARTBOND_CLK_SYS_CLK,
35 : };
36 :
37 : /** @brief Selects system clock
38 : *
39 : * @param sys_clk system clock to switch to.
40 : *
41 : * @return 0 on success
42 : */
43 : int z_smartbond_select_sys_clk(enum smartbond_clock sys_clk);
44 :
45 : /** @brief Selects low power clock
46 : *
47 : * @param lp_clk low power clock to switch to.
48 : *
49 : * @return 0 on success
50 : */
51 : int z_smartbond_select_lp_clk(enum smartbond_clock lp_clk);
52 :
53 : #ifdef __cplusplus
54 : }
55 : #endif
56 :
57 : #endif /* ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_SMARTBOND_CLOCK_CONTROL_H_ */
|