Skip to content

Commit 2d95f81

Browse files
committed
[nrf fromlist] treewide: Replace onoff manager api with nrf_clock_control api.
Replaced onoff manager api with nrf_clock_control api wherever z_nrf_clock_control_get_onoff was used. Upstream PR #: 99290 Signed-off-by: Michal Frankiewicz <michal.frankiewicz@nordicsemi.no>
1 parent 9b35aba commit 2d95f81

File tree

14 files changed

+145
-148
lines changed

14 files changed

+145
-148
lines changed

drivers/audio/dmic_nrfx_pdm.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include <zephyr/audio/dmic.h>
1010
#include <zephyr/drivers/clock_control/nrf_clock_control.h>
1111
#include <zephyr/drivers/pinctrl.h>
12-
#include <zephyr/dt-bindings/clock/nrf-auxpll.h>
12+
#include <zephyr/dt-bindings/clock/nr-fauxpll.h>
1313
#include <soc.h>
1414
#include <dmm.h>
1515
#include <nrfx_pdm.h>
@@ -42,7 +42,7 @@ struct dmic_nrfx_pdm_drv_data {
4242
#if CONFIG_CLOCK_CONTROL_NRFS_AUDIOPLL || DT_NODE_HAS_STATUS_OKAY(NODE_AUDIO_AUXPLL)
4343
const struct device *audiopll_dev;
4444
#elif CONFIG_CLOCK_CONTROL_NRF
45-
struct onoff_manager *clk_mgr;
45+
const struct device *clk_dev;
4646
#endif
4747
struct onoff_client clk_cli;
4848
struct k_mem_slab *mem_slab;
@@ -87,7 +87,7 @@ static int request_clock(struct dmic_nrfx_pdm_drv_data *drv_data)
8787
#if CONFIG_CLOCK_CONTROL_NRFS_AUDIOPLL || DT_NODE_HAS_STATUS_OKAY(NODE_AUDIO_AUXPLL)
8888
return nrf_clock_control_request(drv_data->audiopll_dev, NULL, &drv_data->clk_cli);
8989
#elif CONFIG_CLOCK_CONTROL_NRF
90-
return onoff_request(drv_data->clk_mgr, &drv_data->clk_cli);
90+
return nrf_clock_control_request(drv_data->clk_dev, NULL, &drv_data->clk_cli);
9191
#else
9292
return -ENOTSUP;
9393
#endif
@@ -101,7 +101,7 @@ static int release_clock(struct dmic_nrfx_pdm_drv_data *drv_data)
101101
#if CONFIG_CLOCK_CONTROL_NRFS_AUDIOPLL || DT_NODE_HAS_STATUS_OKAY(NODE_AUDIO_AUXPLL)
102102
return nrf_clock_control_release(drv_data->audiopll_dev, NULL);
103103
#elif CONFIG_CLOCK_CONTROL_NRF
104-
return onoff_release(drv_data->clk_mgr);
104+
return nrf_clock_control_release(drv_data->clk_dev, NULL);
105105
#else
106106
return -ENOTSUP;
107107
#endif
@@ -468,21 +468,21 @@ static void init_clock_manager(const struct device *dev)
468468
struct dmic_nrfx_pdm_drv_data *drv_data = dev->data;
469469
drv_data->audiopll_dev = DEVICE_DT_GET(NODE_AUDIO_AUXPLL);
470470
#elif CONFIG_CLOCK_CONTROL_NRF
471-
clock_control_subsys_t subsys;
472471
struct dmic_nrfx_pdm_drv_data *drv_data = dev->data;
473472
#if NRF_CLOCK_HAS_HFCLKAUDIO
474473
const struct dmic_nrfx_pdm_drv_cfg *drv_cfg = dev->config;
475474

476475
if (drv_cfg->clk_src == ACLK) {
477-
subsys = CLOCK_CONTROL_NRF_SUBSYS_HFAUDIO;
476+
drv_data->clk_dev = DEVICE_DT_GET_ONE(nordic_nrf_clock_hfclkaudio);
478477
} else
479478
#endif
480479
{
481-
subsys = CLOCK_CONTROL_NRF_SUBSYS_HF;
480+
drv_data->clk_dev = DEVICE_DT_GET_ONE(COND_CODE_1((NRF_CLOCK_HAS_HFCLK),
481+
(nordic_nrf_clock_hfclk),
482+
(nordic_nrf_clock_xo)));
482483
}
483484

484-
drv_data->clk_mgr = z_nrf_clock_control_get_onoff(subsys);
485-
__ASSERT_NO_MSG(drv_data->clk_mgr != NULL);
485+
__ASSERT_NO_MSG(drv_data->clk_dev != NULL);
486486
#elif CONFIG_CLOCK_CONTROL_NRFS_AUDIOPLL
487487
struct dmic_nrfx_pdm_drv_data *drv_data = dev->data;
488488

drivers/i2s/i2s_nrf_tdm.c

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,6 @@ struct tdm_drv_cfg {
106106
};
107107

108108
struct tdm_drv_data {
109-
#if CONFIG_CLOCK_CONTROL_NRF
110-
struct onoff_manager *clk_mgr;
111-
#endif
112109
struct onoff_client clk_cli;
113110
struct stream_cfg tx;
114111
struct k_msgq tx_queue;
@@ -129,9 +126,7 @@ struct tdm_drv_data {
129126

130127
static int audio_clock_request(struct tdm_drv_data *drv_data)
131128
{
132-
#if DT_NODE_HAS_STATUS_OKAY(NODE_ACLK) && CONFIG_CLOCK_CONTROL_NRF
133-
return onoff_request(drv_data->clk_mgr, &drv_data->clk_cli);
134-
#elif DT_NODE_HAS_STATUS_OKAY(NODE_ACLK) && CONFIG_CLOCK_CONTROL_NRFS_AUDIOPLL
129+
#if DT_NODE_HAS_STATUS_OKAY(NODE_ACLK) && CONFIG_CLOCK_CONTROL_NRFS_AUDIOPLL
135130
return nrf_clock_control_request(audiopll, &aclk_spec, &drv_data->clk_cli);
136131
#else
137132
(void)drv_data;
@@ -142,9 +137,7 @@ static int audio_clock_request(struct tdm_drv_data *drv_data)
142137

143138
static int audio_clock_release(struct tdm_drv_data *drv_data)
144139
{
145-
#if DT_NODE_HAS_STATUS_OKAY(NODE_ACLK) && CONFIG_CLOCK_CONTROL_NRF
146-
return onoff_release(drv_data->clk_mgr);
147-
#elif DT_NODE_HAS_STATUS_OKAY(NODE_ACLK) && CONFIG_CLOCK_CONTROL_NRFS_AUDIOPLL
140+
#if DT_NODE_HAS_STATUS_OKAY(NODE_ACLK) && CONFIG_CLOCK_CONTROL_NRFS_AUDIOPLL
148141
(void)drv_data;
149142

150143
return nrf_clock_control_release(audiopll, &aclk_spec);
@@ -1110,20 +1103,6 @@ static void data_handler(const struct device *dev, const tdm_buffers_t *released
11101103
}
11111104
}
11121105

1113-
static void clock_manager_init(const struct device *dev)
1114-
{
1115-
#if CONFIG_CLOCK_CONTROL_NRF && NRF_CLOCK_HAS_HFCLKAUDIO
1116-
clock_control_subsys_t subsys;
1117-
struct tdm_drv_data *drv_data = dev->data;
1118-
1119-
subsys = CLOCK_CONTROL_NRF_SUBSYS_HFAUDIO;
1120-
drv_data->clk_mgr = z_nrf_clock_control_get_onoff(subsys);
1121-
__ASSERT_NO_MSG(drv_data->clk_mgr != NULL);
1122-
#else
1123-
(void)dev;
1124-
#endif
1125-
}
1126-
11271106
static int data_init(const struct device *dev)
11281107
{
11291108
struct tdm_drv_data *drv_data = dev->data;
@@ -1190,7 +1169,6 @@ static DEVICE_API(i2s, tdm_nrf_drv_api) = {
11901169
sizeof(struct tdm_buf), ARRAY_SIZE(tx_msgs##idx)); \
11911170
k_msgq_init(&tdm_nrf_data##idx.rx_queue, (char *)rx_msgs##idx, \
11921171
sizeof(struct tdm_buf), ARRAY_SIZE(rx_msgs##idx)); \
1193-
clock_manager_init(dev); \
11941172
return 0; \
11951173
} \
11961174
BUILD_ASSERT((TDM_SCK_CLK_SRC(idx) != ACLK && TDM_MCK_CLK_SRC(idx) != ACLK) || \

drivers/i2s/i2s_nrfx.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ struct i2s_buf {
2929
};
3030

3131
struct i2s_nrfx_drv_data {
32-
struct onoff_manager *clk_mgr;
32+
struct device *clk_dev;
3333
struct onoff_client clk_cli;
3434
struct stream_cfg tx;
3535
struct k_msgq tx_queue;
@@ -184,7 +184,7 @@ static void data_handler(const struct device *dev,
184184
}
185185
nrfx_i2s_uninit(&drv_data->i2s);
186186
if (drv_data->request_clock) {
187-
(void)onoff_release(drv_data->clk_mgr);
187+
(void)nrf_clock_control_release(drv_data->clk_dev, NULL);
188188
}
189189
}
190190

@@ -602,7 +602,7 @@ static int start_transfer(struct i2s_nrfx_drv_data *drv_data)
602602

603603
nrfx_i2s_uninit(&drv_data->i2s);
604604
if (drv_data->request_clock) {
605-
(void)onoff_release(drv_data->clk_mgr);
605+
(void)nrf_clock_control_release(drv_data->clk_dev, NULL);
606606
}
607607

608608
if (initial_buffers.p_tx_buffer) {
@@ -630,7 +630,7 @@ static void clock_started_callback(struct onoff_manager *mgr,
630630
*/
631631
if (drv_data->state == I2S_STATE_READY) {
632632
nrfx_i2s_uninit(&drv_data->i2s);
633-
(void)onoff_release(drv_data->clk_mgr);
633+
(void)nrf_clock_control_release(drv_data->clk_dev, NULL);
634634
} else {
635635
(void)start_transfer(drv_data);
636636
}
@@ -667,7 +667,7 @@ static int trigger_start(const struct device *dev)
667667
if (drv_data->request_clock) {
668668
sys_notify_init_callback(&drv_data->clk_cli.notify,
669669
clock_started_callback);
670-
ret = onoff_request(drv_data->clk_mgr, &drv_data->clk_cli);
670+
ret = nrf_clock_control_request(drv_data->clk_dev, NULL, &drv_data->clk_cli);
671671
if (ret < 0) {
672672
nrfx_i2s_uninit(&drv_data->i2s);
673673
drv_data->state = I2S_STATE_READY;
@@ -796,21 +796,21 @@ static int i2s_nrfx_trigger(const struct device *dev,
796796
static void init_clock_manager(const struct device *dev)
797797
{
798798
struct i2s_nrfx_drv_data *drv_data = dev->data;
799-
clock_control_subsys_t subsys;
800799

801800
#if NRF_CLOCK_HAS_HFCLKAUDIO
802801
const struct i2s_nrfx_drv_cfg *drv_cfg = dev->config;
803802

804803
if (drv_cfg->clk_src == ACLK) {
805-
subsys = CLOCK_CONTROL_NRF_SUBSYS_HFAUDIO;
804+
drv_data->clk_dev = DEVICE_DT_GET_ONE(nordic_nrf_clock_hfclkaudio);
806805
} else
807806
#endif
808807
{
809-
subsys = CLOCK_CONTROL_NRF_SUBSYS_HF;
808+
drv_data->clk_dev = DEVICE_DT_GET_ONE(COND_CODE_1((NRF_CLOCK_HAS_HFCLK),
809+
(nordic_nrf_clock_hfclk),
810+
(nordic_nrf_clock_xo)));
810811
}
811812

812-
drv_data->clk_mgr = z_nrf_clock_control_get_onoff(subsys);
813-
__ASSERT_NO_MSG(drv_data->clk_mgr != NULL);
813+
__ASSERT_NO_MSG(drv_data->clk_dev != NULL);
814814
}
815815

816816
static DEVICE_API(i2s, i2s_nrf_drv_api) = {

drivers/led_strip/ws2812_gpio.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,16 @@ static int send_buf(const struct device *dev, uint8_t *buf, size_t len)
7878
const struct ws2812_gpio_cfg *config = dev->config;
7979
volatile uint32_t *base = (uint32_t *)&NRF_GPIO->OUTSET;
8080
const uint32_t val = BIT(config->gpio.pin);
81-
struct onoff_manager *mgr =
82-
z_nrf_clock_control_get_onoff(CLOCK_CONTROL_NRF_SUBSYS_HF);
81+
struct device *clk_dev = DEVICE_DT_GET_ONE(COND_CODE_1((NRF_CLOCK_HAS_HFCLK),
82+
(nordic_nrf_clock_hfclk),
83+
(nordic_nrf_clock_xo)));
8384
struct onoff_client cli;
8485
unsigned int key;
8586
int rc;
8687

8788
sys_notify_init_spinwait(&cli.notify);
88-
rc = onoff_request(mgr, &cli);
89+
90+
rc = nrf_clock_control_request(clk_dev, NULL, &cli);
8991
if (rc < 0) {
9092
return rc;
9193
}
@@ -122,7 +124,7 @@ static int send_buf(const struct device *dev, uint8_t *buf, size_t len)
122124

123125
irq_unlock(key);
124126

125-
rc = onoff_release(mgr);
127+
rc = nrf_clock_control_release(drv_data->clk_dev, NULL);
126128
/* Returns non-negative value on success. Cap to 0 as API states. */
127129
rc = MIN(rc, 0);
128130

drivers/sensor/nordic/temp/temp_nrf5.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ struct temp_nrf5_data {
2727
struct k_sem device_sync_sem;
2828
struct k_mutex mutex;
2929
int32_t sample;
30-
struct onoff_manager *clk_mgr;
30+
struct device *clk_dev;
3131
};
3232

3333
static void hfclk_on_callback(struct onoff_manager *mgr,
@@ -46,7 +46,7 @@ static int temp_nrf5_sample_fetch(const struct device *dev,
4646
int r;
4747

4848
/* Error if before sensor initialized */
49-
if (data->clk_mgr == NULL) {
49+
if (clock_control_get_status(data->clk_dev, NULL) != CLOCK_CONTROL_STATUS_ON) {
5050
return -EAGAIN;
5151
}
5252

@@ -57,12 +57,12 @@ static int temp_nrf5_sample_fetch(const struct device *dev,
5757
k_mutex_lock(&data->mutex, K_FOREVER);
5858

5959
sys_notify_init_callback(&cli.notify, hfclk_on_callback);
60-
r = onoff_request(data->clk_mgr, &cli);
60+
r = nrf_clock_control_request(data->clk_dev, NULL, &cli);
6161
__ASSERT_NO_MSG(r >= 0);
6262

6363
k_sem_take(&data->device_sync_sem, K_FOREVER);
6464

65-
r = onoff_release(data->clk_mgr);
65+
r = nrf_clock_control_release(data->clk_dev, NULL);
6666
__ASSERT_NO_MSG(r >= 0);
6767

6868
data->sample = nrf_temp_result_get(NRF_TEMP);
@@ -113,10 +113,10 @@ static int temp_nrf5_init(const struct device *dev)
113113
{
114114
struct temp_nrf5_data *data = dev->data;
115115

116-
/* A null clk_mgr indicates sensor has not been initialized */
117-
data->clk_mgr =
118-
z_nrf_clock_control_get_onoff(CLOCK_CONTROL_NRF_SUBSYS_HF);
119-
__ASSERT_NO_MSG(data->clk_mgr);
116+
data->clk_dev = DEVICE_DT_GET_ONE(COND_CODE_1((NRF_CLOCK_HAS_HFCLK),
117+
(nordic_nrf_clock_hfclk),
118+
(nordic_nrf_clock_xo)));
119+
__ASSERT_NO_MSG(data->clk_dev);
120120

121121
k_sem_init(&data->device_sync_sem, 0, K_SEM_MAX_LIMIT);
122122
k_mutex_init(&data->mutex);

drivers/usb/device/usb_dc_nrfx.c

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ static uint8_t ep_isoout_bufs[CFG_EP_ISOOUT_CNT][ISO_EP_BUF_MAX_SZ]
226226
* @param status_cb Status callback for USB DC notifications
227227
* @param setup Setup packet for Control requests
228228
* @param hfxo_cli Onoff client used to control HFXO
229-
* @param hfxo_mgr Pointer to onoff manager associated with HFXO.
229+
* @param hfxo_dev Pointer to HFXO device.
230230
* @param clk_requested Flag used to protect against double stop.
231231
* @param attached USBD Attached flag
232232
* @param ready USBD Ready flag set after pullup
@@ -239,7 +239,7 @@ struct nrf_usbd_ctx {
239239
usb_dc_status_callback status_cb;
240240
struct usb_setup_packet setup;
241241
struct onoff_client hfxo_cli;
242-
struct onoff_manager *hfxo_mgr;
242+
struct device *hfxo_dev;
243243
atomic_t clk_requested;
244244

245245
bool attached;
@@ -534,7 +534,7 @@ static void usb_dc_power_event_handler(nrfx_power_usb_evt_t event)
534534
static int hfxo_stop(struct nrf_usbd_ctx *ctx)
535535
{
536536
if (atomic_cas(&ctx->clk_requested, 1, 0)) {
537-
return onoff_cancel_or_release(ctx->hfxo_mgr, &ctx->hfxo_cli);
537+
return nrf_clock_control_cancel_or_release(ctx->hfxo_dev, NULL, &ctx->hfxo_cli);
538538
}
539539

540540
return 0;
@@ -545,7 +545,7 @@ static int hfxo_start(struct nrf_usbd_ctx *ctx)
545545
if (atomic_cas(&ctx->clk_requested, 0, 1)) {
546546
sys_notify_init_spinwait(&ctx->hfxo_cli.notify);
547547

548-
return onoff_request(ctx->hfxo_mgr, &ctx->hfxo_cli);
548+
return nrf_clock_control_request(ctx->hfxo_dev, NULL, &ctx->hfxo_cli);
549549
}
550550

551551
return 0;
@@ -1276,11 +1276,12 @@ int usb_dc_attach(void)
12761276
}
12771277

12781278
k_mutex_init(&ctx->drv_lock);
1279-
ctx->hfxo_mgr =
1280-
z_nrf_clock_control_get_onoff(
1281-
COND_CODE_1(NRF_CLOCK_HAS_HFCLK192M,
1282-
(CLOCK_CONTROL_NRF_SUBSYS_HF192M),
1283-
(CLOCK_CONTROL_NRF_SUBSYS_HF)));
1279+
1280+
ctx->hfxo_dev = DEVICE_DT_GET_ONE(COND_CODE_1((NRF_CLOCK_HAS_HFCLK192M),
1281+
(nordic_nrf_clock_hfclk192m),
1282+
(COND_CODE_1((NRF_CLOCK_HAS_HFCLK),
1283+
(nordic_nrf_clock_hfclk),
1284+
(nordic_nrf_clock_xo)))));
12841285

12851286
IRQ_CONNECT(DT_INST_IRQN(0), DT_INST_IRQ(0, priority),
12861287
nrfx_isr, nrf_usbd_common_irq_handler, 0);

drivers/usb/udc/udc_dwc2_vendor_quirks.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ DT_INST_FOREACH_STATUS_OKAY(QUIRK_NRF_USBHS_DEFINE)
333333
static K_EVENT_DEFINE(usbhs_events);
334334
#define USBHS_VBUS_READY BIT(0)
335335

336-
static struct onoff_manager *pclk24m_mgr;
336+
static struct device *pclk24m_dev;
337337
static struct onoff_client pclk24m_cli;
338338

339339
static void vregusb_isr(const void *arg)
@@ -369,7 +369,7 @@ static inline int usbhs_init_vreg_and_clock(const struct device *dev)
369369
}
370370

371371
irq_enable(VREGUSB_IRQn);
372-
pclk24m_mgr = z_nrf_clock_control_get_onoff(CLOCK_CONTROL_NRF_SUBSYS_HF24M);
372+
pclk24m_dev = DEVICE_DT_GET_ONE(nordic_nrf_clock_xo24m);
373373

374374
return 0;
375375
}
@@ -390,7 +390,7 @@ static inline int usbhs_enable_core(const struct device *dev)
390390

391391
/* Request PCLK24M using clock control driver */
392392
sys_notify_init_spinwait(&pclk24m_cli.notify);
393-
err = onoff_request(pclk24m_mgr, &pclk24m_cli);
393+
err = nrf_clock_control_request(pclk24m_dev, NULL, &pclk24m_cli);
394394
if (err < 0) {
395395
LOG_ERR("Failed to start PCLK24M %d", err);
396396
return err;
@@ -436,7 +436,7 @@ static inline int usbhs_disable_core(const struct device *dev)
436436
wrapper->ENABLE = 0UL;
437437

438438
/* Release PCLK24M using clock control driver */
439-
err = onoff_cancel_or_release(pclk24m_mgr, &pclk24m_cli);
439+
err = nrf_clock_control_cancel_or_release(pclk24m_dev, NULL, &pclk24m_cli);
440440
if (err < 0) {
441441
LOG_ERR("Failed to stop PCLK24M %d", err);
442442
return err;

0 commit comments

Comments
 (0)