1 /* 2 * Copyright (c) 2024 Silicon Laboratories Inc. 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_SILABS_H_ 8 #define ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_SILABS_H_ 9 10 #include <zephyr/drivers/clock_control.h> 11 12 #if defined(CONFIG_SOC_SERIES_EFR32MG21) 13 #include <zephyr/dt-bindings/clock/silabs/xg21-clock.h> 14 #elif defined(CONFIG_SOC_SERIES_EFR32BG22) 15 #include <zephyr/dt-bindings/clock/silabs/xg22-clock.h> 16 #elif defined(CONFIG_SOC_SERIES_EFR32ZG23) 17 #include <zephyr/dt-bindings/clock/silabs/xg23-clock.h> 18 #elif defined(CONFIG_SOC_SERIES_EFR32MG24) 19 #include <zephyr/dt-bindings/clock/silabs/xg24-clock.h> 20 #elif defined(CONFIG_SOC_SERIES_EFR32BG27) 21 #include <zephyr/dt-bindings/clock/silabs/xg27-clock.h> 22 #elif defined(CONFIG_SOC_SERIES_EFR32BG29) || defined(CONFIG_SOC_SERIES_EFR32MG29) 23 #include <zephyr/dt-bindings/clock/silabs/xg29-clock.h> 24 #endif 25 26 struct silabs_clock_control_cmu_config { 27 uint32_t bus_clock; 28 uint8_t branch; 29 }; 30 31 #define SILABS_DT_CLOCK_CFG(node_id) \ 32 { \ 33 .bus_clock = DT_CLOCKS_CELL(node_id, enable), \ 34 .branch = DT_CLOCKS_CELL(node_id, branch), \ 35 } 36 37 #define SILABS_DT_INST_CLOCK_CFG(inst) \ 38 { \ 39 .bus_clock = DT_INST_CLOCKS_CELL(inst, enable), \ 40 .branch = DT_INST_CLOCKS_CELL(inst, branch), \ 41 } 42 43 #endif /* ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_SILABS_H_ */ 44