Skip to content

Commit aee98b9

Browse files
committed
[nrf fromlist] treewide: Replace clock api with clock api v2
Replaced old clock_control.h api with nrf_clock_control.h api. Old api is still available when CONFIG_CLOCK_CONTROL_NRF is set. Upstream PR #: 99290 Signed-off-by: Michal Frankiewicz <michal.frankiewicz@nordicsemi.no>
1 parent f63ddda commit aee98b9

61 files changed

Lines changed: 1177 additions & 357 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

drivers/audio/dmic_nrfx_pdm.c

Lines changed: 70 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,55 @@
1919
LOG_MODULE_REGISTER(dmic_nrfx_pdm, CONFIG_AUDIO_DMIC_LOG_LEVEL);
2020

2121
#define NODE_AUDIO_AUXPLL DT_NODELABEL(audio_auxpll)
22-
#define NODE_AUDIOPLL DT_NODELABEL(audiopll)
2322

2423
#if CONFIG_SOC_SERIES_NRF54H
2524
#define DMIC_NRFX_CLOCK_FREQ MHZ(16)
26-
#define DMIC_NRFX_AUDIO_CLOCK_FREQ DT_PROP_OR(NODE_AUDIOPLL, frequency, 0)
25+
#define DMIC_NRFX_AUDIO_CLOCK_FREQ DT_PROP_OR(DT_NODELABEL(audiopll), frequency, 0)
26+
#define AUDIO_NODE_DESC "frequency property to be set in the audiopll node."
27+
#define AUDIO_FREQUENCY_DEFINED DT_NODE_HAS_PROP(DT_NODELABEL(audiopll), frequency)
28+
2729
#elif DT_NODE_HAS_STATUS_OKAY(NODE_AUDIO_AUXPLL)
2830
#define AUXPLL_FREQUENCY_SETTING DT_PROP(NODE_AUDIO_AUXPLL, nordic_frequency)
2931
BUILD_ASSERT((AUXPLL_FREQUENCY_SETTING == NRF_AUXPLL_FREQ_DIV_AUDIO_48K) ||
30-
(AUXPLL_FREQUENCY_SETTING == NRF_AUXPLL_FREQ_DIV_AUDIO_44K1),
31-
"Unsupported Audio AUXPLL frequency selection for PDM");
32+
(AUXPLL_FREQUENCY_SETTING == NRF_AUXPLL_FREQ_DIV_AUDIO_44K1),
33+
"Unsupported Audio AUXPLL frequency selection for PDM");
3234

3335
#define DMIC_NRFX_AUDIO_CLOCK_FREQ CLOCK_CONTROL_NRF_AUXPLL_GET_FREQ(NODE_AUDIO_AUXPLL)
36+
#define DMIC_NRFX_CLOCK_FREQ MHZ(32)
37+
#define AUDIO_NODE_DESC "nordic_frequency property to be set in the audio_auxpll node."
38+
#define AUDIO_FREQUENCY_DEFINED DT_NODE_HAS_PROP(DT_NODELABEL(audio_auxpll), nordic_frequency)
3439

40+
#elif CONFIG_CLOCK_CONTROL_NRF
3541
#define DMIC_NRFX_CLOCK_FREQ MHZ(32)
42+
#define DMIC_NRFX_AUDIO_CLOCK_FREQ \
43+
DT_PROP_OR(DT_NODELABEL(aclk), clock_frequency, \
44+
DT_PROP_OR(DT_NODELABEL(clock), hfclkaudio_frequency, 0))
45+
#define AUDIO_NODE_DESC "hfclkaudio_frequency property to be set in the clock node."
46+
#define AUDIO_FREQUENCY_DEFINED DT_NODE_HAS_PROP(DT_NODELABEL(clock), hfclkaudio_frequency)
3647

37-
#else
48+
#elif defined(CONFIG_CLOCK_CONTROL_NRFX_HFCLKAUDIO)
3849
#define DMIC_NRFX_CLOCK_FREQ MHZ(32)
39-
#define DMIC_NRFX_AUDIO_CLOCK_FREQ DT_PROP_OR(DT_NODELABEL(aclk), clock_frequency, \
40-
DT_PROP_OR(DT_NODELABEL(clock), hfclkaudio_frequency, 0))
50+
#define DMIC_NRFX_AUDIO_CLOCK_FREQ \
51+
DT_PROP_OR(DT_NODELABEL(aclk), clock_frequency, \
52+
DT_PROP_OR(DT_NODELABEL(hfclkaudio), hfclkaudio_frequency, 0))
53+
#define AUDIO_NODE_DESC "hfclkaudio_frequency property to be set in the hfclkaudio node."
54+
#define AUDIO_FREQUENCY_DEFINED DT_NODE_HAS_PROP(DT_NODELABEL(hfclkaudio), hfclkaudio_frequency)
55+
56+
#elif defined(CONFIG_CLOCK_CONTROL_NRFX_XO24M)
57+
#define DMIC_NRFX_CLOCK_FREQ MHZ(32)
58+
#define DMIC_NRFX_AUDIO_CLOCK_FREQ \
59+
DT_PROP_OR(DT_NODELABEL(aclk), clock_frequency, \
60+
DT_PROP_OR(DT_NODELABEL(xo24m), clock_frequency, 0))
61+
#define AUDIO_NODE_DESC "clock_frequency property to be set in the xo24m node."
62+
#define AUDIO_FREQUENCY_DEFINED DT_NODE_HAS_PROP(DT_NODELABEL(xo24m), clock_frequency)
63+
64+
#elif defined(CONFIG_CLOCK_CONTROL_NRFX_XO)
65+
#define DMIC_NRFX_CLOCK_FREQ MHZ(32)
66+
#define DMIC_NRFX_AUDIO_CLOCK_FREQ \
67+
DT_PROP_OR(DT_NODELABEL(aclk), clock_frequency, \
68+
DT_PROP_OR(DT_NODELABEL(xo), clock_frequency, 0))
69+
#define AUDIO_NODE_DESC "clock_frequency property to be set in the xo node."
70+
#define AUDIO_FREQUENCY_DEFINED DT_NODE_HAS_PROP(DT_NODELABEL(xo), clock_frequency)
4171
#endif
4272

4373
struct dmic_nrfx_pdm_drv_data {
@@ -46,6 +76,9 @@ struct dmic_nrfx_pdm_drv_data {
4676
const struct device *audiopll_dev;
4777
#elif CONFIG_CLOCK_CONTROL_NRF
4878
struct onoff_manager *clk_mgr;
79+
#elif defined(CONFIG_CLOCK_CONTROL_NRFX_HFCLKAUDIO) || defined(CONFIG_CLOCK_CONTROL_NRFX_HFCLK) || \
80+
defined(CONFIG_CLOCK_CONTROL_NRFX_XO)
81+
const struct device *clk_dev;
4982
#endif
5083
struct onoff_client clk_cli;
5184
struct k_mem_slab *mem_slab;
@@ -91,6 +124,9 @@ static int request_clock(struct dmic_nrfx_pdm_drv_data *drv_data)
91124
return nrf_clock_control_request(drv_data->audiopll_dev, NULL, &drv_data->clk_cli);
92125
#elif CONFIG_CLOCK_CONTROL_NRF
93126
return onoff_request(drv_data->clk_mgr, &drv_data->clk_cli);
127+
#elif defined(CONFIG_CLOCK_CONTROL_NRFX_HFCLKAUDIO) || defined(CONFIG_CLOCK_CONTROL_NRFX_HFCLK) || \
128+
defined(CONFIG_CLOCK_CONTROL_NRFX_XO)
129+
return nrf_clock_control_request(drv_data->clk_dev, NULL, &drv_data->clk_cli);
94130
#else
95131
return -ENOTSUP;
96132
#endif
@@ -105,6 +141,9 @@ static int release_clock(struct dmic_nrfx_pdm_drv_data *drv_data)
105141
return nrf_clock_control_release(drv_data->audiopll_dev, NULL);
106142
#elif CONFIG_CLOCK_CONTROL_NRF
107143
return onoff_release(drv_data->clk_mgr);
144+
#elif defined(CONFIG_CLOCK_CONTROL_NRFX_HFCLKAUDIO) || defined(CONFIG_CLOCK_CONTROL_NRFX_HFCLK) || \
145+
defined(CONFIG_CLOCK_CONTROL_NRFX_XO)
146+
return nrf_clock_control_release(drv_data->clk_dev, NULL);
108147
#else
109148
return -ENOTSUP;
110149
#endif
@@ -476,18 +515,37 @@ static void init_clock_manager(const struct device *dev)
476515

477516
if (drv_cfg->clk_src == ACLK) {
478517
subsys = CLOCK_CONTROL_NRF_SUBSYS_HFAUDIO;
479-
} else
518+
} else {
480519
#endif
481-
{
482520
subsys = CLOCK_CONTROL_NRF_SUBSYS_HF;
521+
#if NRF_CLOCK_HAS_HFCLKAUDIO
483522
}
523+
#endif
484524

485525
drv_data->clk_mgr = z_nrf_clock_control_get_onoff(subsys);
486526
__ASSERT_NO_MSG(drv_data->clk_mgr != NULL);
527+
#elif defined(CONFIG_CLOCK_CONTROL_NRFX_HFCLKAUDIO) || defined(CONFIG_CLOCK_CONTROL_NRFX_HFCLK) || \
528+
defined(CONFIG_CLOCK_CONTROL_NRFX_XO)
529+
struct dmic_nrfx_pdm_drv_data *drv_data = dev->data;
530+
#if NRF_CLOCK_HAS_HFCLKAUDIO
531+
const struct dmic_nrfx_pdm_drv_cfg *drv_cfg = dev->config;
532+
533+
if (drv_cfg->clk_src == ACLK) {
534+
drv_data->clk_dev = DEVICE_DT_GET_ONE(nordic_nrf_clock_hfclkaudio);
535+
} else {
536+
#endif
537+
drv_data->clk_dev = DEVICE_DT_GET_ONE(COND_CODE_1(NRF_CLOCK_HAS_HFCLK,
538+
(nordic_nrf_clock_hfclk),
539+
(nordic_nrf_clock_xo)));
540+
#if NRF_CLOCK_HAS_HFCLKAUDIO
541+
}
542+
#endif
543+
544+
__ASSERT_NO_MSG(drv_data->clk_dev != NULL);
487545
#elif CONFIG_CLOCK_CONTROL_NRFS_AUDIOPLL
488546
struct dmic_nrfx_pdm_drv_data *drv_data = dev->data;
489547

490-
drv_data->audiopll_dev = DEVICE_DT_GET(NODE_AUDIOPLL);
548+
drv_data->audiopll_dev = DEVICE_DT_GET(DT_NODELABEL(audiopll));
491549
#endif
492550
}
493551

@@ -538,17 +596,8 @@ static const struct _dmic_ops dmic_ops = {
538596
NRF_DT_CHECK_NODE_HAS_REQUIRED_MEMORY_REGIONS(DT_DRV_INST(inst)); \
539597
BUILD_ASSERT(PDM_CLK_SRC(inst) != ACLK || NRF_PDM_HAS_SELECTABLE_CLOCK, \
540598
"Clock source ACLK is not available."); \
541-
BUILD_ASSERT(PDM_CLK_SRC(inst) != ACLK || \
542-
DT_NODE_HAS_PROP(DT_NODELABEL(clock), hfclkaudio_frequency) || \
543-
DT_NODE_HAS_PROP(DT_NODELABEL(aclk), clock_frequency) || \
544-
DT_NODE_HAS_PROP(NODE_AUDIOPLL, frequency) || \
545-
DT_NODE_HAS_PROP(NODE_AUDIO_AUXPLL, nordic_frequency), \
546-
"Clock source ACLK requires one following defined frequency " \
547-
"properties: " \
548-
"hfclkaudio-frequency in the nordic,nrf-clock node, " \
549-
"clock-frequency in the aclk node, " \
550-
"frequency in the audiopll node, " \
551-
"nordic-frequency in the audio_auxpll node"); \
599+
BUILD_ASSERT(PDM_CLK_SRC(inst) != ACLK || AUDIO_FREQUENCY_DEFINED, \
600+
"Clock source ACLK requires " AUDIO_NODE_DESC); \
552601
DEVICE_DT_INST_DEFINE(inst, pdm_nrfx_init##inst, NULL, &dmic_nrfx_pdm_data##inst, \
553602
&dmic_nrfx_pdm_cfg##inst, POST_KERNEL, \
554603
CONFIG_AUDIO_DMIC_INIT_PRIORITY, &dmic_ops);

drivers/clock_control/CMakeLists.txt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,23 +99,24 @@ zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_MSPM0 clock_control_mspm0.c)
9999
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NPCM clock_control_npcm.c)
100100
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NPCX clock_control_npcx.c)
101101
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF clock_control_nrf.c)
102-
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF2_COMMON clock_control_nrf2_common.c)
103102
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF54H_HFXO clock_control_nrf54h_hfxo.c)
103+
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRFS clock_control_nrfs_common.c)
104104
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRFS_AUDIOPLL clock_control_nrfs_audiopll.c)
105105
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRFS_LFCLK clock_control_nrfs_lfclk.c)
106106
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF_AUXPLL clock_control_nrf_auxpll.c)
107-
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF_COMMON clock_control_nrf_common.c)
107+
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRFX clock_control_nrf_common.c)
108+
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRFX_DRIVER_CALIBRATION nrf_clock_calibration.c)
108109
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF_DRIVER_CALIBRATION nrf_clock_calibration.c)
109110
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF_FLL16M clock_control_nrf_fll16m.c)
110-
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF_HFCLK clock_control_nrf_hfclk.c)
111-
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF_HFCLK192M clock_control_nrf_hfclk192m.c)
112-
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF_HFCLKAUDIO clock_control_nrf_hfclkaudio.c)
111+
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRFX_HFCLK clock_control_nrf_hfclk.c)
112+
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRFX_HFCLK192M clock_control_nrf_hfclk192m.c)
113+
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRFX_HFCLKAUDIO clock_control_nrf_hfclkaudio.c)
113114
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF_HSFLL_GLOBAL clock_control_nrf_hsfll_global.c)
114115
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF_HSFLL_LOCAL clock_control_nrf_hsfll_local.c)
115116
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF_IRON_HSFLL_LOCAL clock_control_nrf_iron_hsfll_local.c)
116-
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF_LFCLK clock_control_nrf_lfclk.c)
117-
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF_XO clock_control_nrf_xo.c)
118-
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF_XO24M clock_control_nrf_xo24m.c)
117+
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRFX_LFCLK clock_control_nrf_lfclk.c)
118+
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRFX_XO clock_control_nrf_xo.c)
119+
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRFX_XO24M clock_control_nrf_xo24m.c)
119120
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NUMAKER_SCC clock_control_numaker_scc.c)
120121
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NXP_MC_CGM clock_control_nxp_mc_cgm.c)
121122
zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NXP_S32 clock_control_nxp_s32.c)

0 commit comments

Comments
 (0)