Line data Source code
1 0 : /* 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 : #endif 23 : 24 0 : struct silabs_clock_control_cmu_config { 25 0 : uint32_t bus_clock; 26 0 : uint8_t branch; 27 : }; 28 : 29 0 : #define SILABS_DT_CLOCK_CFG(node_id) \ 30 : { \ 31 : .bus_clock = DT_CLOCKS_CELL(node_id, enable), \ 32 : .branch = DT_CLOCKS_CELL(node_id, branch), \ 33 : } 34 : 35 0 : #define SILABS_DT_INST_CLOCK_CFG(inst) \ 36 : { \ 37 : .bus_clock = DT_INST_CLOCKS_CELL(inst, enable), \ 38 : .branch = DT_INST_CLOCKS_CELL(inst, branch), \ 39 : } 40 : 41 : #endif /* ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_SILABS_H_ */