Line data Source code
1 0 : /*
2 : * Copyright (c) 2023 Gerson Fernando Budke <nandojve@gmail.com
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : #ifndef ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_ATMEL_SAM_PMC_H_
8 : #define ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_ATMEL_SAM_PMC_H_
9 :
10 : #include <zephyr/drivers/clock_control.h>
11 : #include <zephyr/dt-bindings/clock/atmel_sam_pmc.h>
12 :
13 0 : #define SAM_DT_PMC_CONTROLLER DEVICE_DT_GET(DT_NODELABEL(pmc))
14 :
15 0 : struct atmel_sam_pmc_config {
16 0 : uint32_t clock_type;
17 0 : uint32_t peripheral_id;
18 : };
19 :
20 0 : #define SAM_DT_CLOCK_PMC_CFG(clock_id, node_id) \
21 : { \
22 : .clock_type = DT_CLOCKS_CELL_BY_IDX(node_id, clock_id, clock_type), \
23 : .peripheral_id = DT_CLOCKS_CELL_BY_IDX(node_id, clock_id, peripheral_id)\
24 : }
25 :
26 0 : #define SAM_DT_INST_CLOCK_PMC_CFG(inst) SAM_DT_CLOCK_PMC_CFG(0, DT_DRV_INST(inst))
27 :
28 0 : #define SAM_DT_CLOCKS_PMC_CFG(node_id) \
29 : { \
30 : LISTIFY(DT_NUM_CLOCKS(node_id), \
31 : SAM_DT_CLOCK_PMC_CFG, (,), node_id) \
32 : }
33 :
34 0 : #define SAM_DT_INST_CLOCKS_PMC_CFG(inst) \
35 : SAM_DT_CLOCKS_PMC_CFG(DT_DRV_INST(inst))
36 :
37 : #endif /* ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_ATMEL_SAM_PMC_H_ */
|