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_SILABS_XG21)
13 : #include <zephyr/dt-bindings/clock/silabs/xg21-clock.h>
14 : #elif defined(CONFIG_SOC_SILABS_XG22)
15 : #include <zephyr/dt-bindings/clock/silabs/xg22-clock.h>
16 : #elif defined(CONFIG_SOC_SILABS_XG23)
17 : #include <zephyr/dt-bindings/clock/silabs/xg23-clock.h>
18 : #elif defined(CONFIG_SOC_SILABS_XG24)
19 : #include <zephyr/dt-bindings/clock/silabs/xg24-clock.h>
20 : #elif defined(CONFIG_SOC_SILABS_XG27)
21 : #include <zephyr/dt-bindings/clock/silabs/xg27-clock.h>
22 : #elif defined(CONFIG_SOC_SILABS_XG28)
23 : #include <zephyr/dt-bindings/clock/silabs/xg28-clock.h>
24 : #elif defined(CONFIG_SOC_SILABS_XG29)
25 : #include <zephyr/dt-bindings/clock/silabs/xg29-clock.h>
26 : #endif
27 :
28 0 : struct silabs_clock_control_cmu_config {
29 0 : uint32_t bus_clock;
30 0 : uint8_t branch;
31 : };
32 :
33 0 : #define SILABS_DT_CLOCK_CFG(node_id) \
34 : { \
35 : .bus_clock = DT_CLOCKS_CELL(node_id, enable), \
36 : .branch = DT_CLOCKS_CELL(node_id, branch), \
37 : }
38 :
39 0 : #define SILABS_DT_INST_CLOCK_CFG(inst) \
40 : { \
41 : .bus_clock = DT_INST_CLOCKS_CELL(inst, enable), \
42 : .branch = DT_INST_CLOCKS_CELL(inst, branch), \
43 : }
44 :
45 : #endif /* ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_SILABS_H_ */
|