@@ -42,23 +42,57 @@ struct adsp_cpu_clock_info *adsp_cpu_clocks_get(void);
42
42
#define ADSP_CLKCTL CAVS_SHIM.clkctl
43
43
#endif
44
44
45
- #define ADSP_CPU_CLOCK_FREQ_ENC DT_PROP(DT_NODELABEL(clkctl), adsp_clkctl_freq_enc)
46
- #define ADSP_CPU_CLOCK_FREQ_MASK DT_PROP(DT_NODELABEL(clkctl), adsp_clkctl_freq_mask)
47
- #define ADSP_CPU_CLOCK_FREQ_LEN DT_PROP_LEN(DT_NODELABEL(clkctl), adsp_clkctl_freq_enc)
45
+ #define ADSP_CPU_CLOCK_FREQ_ENC DT_PROP(DT_NODELABEL(clkctl), adsp_clkctl_freq_enc)
46
+ #define ADSP_CPU_CLOCK_FREQ_MASK DT_PROP(DT_NODELABEL(clkctl), adsp_clkctl_freq_mask)
47
+ #define ADSP_CPU_CLOCK_FREQ_LEN DT_PROP_LEN(DT_NODELABEL(clkctl), adsp_clkctl_freq_enc)
48
48
49
- #define ADSP_CPU_CLOCK_FREQ_DEFAULT DT_PROP(DT_NODELABEL(clkctl), adsp_clkctl_freq_default)
50
- #define ADSP_CPU_CLOCK_FREQ_LOWEST DT_PROP(DT_NODELABEL(clkctl), adsp_clkctl_freq_lowest)
49
+ #define ADSP_CPU_CLOCK_FREQ_DEFAULT DT_PROP(DT_NODELABEL(clkctl), adsp_clkctl_freq_default)
50
+ #define ADSP_CPU_CLOCK_FREQ_LOWEST DT_PROP(DT_NODELABEL(clkctl), adsp_clkctl_freq_lowest)
51
51
52
- #define ADSP_CPU_CLOCK_FREQ (name ) DT_PROP(DT_NODELABEL(clkctl), adsp_clkctl_clk_##name)
52
+ #define ADSP_CPU_CLOCK_FREQ (name ) DT_PROP(DT_NODELABEL(clkctl), adsp_clkctl_clk_##name)
53
53
54
- #if DT_PROP (DT_NODELABEL (clkctl ), wovcro_supported )
55
- #define ADSP_CLOCK_HAS_WOVCRO
54
+ #define ADSP_CLOCK_HAS_WOVCRO DT_PROP(DT_NODELABEL(clkctl), wovcro_supported)
55
+
56
+ #define ADSP_CPU_CLOCK_FREQ_LPRO ADSP_CPU_CLOCK_FREQ(lpro)
57
+ #define ADSP_CPU_CLOCK_FREQ_HPRO ADSP_CPU_CLOCK_FREQ(hpro)
58
+ #if ADSP_CLOCK_HAS_WOVCRO
59
+ #define ADSP_CPU_CLOCK_FREQ_WOVCRO ADSP_CPU_CLOCK_FREQ(wovcro)
60
+ #endif
61
+
62
+
63
+ /* Clock sources used by dai */
64
+ #define ADSP_CLOCK_SOURCE_XTAL_OSC 0
65
+ #if DT_NODE_HAS_STATUS (DT_NODELABEL (audioclk ), okay )
66
+ #define ADSP_CLOCK_SOURCE_AUDIO_CARDINAL 1
67
+ #endif
68
+ #if DT_NODE_HAS_STATUS (DT_NODELABEL (pllclk ), okay )
69
+ #define ADSP_CLOCK_SOURCE_AUDIO_PLL_FIXED 2
56
70
#endif
57
71
58
- #define ADSP_CPU_CLOCK_FREQ_LPRO ADSP_CPU_CLOCK_FREQ(lpro)
59
- #define ADSP_CPU_CLOCK_FREQ_HPRO ADSP_CPU_CLOCK_FREQ(hpro)
60
- #ifdef ADSP_CLOCK_HAS_WOVCRO
61
- #define ADSP_CPU_CLOCK_FREQ_WOVCRO ADSP_CPU_CLOCK_FREQ(wovcro)
72
+ #define ADSP_CLOCK_SOURCE_MLCK_INPUT 3
73
+ #if ADSP_CLOCK_HAS_WOVCRO
74
+ #define ADSP_CLOCK_SOURCE_WOV_RING_OSC 4
62
75
#endif
76
+ #define ADSP_CLOCK_SOURCE_COUNT 5
77
+
78
+ struct adsp_clock_source_desc {
79
+ uint32_t frequency ;
80
+ };
81
+
82
+ /** @brief Check if clock source is supported
83
+ *
84
+ * @param freq Clock frequency index
85
+ *
86
+ * @return true if clock source is supported
87
+ */
88
+ bool adsp_clock_source_is_supported (int source );
89
+
90
+ /** @brief Get clock source frequency
91
+ *
92
+ * @param freq Clock frequency index
93
+ *
94
+ * @return frequency on success, 0 on error
95
+ */
96
+ uint32_t adsp_clock_source_frequency (int source );
63
97
64
98
#endif /* ZEPHYR_SOC_INTEL_ADSP_CAVS_CLK_H_ */
0 commit comments