HALFRED  0.4.0
hal_clk.h
Go to the documentation of this file.
1 
10 #ifndef HAL_CLK_H
11 #define HAL_CLK_H
12 
13 #include <stdint.h>
14 #include "hal_config.h"
15 #include "hal_defs.h"
16 
26 
27 // -----------------------------------------------------------------------------
28 // PUBLIC TYPEDEFS
29 // -----------------------------------------------------------------------------
30 
33 
36  HALRESULT (*Init)(ClockController cc);
37  HALRESULT (*Deinit)(ClockController cc);
38  HALRESULT (*SetClockSource)(ClockController cc, int clk, int clk_src, uint32_t freq);
39  int (*GetClockSource)(ClockController cc, int clk);
40  uint32_t (*GetClockSourceFreq)(ClockController cc, int clk_src);
41  uint32_t (*SetClockFrequency)(ClockController cc, int clk, uint32_t freq);
42  uint32_t (*GetClockFrequency)(ClockController cc, int clk);
43 };
44 
45 
46 // -----------------------------------------------------------------------------
47 // PUBLIC API
48 // -----------------------------------------------------------------------------
49 
51 #define CC_DEFAULT_CLOCK 0
52 
58 #define CC_Init(cc) (cc)->Init(cc)
59 
65 #define CC_Deinit(cc) (cc)->Deinit(cc)
66 
76 #define CC_SetClockSource(cc, clk, clk_src, freq) (cc)->SetClockSource((cc), (clk), (clk_src), (freq))
77 
85 #define CC_GetClockSource(cc, clk) (cc)->GetClockSource((cc), (clk))
86 
93 #define CC_GetClockSourceFreq(cc, clk) (cc)->GetClockSourceFreq((cc), (clk))
94 
103 #define CC_SetClockFreq(cc, clk, freq) (cc)->SetClockFreq((cc), (clk), (freq))
104 
112 #define CC_GetClockFreq(cc, clk) (cc)->GetClockFrequency((cc), (clk))
113 
117 #endif /* HAL_CLK_H */
HALRESULT
Definition: hal_defs.h:16
struct ClockControllerDesc * ClockController
Clock controller handler.
Definition: hal_clk.h:32
Clock controller descriptor.
Definition: hal_clk.h:35
Various HAL definitions.