Skip to content

Commit 7a13a3d

Browse files
committed
drivers: can: update API to use DEIVCE_API macros
Update can API and device drivers to use DEVICE_API macros. Signed-off-by: Yishai Jaffe <[email protected]>
1 parent 8780d91 commit 7a13a3d

23 files changed

+68
-64
lines changed

drivers/can/can_common.c

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ int z_impl_can_send(const struct device *dev, const struct can_frame *frame,
3535
k_timeout_t timeout, can_tx_callback_t callback,
3636
void *user_data)
3737
{
38-
const struct can_driver_api *api = (const struct can_driver_api *)dev->api;
38+
__ASSERT_NO_MSG(DEVICE_API_IS(can, dev));
39+
3940
uint32_t id_mask;
4041

4142
CHECKIF(frame == NULL) {
@@ -62,7 +63,7 @@ int z_impl_can_send(const struct device *dev, const struct can_frame *frame,
6263

6364
k_sem_init(&ctx.done, 0, 1);
6465

65-
err = api->send(dev, frame, timeout, can_tx_default_cb, &ctx);
66+
err = DEVICE_API_GET(can, dev)->send(dev, frame, timeout, can_tx_default_cb, &ctx);
6667
if (err != 0) {
6768
return err;
6869
}
@@ -72,13 +73,14 @@ int z_impl_can_send(const struct device *dev, const struct can_frame *frame,
7273
return ctx.status;
7374
}
7475

75-
return api->send(dev, frame, timeout, callback, user_data);
76+
return DEVICE_API_GET(can, dev)->send(dev, frame, timeout, callback, user_data);
7677
}
7778

7879
int can_add_rx_filter(const struct device *dev, can_rx_callback_t callback,
7980
void *user_data, const struct can_filter *filter)
8081
{
81-
const struct can_driver_api *api = (const struct can_driver_api *)dev->api;
82+
__ASSERT_NO_MSG(DEVICE_API_IS(can, dev));
83+
8284
uint32_t id_mask;
8385

8486
CHECKIF(callback == NULL || filter == NULL) {
@@ -100,7 +102,7 @@ int can_add_rx_filter(const struct device *dev, can_rx_callback_t callback,
100102
return -EINVAL;
101103
}
102104

103-
return api->add_rx_filter(dev, callback, user_data, filter);
105+
return DEVICE_API_GET(can, dev)->add_rx_filter(dev, callback, user_data, filter);
104106
}
105107

106108
static void can_msgq_put(const struct device *dev, struct can_frame *frame, void *user_data)
@@ -121,9 +123,9 @@ static void can_msgq_put(const struct device *dev, struct can_frame *frame, void
121123
int z_impl_can_add_rx_filter_msgq(const struct device *dev, struct k_msgq *msgq,
122124
const struct can_filter *filter)
123125
{
124-
const struct can_driver_api *api = dev->api;
126+
__ASSERT_NO_MSG(DEVICE_API_IS(can, dev));
125127

126-
return api->add_rx_filter(dev, can_msgq_put, msgq, filter);
128+
return DEVICE_API_GET(can, dev)->add_rx_filter(dev, can_msgq_put, msgq, filter);
127129
}
128130

129131
/**
@@ -383,7 +385,8 @@ static int check_timing_in_range(const struct can_timing *timing,
383385
int z_impl_can_set_timing(const struct device *dev,
384386
const struct can_timing *timing)
385387
{
386-
const struct can_driver_api *api = (const struct can_driver_api *)dev->api;
388+
__ASSERT_NO_MSG(DEVICE_API_IS(can, dev));
389+
387390
const struct can_timing *min = can_get_timing_min(dev);
388391
const struct can_timing *max = can_get_timing_max(dev);
389392
int err;
@@ -393,7 +396,7 @@ int z_impl_can_set_timing(const struct device *dev,
393396
return err;
394397
}
395398

396-
return api->set_timing(dev, timing);
399+
return DEVICE_API_GET(can, dev)->set_timing(dev, timing);
397400
}
398401

399402
int z_impl_can_set_bitrate(const struct device *dev, uint32_t bitrate)
@@ -425,12 +428,13 @@ int z_impl_can_set_bitrate(const struct device *dev, uint32_t bitrate)
425428
int z_impl_can_set_timing_data(const struct device *dev,
426429
const struct can_timing *timing_data)
427430
{
428-
const struct can_driver_api *api = (const struct can_driver_api *)dev->api;
431+
__ASSERT_NO_MSG(DEVICE_API_IS(can, dev));
432+
429433
const struct can_timing *min = can_get_timing_data_min(dev);
430434
const struct can_timing *max = can_get_timing_data_max(dev);
431435
int err;
432436

433-
if (api->set_timing_data == NULL) {
437+
if (DEVICE_API_GET(can, dev)->set_timing_data == NULL) {
434438
return -ENOSYS;
435439
}
436440

@@ -439,7 +443,7 @@ int z_impl_can_set_timing_data(const struct device *dev,
439443
return err;
440444
}
441445

442-
return api->set_timing_data(dev, timing_data);
446+
return DEVICE_API_GET(can, dev)->set_timing_data(dev, timing_data);
443447
}
444448

445449
int z_impl_can_set_bitrate_data(const struct device *dev, uint32_t bitrate_data)

drivers/can/can_esp32_twai.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ static int can_esp32_twai_init(const struct device *dev)
216216
return err;
217217
}
218218

219-
const struct can_driver_api can_esp32_twai_driver_api = {
219+
static DEVICE_API(can, can_esp32_twai_driver_api) = {
220220
.get_capabilities = can_sja1000_get_capabilities,
221221
.start = can_sja1000_start,
222222
.stop = can_sja1000_stop,

drivers/can/can_fake.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ static int fake_can_init(const struct device *dev)
103103
return 0;
104104
}
105105

106-
static const struct can_driver_api fake_can_driver_api = {
106+
static DEVICE_API(can, fake_can_driver_api) = {
107107
.start = fake_can_start,
108108
.stop = fake_can_stop,
109109
.get_capabilities = fake_can_get_capabilities,

drivers/can/can_kvaser_pci.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ static int can_kvaser_pci_init(const struct device *dev)
130130
return 0;
131131
}
132132

133-
const struct can_driver_api can_kvaser_pci_driver_api = {
133+
DEVICE_API(can, can_kvaser_pci_driver_api) = {
134134
.get_capabilities = can_sja1000_get_capabilities,
135135
.start = can_sja1000_start,
136136
.stop = can_sja1000_stop,

drivers/can/can_loopback.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ static int can_loopback_get_max_filters(const struct device *dev, bool ide)
365365
return CONFIG_CAN_MAX_FILTER;
366366
}
367367

368-
static const struct can_driver_api can_loopback_driver_api = {
368+
static DEVICE_API(can, can_loopback_driver_api) = {
369369
.get_capabilities = can_loopback_get_capabilities,
370370
.start = can_loopback_start,
371371
.stop = can_loopback_stop,

drivers/can/can_mcp2515.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -877,7 +877,7 @@ static void mcp2515_int_gpio_callback(const struct device *dev,
877877
k_sem_give(&dev_data->int_sem);
878878
}
879879

880-
static const struct can_driver_api can_api_funcs = {
880+
static DEVICE_API(can, can_api_funcs) = {
881881
.get_capabilities = mcp2515_get_capabilities,
882882
.set_timing = mcp2515_set_timing,
883883
.start = mcp2515_start,

drivers/can/can_mcp251xfd.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1682,7 +1682,7 @@ static int mcp251xfd_init(const struct device *dev)
16821682
return ret;
16831683
}
16841684

1685-
static const struct can_driver_api mcp251xfd_api_funcs = {
1685+
static DEVICE_API(can, mcp251xfd_api_funcs) = {
16861686
.get_capabilities = mcp251xfd_get_capabilities,
16871687
.set_mode = mcp251xfd_set_mode,
16881688
.set_timing = mcp251xfd_set_timing,

drivers/can/can_mcux_flexcan.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1257,7 +1257,7 @@ static int mcux_flexcan_init(const struct device *dev)
12571257
return 0;
12581258
}
12591259

1260-
__maybe_unused static const struct can_driver_api mcux_flexcan_driver_api = {
1260+
static __maybe_unused DEVICE_API(can, mcux_flexcan_driver_api) = {
12611261
.get_capabilities = mcux_flexcan_get_capabilities,
12621262
.start = mcux_flexcan_start,
12631263
.stop = mcux_flexcan_stop,
@@ -1299,7 +1299,7 @@ __maybe_unused static const struct can_driver_api mcux_flexcan_driver_api = {
12991299
};
13001300

13011301
#ifdef CONFIG_CAN_MCUX_FLEXCAN_FD
1302-
static const struct can_driver_api mcux_flexcan_fd_driver_api = {
1302+
static DEVICE_API(can, mcux_flexcan_fd_driver_api) = {
13031303
.get_capabilities = mcux_flexcan_get_capabilities,
13041304
.start = mcux_flexcan_start,
13051305
.stop = mcux_flexcan_stop,

drivers/can/can_mcux_mcan.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ static int mcux_mcan_init(const struct device *dev)
135135
return 0;
136136
}
137137

138-
static const struct can_driver_api mcux_mcan_driver_api = {
138+
static DEVICE_API(can, mcux_mcan_driver_api) = {
139139
.get_capabilities = can_mcan_get_capabilities,
140140
.start = can_mcan_start,
141141
.stop = can_mcan_stop,

drivers/can/can_native_linux.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ static int can_native_linux_get_max_filters(const struct device *dev, bool ide)
399399
return CONFIG_CAN_MAX_FILTER;
400400
}
401401

402-
static const struct can_driver_api can_native_linux_driver_api = {
402+
static DEVICE_API(can, can_native_linux_driver_api) = {
403403
.start = can_native_linux_start,
404404
.stop = can_native_linux_stop,
405405
.get_capabilities = can_native_linux_get_capabilities,

0 commit comments

Comments
 (0)