1 /* 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 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_ */ 58