Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion drivers/comparator/comparator_fake_comp.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ DEFINE_FAKE_VALUE_FUNC(int,
comp_fake_comp_trigger_is_pending,
const struct device *);

static const struct comparator_driver_api fake_comp_api = {
static DEVICE_API(comparator, fake_comp_api) = {
.get_output = comp_fake_comp_get_output,
.set_trigger = comp_fake_comp_set_trigger,
.set_trigger_callback = comp_fake_comp_set_trigger_callback,
Expand Down
2 changes: 1 addition & 1 deletion drivers/comparator/comparator_mcux_acmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ static int mcux_acmp_trigger_is_pending(const struct device *dev)
return 0;
}

static const struct comparator_driver_api mcux_acmp_comp_api = {
static DEVICE_API(comparator, mcux_acmp_comp_api) = {
.get_output = mcux_acmp_get_output,
.set_trigger = mcux_acmp_set_trigger,
.set_trigger_callback = mcux_acmp_set_trigger_callback,
Expand Down
2 changes: 1 addition & 1 deletion drivers/comparator/comparator_nrf_comp.c
Original file line number Diff line number Diff line change
Expand Up @@ -666,7 +666,7 @@ static int shim_nrf_comp_trigger_is_pending(const struct device *dev)
return atomic_test_and_clear_bit(&shim_nrf_comp_data0.triggered, 0);
}

static const struct comparator_driver_api shim_nrf_comp_api = {
static DEVICE_API(comparator, shim_nrf_comp_api) = {
.get_output = shim_nrf_comp_get_output,
.set_trigger = shim_nrf_comp_set_trigger,
.set_trigger_callback = shim_nrf_comp_set_trigger_callback,
Expand Down
2 changes: 1 addition & 1 deletion drivers/comparator/comparator_nrf_lpcomp.c
Original file line number Diff line number Diff line change
Expand Up @@ -418,7 +418,7 @@ static int shim_nrf_lpcomp_trigger_is_pending(const struct device *dev)
return atomic_test_and_clear_bit(&shim_nrf_lpcomp_data0.triggered, 0);
}

static const struct comparator_driver_api shim_nrf_lpcomp_api = {
static DEVICE_API(comparator, shim_nrf_lpcomp_api) = {
.get_output = shim_nrf_lpcomp_get_output,
.set_trigger = shim_nrf_lpcomp_set_trigger,
.set_trigger_callback = shim_nrf_lpcomp_set_trigger_callback,
Expand Down
9 changes: 7 additions & 2 deletions drivers/comparator/comparator_shell.c
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,11 @@ static int cmd_trigger_is_pending(const struct shell *sh, size_t argc, char **ar
return 0;
}

static bool device_is_comp_and_ready(const struct device *dev)
{
return device_is_ready(dev) && DEVICE_API_IS(comparator, dev);
}

static void dsub_set_trigger_lookup_1(size_t idx, struct shell_static_entry *entry)
{
entry->syntax = (idx < ARRAY_SIZE(trigger_lookup)) ? trigger_lookup[idx] : NULL;
Expand All @@ -228,7 +233,7 @@ SHELL_DYNAMIC_CMD_CREATE(dsub_set_trigger_1, dsub_set_trigger_lookup_1);

static void dsub_set_trigger_lookup_0(size_t idx, struct shell_static_entry *entry)
{
const struct device *dev = shell_device_lookup(idx, NULL);
const struct device *dev = shell_device_filter(idx, device_is_comp_and_ready);

entry->syntax = dev != NULL ? dev->name : NULL;
entry->handler = NULL;
Expand All @@ -240,7 +245,7 @@ SHELL_DYNAMIC_CMD_CREATE(dsub_set_trigger_0, dsub_set_trigger_lookup_0);

static void dsub_device_lookup_0(size_t idx, struct shell_static_entry *entry)
{
const struct device *dev = shell_device_lookup(idx, NULL);
const struct device *dev = shell_device_filter(idx, device_is_comp_and_ready);

entry->syntax = (dev != NULL) ? dev->name : NULL;
entry->handler = NULL;
Expand Down
20 changes: 4 additions & 16 deletions include/zephyr/drivers/comparator.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,7 @@ __syscall int comparator_get_output(const struct device *dev);

static inline int z_impl_comparator_get_output(const struct device *dev)
{
const struct comparator_driver_api *api =
(const struct comparator_driver_api *)dev->api;

return api->get_output(dev);
return DEVICE_API_GET(comparator, dev)->get_output(dev);
}

/**
Expand All @@ -91,10 +88,7 @@ __syscall int comparator_set_trigger(const struct device *dev,
static inline int z_impl_comparator_set_trigger(const struct device *dev,
enum comparator_trigger trigger)
{
const struct comparator_driver_api *api =
(const struct comparator_driver_api *)dev->api;

return api->set_trigger(dev, trigger);
return DEVICE_API_GET(comparator, dev)->set_trigger(dev, trigger);
}

/**
Expand All @@ -114,10 +108,7 @@ static inline int comparator_set_trigger_callback(const struct device *dev,
comparator_callback_t callback,
void *user_data)
{
const struct comparator_driver_api *api =
(const struct comparator_driver_api *)dev->api;

return api->set_trigger_callback(dev, callback, user_data);
return DEVICE_API_GET(comparator, dev)->set_trigger_callback(dev, callback, user_data);
}

/**
Expand All @@ -133,10 +124,7 @@ __syscall int comparator_trigger_is_pending(const struct device *dev);

static inline int z_impl_comparator_trigger_is_pending(const struct device *dev)
{
const struct comparator_driver_api *api =
(const struct comparator_driver_api *)dev->api;

return api->trigger_is_pending(dev);
return DEVICE_API_GET(comparator, dev)->trigger_is_pending(dev);
}

#ifdef __cplusplus
Expand Down
Loading