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